- implemented "version check" logic in Query/Mapper, used
when version_id_col is in effect and query.with_lockmode()
is used to get() an instance thats already loaded
+- fixed bug where Connection wouldnt lose its Transaction
+after commit/rollback
0.2.8
- cleanup on connection methods + documentation. custom DBAPI
if self.__engine.echo:
self.__engine.log("ROLLBACK")
self.__engine.dialect.do_rollback(self.connection)
+ self.__transaction = None
def _commit_impl(self):
if self.__engine.echo:
self.__engine.log("COMMIT")
self.__engine.dialect.do_commit(self.connection)
+ self.__transaction = None
def _autocommit(self, statement):
"""when no Transaction is present, this is called after executions to provide "autocommit" behavior."""
# TODO: have the dialect determine if autocommit can be set on the connection directly without this
def tearDownAll(self):
users.drop(testbase.db)
+ def testcommits(self):
+ connection = testbase.db.connect()
+ transaction = connection.begin()
+ connection.execute(users.insert(), user_id=1, user_name='user1')
+ transaction.commit()
+
+ transaction = connection.begin()
+ connection.execute(users.insert(), user_id=2, user_name='user2')
+ connection.execute(users.insert(), user_id=3, user_name='user3')
+ transaction.commit()
+
+ transaction = connection.begin()
+ result = connection.execute("select * from query_users")
+ assert len(result.fetchall()) == 3
+ transaction.commit()
+
@testbase.unsupported('mysql')
def testrollback(self):
"""test a basic rollback"""
finally:
external_connection.close()
+ def testcommits(self):
+ connection = tlengine.contextual_connect()
+ transaction = connection.begin()
+ connection.execute(users.insert(), user_id=1, user_name='user1')
+ transaction.commit()
+
+ transaction = connection.begin()
+ connection.execute(users.insert(), user_id=2, user_name='user2')
+ connection.execute(users.insert(), user_id=3, user_name='user3')
+ transaction.commit()
+
+ transaction = connection.begin()
+ result = connection.execute("select * from query_users")
+ assert len(result.fetchall()) == 3
+ transaction.commit()
+
@testbase.unsupported('mysql')
def testrollback_off_conn(self):
# test that a TLTransaction opened off a TLConnection allows that