Skip to content
Browse files

Corrected code in serializers_regress testcase so that, in the case w…

…here 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.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@9773 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent 81dfd1f commit dd2e1356f014a9869ea3baef1f7efb9f94bf696c @kmtracey kmtracey committed
Showing with 8 additions and 2 deletions.
  1. +8 −2 tests/regressiontests/serializers_regress/tests.py
View
10 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

0 comments on commit dd2e135

Please sign in to comment.
Something went wrong with that request. Please try again.