summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-08-03 18:03:57 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-08-03 18:03:57 +0000
commit4769ea895b3312e2d27d52b45816771df8a5c5c7 (patch)
tree1a42eb5d2ce5d2a6874ffa41fca1dbf85700b51b /test
parent312647647d242d903b38cc9144c9c7b92cc2da03 (diff)
downloadsqlalchemy-4769ea895b3312e2d27d52b45816771df8a5c5c7.tar.gz
- renamed autoexpire to expire_on_commit
- renamed SessionTransaction autoflush to reentrant_flush to more clearly state its purpose - added _enable_transaction_accounting, flag for Mike Bernson which disables the whole 0.5 transaction state management; the system depends on expiry on rollback in order to function.
Diffstat (limited to 'test')
-rw-r--r--test/orm/dynamic.py2
-rw-r--r--test/orm/session.py2
-rw-r--r--test/orm/transaction.py70
3 files changed, 71 insertions, 3 deletions
diff --git a/test/orm/dynamic.py b/test/orm/dynamic.py
index 5d9b54b15..3a36ccdd5 100644
--- a/test/orm/dynamic.py
+++ b/test/orm/dynamic.py
@@ -160,7 +160,7 @@ class FlushTest(_fixtures.FixtureTest):
mapper(User, users, properties={
'addresses':dynamic_loader(mapper(Address, addresses))
})
- sess = create_session(autoexpire=False, autocommit=False, autoflush=True)
+ sess = create_session(expire_on_commit=False, autocommit=False, autoflush=True)
u1 = User(name='jack')
u1.addresses.append(Address(email_address='lala@hoho.com'))
sess.add(u1)
diff --git a/test/orm/session.py b/test/orm/session.py
index 7a7075a45..09b9df05d 100644
--- a/test/orm/session.py
+++ b/test/orm/session.py
@@ -1057,7 +1057,7 @@ class DisposedStates(testing.ORMTest):
self._test_session().expire_all()
def test_rollback(self):
- sess = self._test_session(autocommit=False, autoexpire=True)
+ sess = self._test_session(autocommit=False, expire_on_commit=True)
sess.commit()
sess.rollback()
diff --git a/test/orm/transaction.py b/test/orm/transaction.py
index ce487a5f6..24a2768c3 100644
--- a/test/orm/transaction.py
+++ b/test/orm/transaction.py
@@ -181,7 +181,10 @@ class RollbackRecoverTest(TransactionTest):
u1.name = 'edward'
a1.email_address = 'foober'
s.commit()
- assert s.query(User).all() == [User(id=1, name='edward', addresses=[Address(email_address='foober')])]
+ self.assertEquals(
+ s.query(User).all(),
+ [User(id=1, name='edward', addresses=[Address(email_address='foober')])]
+ )
@testing.requires.savepoints
def test_pk_violation_with_savepoint(self):
@@ -351,7 +354,72 @@ class SavepointTest(TransactionTest):
assert u1 not in s.deleted
+class AccountingFlagsTest(TransactionTest):
+
+ def test_no_expire_on_commit(self):
+ sess = sessionmaker(expire_on_commit=False)()
+ u1 = User(name='ed')
+ sess.add(u1)
+ sess.commit()
+
+ testing.db.execute(users.update(users.c.name=='ed').values(name='edward'))
+
+ assert u1.name == 'ed'
+ sess.expire_all()
+ assert u1.name == 'edward'
+
+ def test_rollback_no_accounting(self):
+ sess = sessionmaker(_enable_transaction_accounting=False)()
+ u1 = User(name='ed')
+ sess.add(u1)
+ sess.commit()
+
+ u1.name = 'edwardo'
+ sess.rollback()
+
+ testing.db.execute(users.update(users.c.name=='ed').values(name='edward'))
+
+ assert u1.name == 'edwardo'
+ sess.expire_all()
+ assert u1.name == 'edward'
+
+ def test_commit_no_accounting(self):
+ sess = sessionmaker(_enable_transaction_accounting=False)()
+ u1 = User(name='ed')
+ sess.add(u1)
+ sess.commit()
+ u1.name = 'edwardo'
+ sess.rollback()
+
+ testing.db.execute(users.update(users.c.name=='ed').values(name='edward'))
+
+ assert u1.name == 'edwardo'
+ sess.commit()
+
+ assert testing.db.execute(select([users.c.name])).fetchall() == [('edwardo',)]
+ assert u1.name == 'edwardo'
+
+ sess.delete(u1)
+ sess.commit()
+
+ def test_preflush_no_accounting(self):
+ sess = sessionmaker(_enable_transaction_accounting=False, autocommit=True)()
+ u1 = User(name='ed')
+ sess.add(u1)
+ sess.flush()
+
+ sess.begin()
+ u1.name = 'edwardo'
+ u2 = User(name="some other user")
+ sess.add(u2)
+
+ sess.rollback()
+
+ sess.begin()
+ assert testing.db.execute(select([users.c.name])).fetchall() == [('ed',)]
+
+
class AutocommitTest(TransactionTest):
def test_begin_nested_requires_trans(self):
sess = create_session(autocommit=True)