mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-06-04 23:06:24 -04:00
Issue a better error message when someone decides to meddle with the active transaction from within a context manager.
This commit is contained in:
@@ -244,9 +244,9 @@ class SessionTransaction(object):
|
||||
"The transaction is inactive due to a rollback in a "
|
||||
"subtransaction. Issue rollback() to cancel the transaction.")
|
||||
|
||||
def _assert_is_open(self):
|
||||
def _assert_is_open(self, error_msg="The transaction is closed"):
|
||||
if self.session is None:
|
||||
raise sa_exc.InvalidRequestError("The transaction is closed")
|
||||
raise sa_exc.InvalidRequestError(error_msg)
|
||||
|
||||
@property
|
||||
def _is_transaction_boundary(self):
|
||||
@@ -438,6 +438,7 @@ class SessionTransaction(object):
|
||||
return self
|
||||
|
||||
def __exit__(self, type, value, traceback):
|
||||
self._assert_is_open("Cannot end transaction context. The transaction was closed from within the context")
|
||||
if self.session.transaction is None:
|
||||
return
|
||||
if type is None:
|
||||
|
||||
Reference in New Issue
Block a user