[Sqlalchemy-commits] [1382] sqlalchemy/branches/schema/test: more dorking around with params....
Brought to you by:
zzzeek
From: <co...@sq...> - 2006-05-03 17:53:18
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><style type="text/css"><!-- #msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; } #msg ul, pre { overflow: auto; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <title>[1382] sqlalchemy/branches/schema/test: more dorking around with params....</title> </head> <body> <div id="msg"> <dl> <dt>Revision</dt> <dd>1382</dd> <dt>Author</dt> <dd>zzzeek</dd> <dt>Date</dt> <dd>2006-05-03 12:53:04 -0500 (Wed, 03 May 2006)</dd> </dl> <h3>Log Message</h3> <pre>more dorking around with params....</pre> <h3>Modified Paths</h3> <ul> <li><a href="#sqlalchemybranchesschemalibsqlalchemyenginebasepy">sqlalchemy/branches/schema/lib/sqlalchemy/engine/base.py</a></li> <li><a href="#sqlalchemybranchesschemalibsqlalchemyormmapperpy">sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py</a></li> <li><a href="#sqlalchemybranchesschematesttestbasepy">sqlalchemy/branches/schema/test/testbase.py</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="sqlalchemybranchesschemalibsqlalchemyenginebasepy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/engine/base.py (1381 => 1382)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/engine/base.py 2006-05-03 17:31:15 UTC (rev 1381) +++ sqlalchemy/branches/schema/lib/sqlalchemy/engine/base.py 2006-05-03 17:53:04 UTC (rev 1382) </span><span class="lines">@@ -195,14 +195,19 @@ </span><span class="cx"> return Connection.executors[type(object).__mro__[-2]](self, object, *multiparams, **params) </span><span class="cx"> def execute_default(self, default, **kwargs): </span><span class="cx"> return default.accept_schema_visitor(self.engine.dialect.defaultrunner(self.engine, self.proxy, **kwargs)) </span><del>- def execute_text(self, statement, *multiparams, **params): - cursor = self._execute_raw(statement, self._conv_params(*multiparams, **params)) </del><ins>+ def execute_text(self, statement, parameters): + cursor = self._execute_raw(statement, parameters) </ins><span class="cx"> return ResultProxy(self.engine, self, cursor) </span><del>- def _conv_params(self, *multiparams, **params): </del><ins>+ def _params_to_listofdicts(self, *multiparams, **params): </ins><span class="cx"> if len(multiparams) == 0: </span><del>- return params </del><ins>+ return [params] </ins><span class="cx"> elif len(multiparams) == 1: </span><del>- return multiparams[0] </del><ins>+ if multiparams[0] == None: + return [{}] + elif isinstance (multiparams[0], list) or isinstance (multiparams[0], tuple): + return multiparams[0] + else: + return [multiparams[0]] </ins><span class="cx"> else: </span><span class="cx"> return multiparams </span><span class="cx"> def execute_clauseelement(self, elem, *multiparams, **params): </span><span class="lines">@@ -215,13 +220,9 @@ </span><span class="cx"> def execute_compiled(self, compiled, *multiparams, **params): </span><span class="cx"> """executes a sql.Compiled object.""" </span><span class="cx"> cursor = self.connection.cursor() </span><del>- executemany = len(multiparams) > 0 - if executemany: - parameters = [compiled.get_params(**m) for m in multiparams] - elif len(params): - parameters = compiled.get_params(**params) - else: - parameters = compiled.get_params() </del><ins>+ parameters = [compiled.get_params(**m) for m in self._params_to_listofdicts(*multiparams, **params)] + if len(parameters) == 1: + parameters = parameters[0] </ins><span class="cx"> def proxy(statement=None, parameters=None): </span><span class="cx"> if statement is None: </span><span class="cx"> return cursor </span></span></pre></div> <a id="sqlalchemybranchesschemalibsqlalchemyormmapperpy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py (1381 => 1382)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py 2006-05-03 17:31:15 UTC (rev 1381) +++ sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py 2006-05-03 17:53:04 UTC (rev 1382) </span><span class="lines">@@ -726,6 +726,7 @@ </span><span class="cx"> if self.version_id_col is not None: </span><span class="cx"> clause.clauses.append(self.version_id_col == sql.bindparam(self.version_id_col.key)) </span><span class="cx"> statement = table.delete(clause) </span><ins>+ print "DELETE IS", delete </ins><span class="cx"> c = connection.execute(statement, delete) </span><span class="cx"> if c.supports_sane_rowcount() and c.rowcount != len(delete): </span><span class="cx"> raise CommitError("ConcurrencyError - updated rowcount %d does not match number of objects updated %d" % (c.cursor.rowcount, len(delete))) </span></span></pre></div> <a id="sqlalchemybranchesschematesttestbasepy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/test/testbase.py (1381 => 1382)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/test/testbase.py 2006-05-03 17:31:15 UTC (rev 1381) +++ sqlalchemy/branches/schema/test/testbase.py 2006-05-03 17:53:04 UTC (rev 1382) </span><span class="lines">@@ -243,9 +243,10 @@ </span><span class="cx"> (query, params) = item </span><span class="cx"> if callable(params): </span><span class="cx"> params = params(ctx) </span><del>- </del><ins>+ if params is not None and isinstance(params, list) and len(params) == 1: + params = params[0] + </ins><span class="cx"> query = self.convert_statement(query) </span><del>- </del><span class="cx"> self.unittest.assert_(statement == query and (params is None or params == parameters), "Testing for query '%s' params %s, received '%s' with params %s" % (query, repr(params), statement, repr(parameters))) </span><span class="cx"> self.sql_count += 1 </span><span class="cx"> return realexec(ctx, proxy, compiled, parameters, **kwargs) </span></span></pre> </div> </div> </body> </html> |