Commit 0dd737a7 authored by Andrew Godwin's avatar Andrew Godwin
Browse files

[1.7.x] Fixed #22487: Don't flush out data from before normal TestCases

parent 68b89f4d
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -129,6 +129,18 @@ class Command(BaseCommand):
        else:
            created_models = []

        # The test runner requires us to flush after a syncdb but before migrations,
        # so do that here.
        if options.get("test_flush", False):
            call_command(
                'flush',
                verbosity=max(self.verbosity - 1, 0),
                interactive=False,
                database=db,
                reset_sequences=False,
                inhibit_post_migrate=True,
            )

        # Migrate!
        if self.verbosity >= 1:
            self.stdout.write(self.style.MIGRATE_HEADING("Running migrations:"))
+1 −8
Original line number Diff line number Diff line
@@ -371,6 +371,7 @@ class BaseDatabaseCreation(object):
            interactive=False,
            database=self.connection.alias,
            test_database=True,
            test_flush=True,
        )

        # We then serialize the current state of the database into a string
@@ -380,14 +381,6 @@ class BaseDatabaseCreation(object):
        if serialize:
            self.connection._test_serialized_contents = self.serialize_db_to_string()

        # Finally, we flush the database to clean
        call_command(
            'flush',
            verbosity=max(verbosity - 1, 0),
            interactive=False,
            database=self.connection.alias
        )

        call_command('createcachetable', database=self.connection.alias)

        # Ensure a connection for the side effect of initializing the test database.
+6 −9
Original line number Diff line number Diff line
from django.test import TransactionTestCase
from django.test import TransactionTestCase, TestCase
from .models import Book


class MigrationDataPersistenceTestCase(TransactionTestCase):
    """
    Tests that data loaded in migrations is available if we set
    serialized_rollback = True.
    serialized_rollback = True on TransactionTestCase
    """

    available_apps = ["migration_test_data_persistence"]
@@ -18,16 +18,13 @@ class MigrationDataPersistenceTestCase(TransactionTestCase):
        )


class MigrationDataNoPersistenceTestCase(TransactionTestCase):
class MigrationDataNormalPersistenceTestCase(TestCase):
    """
    Tests the failure case
    Tests that data loaded in migrations is available on TestCase
    """

    available_apps = ["migration_test_data_persistence"]
    serialized_rollback = False

    def test_no_persistence(self):
    def test_persistence(self):
        self.assertEqual(
            Book.objects.count(),
            0,
            1,
        )