diff options
Diffstat (limited to 'django/test/testcases.py')
| -rw-r--r-- | django/test/testcases.py | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/django/test/testcases.py b/django/test/testcases.py index 9f549f626f..36986185ce 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -827,15 +827,6 @@ class TransactionTestCase(SimpleTestCase): # This can be slow; this flag allows enabling on a per-case basis. serialized_rollback = False - # This attribute is strongly linked to serialized_rollback parameter and - # allows the data restoration after the database flush, at the end of the - # test, if the next test needs the initial data. This attribute is updated - # by the test runner when the test suite is built. Being initialized to - # True is crucial: the last TransactionTestCase, which doesn't have any - # test classes with the serialized_rollback attribute, will always have - # this value set to True. - _next_serialized_rollback = True - # Since tests will be wrapped in a transaction, or serialized if they # are not available, we allow queries to be run. allow_database_queries = True @@ -906,6 +897,16 @@ class TransactionTestCase(SimpleTestCase): if self.reset_sequences: self._reset_sequences(db_name) + # Provide replica initial data from migrated apps, if needed. + if self.serialized_rollback and hasattr(connections[db_name], "_test_serialized_contents"): + if self.available_apps is not None: + apps.unset_available_apps() + connections[db_name].creation.deserialize_db_from_string( + connections[db_name]._test_serialized_contents + ) + if self.available_apps is not None: + apps.set_available_apps(self.available_apps) + if self.fixtures: # We have to use this slightly awkward syntax due to the fact # that we're using *args and **kwargs together. @@ -959,15 +960,6 @@ class TransactionTestCase(SimpleTestCase): database=db_name, reset_sequences=False, allow_cascade=self.available_apps is not None, inhibit_post_migrate=inhibit_post_migrate) - # Provide replica initial data from migrated apps, if needed. - if self._next_serialized_rollback and hasattr(connections[db_name], '_test_serialized_contents'): - if self.available_apps is not None: - apps.unset_available_apps() - connections[db_name].creation.deserialize_db_from_string( - connections[db_name]._test_serialized_contents - ) - if self.available_apps is not None: - apps.set_available_apps(self.available_apps) def assertQuerysetEqual(self, qs, values, transform=repr, ordered=True, msg=None): items = map(transform, qs) |
