summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2013-09-04 16:17:43 -0500
committerAymeric Augustin <aymeric.augustin@m4x.org>2013-09-04 16:19:04 -0500
commit4170b9f402efa7c3c065b02da32555fca2c631c0 (patch)
tree9bc3b98c4af2ddb13830e4fc6bec4a6418c0070a
parent7b623247e84f1cf47d4cae1500c40954ed8905a5 (diff)
Tested exc_type instead of exc_value in __exit__.
exc_value might be None even though there's an exception, at least on Python 2.6. Thanks Thomas Chaumeny for the report. Fixed #21034. Forward-port of a8624b2 from 1.6.x.
-rw-r--r--django/db/transaction.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/django/db/transaction.py b/django/db/transaction.py
index bb2dbb8e9e..7509ad3788 100644
--- a/django/db/transaction.py
+++ b/django/db/transaction.py
@@ -311,7 +311,7 @@ class Atomic(object):
connection.in_atomic_block = False
try:
- if exc_value is None and not connection.needs_rollback:
+ if exc_type is None and not connection.needs_rollback:
if connection.in_atomic_block:
# Release savepoint if there is one
if sid is not None:
@@ -411,7 +411,7 @@ class Transaction(object):
self.entering(self.using)
def __exit__(self, exc_type, exc_value, traceback):
- self.exiting(exc_value, self.using)
+ self.exiting(exc_type, self.using)
def __call__(self, func):
@wraps(func)
@@ -454,7 +454,7 @@ def autocommit(using=None):
def entering(using):
enter_transaction_management(managed=False, using=using)
- def exiting(exc_value, using):
+ def exiting(exc_type, using):
leave_transaction_management(using=using)
return _transaction_func(entering, exiting, using)
@@ -473,9 +473,9 @@ def commit_on_success(using=None):
def entering(using):
enter_transaction_management(using=using)
- def exiting(exc_value, using):
+ def exiting(exc_type, using):
try:
- if exc_value is not None:
+ if exc_type is not None:
if is_dirty(using=using):
rollback(using=using)
else:
@@ -504,7 +504,7 @@ def commit_manually(using=None):
def entering(using):
enter_transaction_management(using=using)
- def exiting(exc_value, using):
+ def exiting(exc_type, using):
leave_transaction_management(using=using)
return _transaction_func(entering, exiting, using)
@@ -528,7 +528,7 @@ def commit_on_success_unless_managed(using=None, savepoint=False):
def entering(using):
pass
- def exiting(exc_value, using):
+ def exiting(exc_type, using):
set_dirty(using=using)
return _transaction_func(entering, exiting, using)