Commit fffbbe40 authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

Reordered the shutdown process for tests so that all tests force a connection...

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.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14399 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 52e0bcbc
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -305,9 +305,20 @@ class TransactionTestCase(ut2.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
@@ -575,9 +586,6 @@ class TestCase(TransactionTestCase):
            transaction.rollback(using=db)
            transaction.leave_transaction_management(using=db)

        for connection in connections.all():
            connection.close()

def _deferredSkip(condition, reason):
    def decorator(test_func):
        if not (isinstance(test_func, type) and issubclass(test_func, TestCase)):