diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/engine/test_execute.py | 31 | ||||
| -rw-r--r-- | test/engine/test_transaction.py | 13 |
2 files changed, 43 insertions, 1 deletions
diff --git a/test/engine/test_execute.py b/test/engine/test_execute.py index 8fd5e7eb6..e83166c9a 100644 --- a/test/engine/test_execute.py +++ b/test/engine/test_execute.py @@ -111,6 +111,37 @@ class ExecuteTest(TestBase): (1, None) ]) +class CompiledCacheTest(TestBase): + @classmethod + def setup_class(cls): + global users, metadata + metadata = MetaData(testing.db) + users = Table('users', metadata, + Column('user_id', INT, primary_key = True), + Column('user_name', VARCHAR(20)), + ) + metadata.create_all() + + @engines.close_first + def teardown(self): + testing.db.connect().execute(users.delete()) + + @classmethod + def teardown_class(cls): + metadata.drop_all() + + def test_cache(self): + conn = testing.db.connect() + cache = {} + cached_conn = conn.execution_options(compiled_cache=cache) + + ins = users.insert() + cached_conn.execute(ins, {'user_name':'u1'}) + cached_conn.execute(ins, {'user_name':'u2'}) + cached_conn.execute(ins, {'user_name':'u3'}) + assert len(cache) == 1 + eq_(conn.execute("select count(1) from users").scalar(), 3) + class LogTest(TestBase): def _test_logger(self, eng, eng_name, pool_name): buf = logging.handlers.BufferingHandler(100) diff --git a/test/engine/test_transaction.py b/test/engine/test_transaction.py index e8da89438..f6cb9a473 100644 --- a/test/engine/test_transaction.py +++ b/test/engine/test_transaction.py @@ -120,7 +120,18 @@ class TransactionTest(TestBase): finally: connection.close() - + def test_retains_through_options(self): + connection = testing.db.connect() + try: + transaction = connection.begin() + connection.execute(users.insert(), user_id=1, user_name='user1') + conn2 = connection.execution_options(dummy=True) + conn2.execute(users.insert(), user_id=2, user_name='user2') + transaction.rollback() + eq_(connection.scalar("select count(1) from query_users"), 0) + finally: + connection.close() + def test_nesting(self): connection = testing.db.connect() transaction = connection.begin() |
