[1.2.X] Reordered the shutdown process for tests so that all tests force a connection close. This is required to prevent some cross-test failures. Thanks to Florian Apolloner for the report and help tracking down the problem.
Backport of r14399 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15391 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
cda07b4cfa
commit
e26de119f4
@ -275,9 +275,20 @@ class TransactionTestCase(unittest.TestCase):
|
||||
""" Performs any post-test things. This includes:
|
||||
|
||||
* Putting back the original ROOT_URLCONF if it was changed.
|
||||
* Force closing the connection, so that the next test gets
|
||||
a clean cursor.
|
||||
"""
|
||||
self._fixture_teardown()
|
||||
self._urlconf_teardown()
|
||||
# Some DB cursors include SQL statements as part of cursor
|
||||
# creation. If you have a test that does rollback, the effect
|
||||
# of these statements is lost, which can effect the operation
|
||||
# of tests (e.g., losing a timezone setting causing objects to
|
||||
# be created with the wrong time).
|
||||
# To make sure this doesn't happen, get a clean connection at the
|
||||
# start of every test.
|
||||
for connection in connections.all():
|
||||
connection.close()
|
||||
|
||||
def _fixture_teardown(self):
|
||||
pass
|
||||
@ -541,6 +552,3 @@ class TestCase(TransactionTestCase):
|
||||
for db in databases:
|
||||
transaction.rollback(using=db)
|
||||
transaction.leave_transaction_management(using=db)
|
||||
|
||||
for connection in connections.all():
|
||||
connection.close()
|
||||
|
Loading…
x
Reference in New Issue
Block a user