Fixed #22487: Don't flush out data from before normal TestCases

This commit is contained in:
Andrew Godwin 2014-06-23 20:25:09 -07:00
parent c33447a50c
commit 0fba4c0ed7
3 changed files with 19 additions and 17 deletions

View File

@ -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:"))

View File

@ -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.

View File

@ -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,
) )