else:
if self._is_future:
raise exc.InvalidRequestError(
- "a transaction is already begun for this connection"
+ "This connection has already initialized a SQLAlchemy "
+ "Transaction() object via begin() or autobegin; can't "
+ "call begin() here unless rollback() or commit() "
+ "is called first."
)
else:
return MarkerTransaction(self)
if trans_objs:
if connection._is_future:
raise exc.InvalidRequestError(
- "This connection has already begun a transaction; "
- "%s may not be altered until transaction end"
+ "This connection has already initialized a SQLAlchemy "
+ "Transaction() object via begin() or autobegin; "
+ "%s may not be altered unless rollback() or commit() "
+ "is called first."
% (", ".join(name for name, obj in trans_objs))
)
else:
with testing.db.begin() as conn:
assert_raises_message(
exc.InvalidRequestError,
- "This connection has already begun a transaction; "
- "isolation_level may not be altered until transaction end",
+ r"This connection has already initialized a SQLAlchemy "
+ r"Transaction\(\) object via begin\(\) or autobegin; "
+ r"isolation_level may not be altered unless rollback\(\) or "
+ r"commit\(\) is called first.",
conn.execution_options,
isolation_level="AUTOCOMMIT",
)
assert_raises_message(
exc.InvalidRequestError,
- "This connection has already begun a transaction; "
- "isolation_level may not be altered until transaction end",
+ r"This connection has already initialized a SQLAlchemy "
+ r"Transaction\(\) object via begin\(\) or autobegin; "
+ r"isolation_level may not be altered unless rollback\(\) or "
+ r"commit\(\) is called first.",
conn.execution_options,
isolation_level="AUTOCOMMIT",
)
assert_raises_message(
exc.InvalidRequestError,
- "a transaction is already begun for this connection",
+ r"This connection has already initialized a SQLAlchemy "
+ r"Transaction\(\) object via begin\(\) or autobegin; can't "
+ r"call begin\(\) here unless rollback\(\) or commit\(\) is "
+ r"called first.",
conn.begin,
)