summaryrefslogtreecommitdiff
path: root/test/dialect/test_sqlite.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2021-01-15 18:24:56 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2021-01-15 20:14:34 -0500
commitc5b4af959e13f8214121f62f322c668bb178d41f (patch)
tree7369dfbf35c7005ec2cfcf965f77a42d4ed98671 /test/dialect/test_sqlite.py
parent5be3c030b321ecc342bf4cd84cbb0838efacd155 (diff)
downloadsqlalchemy-c5b4af959e13f8214121f62f322c668bb178d41f.tar.gz
Guard against re-entrant autobegin in Core, ORM
Fixed bug in "future" version of :class:`.Engine` where emitting SQL during the :meth:`.EngineEvents.do_begin` event hook would cause a re-entrant condition due to autobegin, including the recipe documented for SQLite to allow for savepoints and serializable isolation support. Fixed issue in new :class:`_orm.Session` similar to that of the :class:`_engine.Connection` where the new "autobegin" logic could be tripped into a re-entrant state if SQL were executed within the :meth:`.SessionEvents.after_transaction_create` event hook. Also repair the new "testing_engine" pytest fixture to set up for "future" engine appropriately, which wasn't working leading to the test_execute.py tests not using the future engine since recent f1e96cb0874927a475d0c11139. Fixes: #5845 Change-Id: Ib2432d8c8bd753e24be60720ec47affb2df15a4a
Diffstat (limited to 'test/dialect/test_sqlite.py')
-rw-r--r--test/dialect/test_sqlite.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/test/dialect/test_sqlite.py b/test/dialect/test_sqlite.py
index 587148525..0500a20bd 100644
--- a/test/dialect/test_sqlite.py
+++ b/test/dialect/test_sqlite.py
@@ -2430,6 +2430,10 @@ class SavepointTest(fixtures.TablesTest):
connection.close()
+class FutureSavepointTest(fixtures.FutureEngineMixin, SavepointTest):
+ pass
+
+
class TypeReflectionTest(fixtures.TestBase):
__only_on__ = "sqlite"