summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/migrations/test_commands.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/migrations/test_commands.py b/tests/migrations/test_commands.py
index 798dd86fe5..5baa508d50 100644
--- a/tests/migrations/test_commands.py
+++ b/tests/migrations/test_commands.py
@@ -139,6 +139,27 @@ class MigrateTests(MigrationTestBase):
stdout = six.StringIO()
call_command("migrate", "migrated_unapplied_app", stdout=stdout)
+ @override_system_checks([])
+ @override_settings(MIGRATION_MODULES={"migrations": "migrations.test_migrations"})
+ def test_migrate_system_checks(self):
+ """
+ Migrate should only call system checks once, even with test_flush=True (Refs #23650).
+ """
+ from django.core.management.base import BaseCommand
+
+ self.counter = 0
+
+ def patched_check(self_, **kwargs):
+ self.counter = self.counter + 1
+
+ saved_check = BaseCommand.check
+ BaseCommand.check = patched_check
+ try:
+ call_command("migrate", "migrations", verbosity=0, test_flush=True)
+ finally:
+ BaseCommand.check = saved_check
+ self.assertEqual(self.counter, 1)
+
class MakeMigrationsTests(MigrationTestBase):
"""