summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKaren Tracey <kmtracey@gmail.com>2009-01-18 22:09:56 +0000
committerKaren Tracey <kmtracey@gmail.com>2009-01-18 22:09:56 +0000
commit5ce4031a6156112158011604bb41141b09a3546e (patch)
treede1af814ebd98e76c82b873eca76589e2b9c0c7e /tests
parent02980f1c3cf23015b64f1d2ea3476c607ac0db66 (diff)
[1.0.X] Corrected code in serializers_regress testcase so that, in the case where an exception has been raised, rollback is called before attempting to leave transaction management. With the old code the original exception (IntegrityError on InnoDB) was getting hidden by a transaction management error resulting from attempting to leave transaction management with a pending commit/rollback.
r9773 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@9774 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/serializers_regress/tests.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/tests/regressiontests/serializers_regress/tests.py b/tests/regressiontests/serializers_regress/tests.py
index c6167b12e7..4e52d81811 100644
--- a/tests/regressiontests/serializers_regress/tests.py
+++ b/tests/regressiontests/serializers_regress/tests.py
@@ -360,8 +360,11 @@ def serializerTest(format, self):
objects.extend(func[0](pk, klass, datum))
instance_count[klass] = 0
transaction.commit()
- finally:
+ except:
+ transaction.rollback()
transaction.leave_transaction_management()
+ raise
+ transaction.leave_transaction_management()
# Get a count of the number of objects created for each class
for klass in instance_count:
@@ -381,8 +384,11 @@ def serializerTest(format, self):
for obj in serializers.deserialize(format, serialized_data):
obj.save()
transaction.commit()
- finally:
+ except:
+ transaction.rollback()
transaction.leave_transaction_management()
+ raise
+ transaction.leave_transaction_management()
# Assert that the deserialized data is the same
# as the original source