diff options
| author | Simon Charette <charette.s@gmail.com> | 2016-05-13 11:58:54 -0400 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2016-05-15 19:51:15 -0400 |
| commit | f937c9ec975ebd719f0c22e5d1d5f5fb87ff1edd (patch) | |
| tree | c3af8fe0e962e6ec07ba01cac9cd76019230c41e /tests/migrate_signals | |
| parent | e475e849703d937e158e75e7a6d9cb99090857f6 (diff) | |
Fixed #24100 -- Made the migration signals dispatch its plan and apps.
Thanks Markus for your contribution and Tim for your review.
Diffstat (limited to 'tests/migrate_signals')
| -rw-r--r-- | tests/migrate_signals/custom_migrations/0001_initial.py | 16 | ||||
| -rw-r--r-- | tests/migrate_signals/tests.py | 14 |
2 files changed, 29 insertions, 1 deletions
diff --git a/tests/migrate_signals/custom_migrations/0001_initial.py b/tests/migrate_signals/custom_migrations/0001_initial.py new file mode 100644 index 0000000000..6e969d29ed --- /dev/null +++ b/tests/migrate_signals/custom_migrations/0001_initial.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + operations = [ + migrations.CreateModel( + "Signal", + [ + ("id", models.AutoField(primary_key=True)), + ], + ), + ] diff --git a/tests/migrate_signals/tests.py b/tests/migrate_signals/tests.py index ad828fa008..ca9721e71c 100644 --- a/tests/migrate_signals/tests.py +++ b/tests/migrate_signals/tests.py @@ -1,11 +1,12 @@ from django.apps import apps from django.core import management +from django.db import migrations from django.db.models import signals from django.test import TestCase, override_settings from django.utils import six APP_CONFIG = apps.get_app_config('migrate_signals') -SIGNAL_ARGS = ['app_config', 'verbosity', 'interactive', 'using'] +SIGNAL_ARGS = ['app_config', 'verbosity', 'interactive', 'using', 'plan', 'apps'] MIGRATE_DATABASE = 'default' MIGRATE_VERBOSITY = 1 MIGRATE_INTERACTIVE = False @@ -80,6 +81,8 @@ class MigrateSignalTests(TestCase): self.assertEqual(args['verbosity'], MIGRATE_VERBOSITY) self.assertEqual(args['interactive'], MIGRATE_INTERACTIVE) self.assertEqual(args['using'], 'default') + self.assertEqual(args['plan'], []) + self.assertIsInstance(args['apps'], migrations.state.StateApps) @override_settings(MIGRATION_MODULES={'migrate_signals': 'migrate_signals.custom_migrations'}) def test_migrations_only(self): @@ -101,3 +104,12 @@ class MigrateSignalTests(TestCase): self.assertEqual(args['verbosity'], MIGRATE_VERBOSITY) self.assertEqual(args['interactive'], MIGRATE_INTERACTIVE) self.assertEqual(args['using'], 'default') + self.assertIsInstance(args['plan'][0][0], migrations.Migration) + # The migration isn't applied backward. + self.assertFalse(args['plan'][0][1]) + self.assertIsInstance(args['apps'], migrations.state.StateApps) + self.assertEqual(pre_migrate_receiver.call_args['apps'].get_models(), []) + self.assertEqual( + [model._meta.label for model in post_migrate_receiver.call_args['apps'].get_models()], + ['migrate_signals.Signal'] + ) |
