[1.7.x] 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 68b89f4d13
commit 0dd737a719
3 changed files with 19 additions and 17 deletions

View File

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

View File

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

View File

@ -1,11 +1,11 @@
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,
)