From: Ants Aasma Date: Tue, 30 Sep 2008 12:04:23 +0000 (+0000) Subject: Issue a better error message when someone decides to meddle with the active transacti... X-Git-Tag: rel_0_5rc2~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3eefe60bcf732352bbaef7baa4efabe8bdc46439;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Issue a better error message when someone decides to meddle with the active transaction from within a context manager. --- diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py index cbff0ef0d1..d4d512034e 100644 --- a/lib/sqlalchemy/orm/session.py +++ b/lib/sqlalchemy/orm/session.py @@ -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: