diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/migrate_signals/custom_migrations/__init__.py | 0 | ||||
| -rw-r--r-- | tests/migrate_signals/tests.py | 21 |
2 files changed, 20 insertions, 1 deletions
diff --git a/tests/migrate_signals/custom_migrations/__init__.py b/tests/migrate_signals/custom_migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/migrate_signals/custom_migrations/__init__.py diff --git a/tests/migrate_signals/tests.py b/tests/migrate_signals/tests.py index 883744b905..cacf39888c 100644 --- a/tests/migrate_signals/tests.py +++ b/tests/migrate_signals/tests.py @@ -1,7 +1,7 @@ from django.apps import apps from django.core import management from django.db.models import signals -from django.test import TestCase +from django.test import override_settings, TestCase from django.utils import six @@ -75,3 +75,22 @@ class MigrateSignalTests(TestCase): self.assertEqual(args['verbosity'], MIGRATE_VERBOSITY) self.assertEqual(args['interactive'], MIGRATE_INTERACTIVE) self.assertEqual(args['using'], 'default') + + @override_settings(MIGRATION_MODULES={'migrate_signals': 'migrate_signals.custom_migrations'}) + def test_pre_migrate_migrations_only(self): + """ + If all apps have migrations, pre_migrate should be sent. + """ + r = PreMigrateReceiver() + signals.pre_migrate.connect(r, sender=APP_CONFIG) + stdout = six.StringIO() + management.call_command('migrate', database=MIGRATE_DATABASE, + verbosity=MIGRATE_VERBOSITY, interactive=MIGRATE_INTERACTIVE, + load_initial_data=False, stdout=stdout) + args = r.call_args + self.assertEqual(r.call_counter, 1) + self.assertEqual(set(args), set(PRE_MIGRATE_ARGS)) + self.assertEqual(args['app_config'], APP_CONFIG) + self.assertEqual(args['verbosity'], MIGRATE_VERBOSITY) + self.assertEqual(args['interactive'], MIGRATE_INTERACTIVE) + self.assertEqual(args['using'], 'default') |
