diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-07-12 19:34:25 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-07-12 19:34:25 -0400 |
| commit | 7bb2adfff90f989d45cbcb6f306d8d9d82298816 (patch) | |
| tree | 7f766981e8c908bfa1bf1a5d07b00b4a6998f53b /test/engine/test_transaction.py | |
| parent | f5023ceef3858a4ebbef8d401d10f6493e773b75 (diff) | |
| download | sqlalchemy-7bb2adfff90f989d45cbcb6f306d8d9d82298816.tar.gz | |
- Context manager provided by Connection.begin()
will issue rollback() if the commit() fails,
not just if an exception occurs.
Diffstat (limited to 'test/engine/test_transaction.py')
| -rw-r--r-- | test/engine/test_transaction.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/engine/test_transaction.py b/test/engine/test_transaction.py index 1184befda..344a30734 100644 --- a/test/engine/test_transaction.py +++ b/test/engine/test_transaction.py @@ -159,6 +159,28 @@ class TransactionTest(fixtures.TestBase): assert len(result.fetchall()) == 0 connection.close() + def test_with_interface(self): + connection = testing.db.connect() + trans = connection.begin() + connection.execute(users.insert(), user_id=1, user_name='user1') + connection.execute(users.insert(), user_id=2, user_name='user2') + try: + connection.execute(users.insert(), user_id=2, user_name='user2.5') + except Exception, e: + trans.__exit__(*sys.exc_info()) + + assert not trans.is_active + self.assert_(connection.scalar('select count(*) from ' + 'query_users') == 0) + + trans = connection.begin() + connection.execute(users.insert(), user_id=1, user_name='user1') + trans.__exit__(None, None, None) + assert not trans.is_active + self.assert_(connection.scalar('select count(*) from ' + 'query_users') == 1) + connection.close() + def test_close(self): connection = testing.db.connect() transaction = connection.begin() |
