Fixed #22487: Don't flush out data from before normal TestCases
This commit is contained in:
parent
c33447a50c
commit
0fba4c0ed7
|
@ -129,6 +129,18 @@ class Command(BaseCommand):
|
||||||
else:
|
else:
|
||||||
created_models = []
|
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!
|
# Migrate!
|
||||||
if self.verbosity >= 1:
|
if self.verbosity >= 1:
|
||||||
self.stdout.write(self.style.MIGRATE_HEADING("Running migrations:"))
|
self.stdout.write(self.style.MIGRATE_HEADING("Running migrations:"))
|
||||||
|
|
|
@ -380,6 +380,7 @@ class BaseDatabaseCreation(object):
|
||||||
interactive=False,
|
interactive=False,
|
||||||
database=self.connection.alias,
|
database=self.connection.alias,
|
||||||
test_database=True,
|
test_database=True,
|
||||||
|
test_flush=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
# We then serialize the current state of the database into a string
|
# We then serialize the current state of the database into a string
|
||||||
|
@ -389,14 +390,6 @@ class BaseDatabaseCreation(object):
|
||||||
if serialize:
|
if serialize:
|
||||||
self.connection._test_serialized_contents = self.serialize_db_to_string()
|
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)
|
call_command('createcachetable', database=self.connection.alias)
|
||||||
|
|
||||||
# Ensure a connection for the side effect of initializing the test database.
|
# Ensure a connection for the side effect of initializing the test database.
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
from django.test import TransactionTestCase
|
from django.test import TransactionTestCase, TestCase
|
||||||
from .models import Book
|
from .models import Book
|
||||||
|
|
||||||
|
|
||||||
class MigrationDataPersistenceTestCase(TransactionTestCase):
|
class MigrationDataPersistenceTestCase(TransactionTestCase):
|
||||||
"""
|
"""
|
||||||
Tests that data loaded in migrations is available if we set
|
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"]
|
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"]
|
def test_persistence(self):
|
||||||
serialized_rollback = False
|
|
||||||
|
|
||||||
def test_no_persistence(self):
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
Book.objects.count(),
|
Book.objects.count(),
|
||||||
0,
|
1,
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue