]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
rollback connection before teardown
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 5 Nov 2021 03:49:15 +0000 (23:49 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 5 Nov 2021 03:50:11 +0000 (23:50 -0400)
this test needs to clear out the transaction
if running on SQLAlchemy 2.0.

Change-Id: Ic3f76433ba9b9ea5485a81caae745d3c7f2a4ee8

alembic/testing/fixtures.py
alembic/util/sqla_compat.py

index c273665f0ae8ac09cd8683261c5f6498441598c1..5937d48541599e895f303eccabba86aeb1a38707 100644 (file)
@@ -245,6 +245,7 @@ class AlterColRoundTripFixture:
         ), "server defaults %r and %r didn't compare as equivalent" % (s1, s2)
 
     def tearDown(self):
+        sqla_compat._safe_rollback_connection_transaction(self.conn)
         with self.conn.begin():
             self.metadata.drop_all(self.conn)
         self.conn.close()
index 21dee89275351be2b21bae68f235bccae470b5e2..6f98af4ecd5720b8afa5c20aa8dff4c030580382 100644 (file)
@@ -122,6 +122,14 @@ def _safe_begin_connection_transaction(
         return connection.begin()
 
 
+def _safe_rollback_connection_transaction(
+    connection: "Connection",
+) -> "Transaction":
+    transaction = _get_connection_transaction(connection)
+    if transaction:
+        transaction.rollback()
+
+
 def _get_connection_in_transaction(connection: Optional["Connection"]) -> bool:
     try:
         in_transaction = connection.in_transaction  # type: ignore