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.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@9773 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Karen Tracey 2009-01-18 20:54:42 +00:00
parent 81dfd1f5f0
commit dd2e1356f0
1 changed files with 8 additions and 2 deletions

View File

@ -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