Fixed #35660 -- Made serialized_rollback and fixture data available in TransactionTestCase.setUpClass().

This commit is contained in:
Jacob Walls 2024-09-04 09:33:44 -04:00 committed by Sarah Boyce
parent 8eca3e9bce
commit a060a22ee2
8 changed files with 91 additions and 16 deletions

View file

@ -1,3 +1,4 @@
from django.core.management import call_command
from django.test import TestCase, TransactionTestCase
from .models import Book
@ -19,6 +20,26 @@ class MigrationDataPersistenceTestCase(TransactionTestCase):
)
class MigrationDataPersistenceClassSetup(TransactionTestCase):
"""
Data loaded in migrations is available during class setup if
TransactionTestCase.serialized_rollback = True.
"""
available_apps = ["migration_test_data_persistence"]
serialized_rollback = True
@classmethod
def setUpClass(cls):
# Simulate another TransactionTestCase having just torn down.
call_command("flush", verbosity=0, interactive=False)
super().setUpClass()
cls.book = Book.objects.first()
def test_data_available_in_class_setup(self):
self.assertIsInstance(self.book, Book)
class MigrationDataNormalPersistenceTestCase(TestCase):
"""
Data loaded in migrations is available on TestCase