]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- add a nifty contextmanager form of assert_execution/assert_statement_count
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 8 Oct 2012 18:53:13 +0000 (14:53 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 8 Oct 2012 18:53:13 +0000 (14:53 -0400)
lib/sqlalchemy/testing/assertions.py

index 2b305b98a62a3383b968cadfb212827f780705cc..e74d13a9774011c6053545921b6c281947bb265b 100644 (file)
@@ -14,6 +14,7 @@ from . import assertsql
 from . import config
 import itertools
 from .util import fail
+import contextlib
 
 def emits_warning(*messages):
     """Mark a test as emitting a warning.
@@ -348,4 +349,14 @@ class AssertsExecutionResults(object):
     def assert_sql_count(self, db, callable_, count):
         self.assert_sql_execution(db, callable_, assertsql.CountStatements(count))
 
+    @contextlib.contextmanager
+    def assert_execution(self, *rules):
+        assertsql.asserter.add_rules(rules)
+        try:
+            yield
+            assertsql.asserter.statement_complete()
+        finally:
+            assertsql.asserter.clear_rules()
 
+    def assert_statement_count(self, count):
+        return self.assert_execution(assertsql.CountStatements(count))
\ No newline at end of file