[Sqlalchemy-commits] [1155] sqlalchemy/trunk/test: fixed nasty transaction counting bug with new ses
Brought to you by:
zzzeek
From: <co...@sq...> - 2006-03-17 02:51:19
|
<!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>[1155] sqlalchemy/trunk/test: fixed nasty transaction counting bug with new session thing + unit test</title> </head> <body> <div id="msg"> <dl> <dt>Revision</dt> <dd>1155</dd> <dt>Author</dt> <dd>zzzeek</dd> <dt>Date</dt> <dd>2006-03-16 20:51:08 -0600 (Thu, 16 Mar 2006)</dd> </dl> <h3>Log Message</h3> <pre>fixed nasty transaction counting bug with new session thing + unit test</pre> <h3>Modified Paths</h3> <ul> <li><a href="#sqlalchemytrunklibsqlalchemyenginepy">sqlalchemy/trunk/lib/sqlalchemy/engine.py</a></li> <li><a href="#sqlalchemytrunktestproxy_enginepy">sqlalchemy/trunk/test/proxy_engine.py</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="sqlalchemytrunklibsqlalchemyenginepy"></a> <div class="modfile"><h4>Modified: sqlalchemy/trunk/lib/sqlalchemy/engine.py (1154 => 1155)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/trunk/lib/sqlalchemy/engine.py 2006-03-17 02:15:09 UTC (rev 1154) +++ sqlalchemy/trunk/lib/sqlalchemy/engine.py 2006-03-17 02:51:08 UTC (rev 1155) </span><span class="lines">@@ -198,6 +198,7 @@ </span><span class="cx"> """commits the transaction started by begin(). If begin() was called multiple times, a counter will be decreased for each call to commit(), with the actual commit operation occuring when the counter reaches zero. this is to provide "nested" behavior of transactions so that different functions in a particular call stack can call begin()/commit() independently of each other without knowledge of an existing transaction.""" </span><span class="cx"> if self.__tcount == 1: </span><span class="cx"> self.engine.do_commit(self.connection) </span><ins>+ self.__tcount = 0 </ins><span class="cx"> elif self.__tcount > 1: </span><span class="cx"> self.__tcount -= 1 </span><span class="cx"> def is_begun(self): </span><span class="lines">@@ -711,6 +712,11 @@ </span><span class="cx"> return parameters </span><span class="cx"> </span><span class="cx"> def proxy(self, statement=None, parameters=None): </span><ins>+ """returns a callable which will execute the given statement string and parameter object. + the parameter object is expected to be the result of a call to compiled.get_params(). + This callable is a generic version of a connection/cursor-specific callable that + is produced within the execute_compiled method, and is used for objects that require + this style of proxy when outside of an execute_compiled method, primarily the DefaultRunner.""" </ins><span class="cx"> parameters = self._convert_compiled_params(parameters) </span><span class="cx"> return self.execute(statement, parameters) </span><span class="cx"> </span></span></pre></div> <a id="sqlalchemytrunktestproxy_enginepy"></a> <div class="modfile"><h4>Modified: sqlalchemy/trunk/test/proxy_engine.py (1154 => 1155)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/trunk/test/proxy_engine.py 2006-03-17 02:15:09 UTC (rev 1154) +++ sqlalchemy/trunk/test/proxy_engine.py 2006-03-17 02:51:08 UTC (rev 1155) </span><span class="lines">@@ -11,7 +11,7 @@ </span><span class="cx"> # </span><span class="cx"> </span><span class="cx"> </span><del>-module_engine = ProxyEngine() </del><ins>+module_engine = ProxyEngine(echo=testbase.echo) </ins><span class="cx"> users = Table('users', module_engine, </span><span class="cx"> Column('user_id', Integer, primary_key=True), </span><span class="cx"> Column('user_name', String(16)), </span></span></pre> </div> </div> </body> </html> |