From 5624430eb1d07c68d0931bc89f7146bc003fde19 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 12 Jun 2020 13:09:15 -0400 Subject: Warn when transaction context manager ends on inactive transaction if .rollback() or .commit() is called inside the transaction context manager, the transaction object is deactivated. the context manager continues but will not be able to correctly fulfill it's closing state. Ensure a warning is emitted when this happens. Change-Id: I8fc3a73f7c21575dda5bcbd6fb74ddb679771630 --- lib/sqlalchemy/testing/fixtures.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/sqlalchemy/testing') diff --git a/lib/sqlalchemy/testing/fixtures.py b/lib/sqlalchemy/testing/fixtures.py index 041daf35e..2cc34448d 100644 --- a/lib/sqlalchemy/testing/fixtures.py +++ b/lib/sqlalchemy/testing/fixtures.py @@ -66,7 +66,8 @@ class TestBase(object): try: yield conn finally: - trans.rollback() + if trans.is_active: + trans.rollback() conn.close() # propose a replacement for @testing.provide_metadata. -- cgit v1.2.1