Issue a better error message when someone decides to meddle with the active transaction from within a context manager.

This commit is contained in:
Ants Aasma
2008-09-30 12:04:23 +00:00
parent 4c53406cab
commit 3eefe60bcf
+3 -2
View File
@@ -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: