From a060a22ee2dde7aa29a5a29120087c4864887325 Mon Sep 17 00:00:00 2001 From: Jacob Walls Date: Wed, 4 Sep 2024 09:33:44 -0400 Subject: Fixed #35660 -- Made serialized_rollback and fixture data available in TransactionTestCase.setUpClass(). --- tests/test_utils/fixtures/person.json | 10 ++++++++++ tests/test_utils/fixtures/should_not_be_loaded.json | 10 ---------- tests/test_utils/test_transactiontestcase.py | 15 ++++++++++++++- tests/test_utils/tests.py | 2 +- 4 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 tests/test_utils/fixtures/person.json delete mode 100644 tests/test_utils/fixtures/should_not_be_loaded.json (limited to 'tests/test_utils') diff --git a/tests/test_utils/fixtures/person.json b/tests/test_utils/fixtures/person.json new file mode 100644 index 0000000000..9f4df38996 --- /dev/null +++ b/tests/test_utils/fixtures/person.json @@ -0,0 +1,10 @@ +[ + { + "pk": 1, + "model": "test_utils.person", + "fields": { + "name": "Elvis Presley" + } + } +] + diff --git a/tests/test_utils/fixtures/should_not_be_loaded.json b/tests/test_utils/fixtures/should_not_be_loaded.json deleted file mode 100644 index 9f4df38996..0000000000 --- a/tests/test_utils/fixtures/should_not_be_loaded.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "pk": 1, - "model": "test_utils.person", - "fields": { - "name": "Elvis Presley" - } - } -] - diff --git a/tests/test_utils/test_transactiontestcase.py b/tests/test_utils/test_transactiontestcase.py index 0032e2ee0c..12ef4c9a1c 100644 --- a/tests/test_utils/test_transactiontestcase.py +++ b/tests/test_utils/test_transactiontestcase.py @@ -4,7 +4,7 @@ from django.db import connections from django.test import TestCase, TransactionTestCase, override_settings from django.test.testcases import DatabaseOperationForbidden -from .models import Car +from .models import Car, Person class TestSerializedRollbackInhibitsPostMigrate(TransactionTestCase): @@ -68,3 +68,16 @@ class DisallowedDatabaseQueriesTests(TransactionTestCase): ) with self.assertRaisesMessage(DatabaseOperationForbidden, message): Car.objects.using("other").get() + + +class FixtureAvailableInSetUpClassTest(TransactionTestCase): + available_apps = ["test_utils"] + fixtures = ["person.json"] + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.elvis = Person.objects.get(name="Elvis Presley") + + def test_fixture_loaded_during_class_setup(self): + self.assertIsInstance(self.elvis, Person) diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py index 1110466fcf..4fd9267429 100644 --- a/tests/test_utils/tests.py +++ b/tests/test_utils/tests.py @@ -1214,7 +1214,7 @@ class XMLEqualTests(SimpleTestCase): class SkippingExtraTests(TestCase): - fixtures = ["should_not_be_loaded.json"] + fixtures = ["person.json"] # HACK: This depends on internals of our TestCase subclasses def __call__(self, result=None): -- cgit v1.3