summaryrefslogtreecommitdiff
path: root/tests/test_utils
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2018-12-05 15:21:09 -0500
committerTim Graham <timograham@gmail.com>2018-12-05 15:30:23 -0500
commit4c7c608a1deee37055d4a2b8a71e34def04a2a1f (patch)
treef1bd8c1300f3ece897fd22b6820987460f014f84 /tests/test_utils
parent734ce71824180740f2318750ae2436f4b60c30b1 (diff)
Reverted "Fixed #25251 -- Made data migrations available in TransactionTestCase when using --keepdb."
This reverts commits b3b1d3d45fc066367f4fcacf0b06f72fcd00a9c6 and 9fa0d3786febf36c87ef059a39115aa1ce3326e8 due to reverse build failures for which a solution isn't forthcoming.
Diffstat (limited to 'tests/test_utils')
-rw-r--r--tests/test_utils/test_transactiontestcase.py72
1 files changed, 1 insertions, 71 deletions
diff --git a/tests/test_utils/test_transactiontestcase.py b/tests/test_utils/test_transactiontestcase.py
index 193a4e299e..40c9b7576f 100644
--- a/tests/test_utils/test_transactiontestcase.py
+++ b/tests/test_utils/test_transactiontestcase.py
@@ -1,44 +1,10 @@
-import json
from unittest import mock
-from django.apps import apps
from django.db import connections
from django.test import TestCase, TransactionTestCase, override_settings
-from .models import Car
-
-class TestSerializedContentMockMixin:
- """
- Use this mixin on each test involving TransactionTestCase and
- serialized_rollback = True option to avoid test dependencies. It mocks what
- would be serialized after initial data migrations and restores it at the
- end of the test.
- """
- initial_data_migration = '[]'
- _connections_test_serialized_content = {}
-
- def _pre_setup(self):
- for db_name in self._databases_names(include_mirrors=False):
- self._connections_test_serialized_content[db_name] = connections[db_name]._test_serialized_contents
- connections[db_name]._test_serialized_contents = self.initial_data_migration
- super()._pre_setup()
-
- def _post_teardown(self):
- super()._post_teardown()
- for db_name in self._databases_names(include_mirrors=False):
- connections[db_name]._test_serialized_contents = self._connections_test_serialized_content[db_name]
-
- @classmethod
- def tearDownClass(cls):
- super().tearDownClass()
- # Clean up any data that has been created by the class.
- for data in json.loads(cls.initial_data_migration):
- model = apps.get_model(*data['model'].split('.'))
- model.objects.filter(pk=data['pk']).delete()
-
-
-class TestSerializedRollbackInhibitsPostMigrate(TestSerializedContentMockMixin, TransactionTestCase):
+class TestSerializedRollbackInhibitsPostMigrate(TransactionTestCase):
"""
TransactionTestCase._fixture_teardown() inhibits the post_migrate signal
for test classes with serialized_rollback=True.
@@ -78,39 +44,3 @@ class TransactionTestCaseMultiDbTests(TestCase):
"""
for alias in connections:
self.assertEqual(len(connections[alias].queries_log), 0, 'Failed for alias %s' % alias)
-
-
-class TestDataRestoredOnTearDownIfSerializedRollback(TestSerializedContentMockMixin, TransactionTestCase):
- """
- Initial data is recreated in TransactionTestCase._fixture_teardown()
- after the database is flushed so it's available in next test.
- """
- available_apps = ['test_utils']
- _next_serialized_rollback = True
- initial_data_migration = '[{"model": "test_utils.car", "pk": 666, "fields": {"name": "K 2000"}}]'
-
- def _post_teardown(self):
- super()._post_teardown()
- # Won't be True if running the tests with --reverse.
- if self._next_serialized_rollback:
- self.assertTrue(Car.objects.exists())
-
- def test(self):
- pass # Should be the only one in this class.
-
-
-class TestDataNotRestoredOnTearDownIfNotSerializedRollback(TestSerializedContentMockMixin, TransactionTestCase):
- """
- Initial data isn't recreated in TransactionTestCase._fixture_teardown()
- if _next_serialized_rollback is False.
- """
- available_apps = ['test_utils']
- _next_serialized_rollback = False
- initial_data_migration = '[{"model": "test_utils.car", "pk": 666, "fields": {"name": "K 2000"}}]'
-
- def _post_teardown(self):
- super()._post_teardown()
- self.assertFalse(Car.objects.exists())
-
- def test(self):
- pass # Should be the only one in this class.