summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/engine/test_execute.py31
-rw-r--r--test/engine/test_transaction.py13
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()