summaryrefslogtreecommitdiff
path: root/tests/migrate_signals
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2016-05-13 11:58:54 -0400
committerSimon Charette <charette.s@gmail.com>2016-05-15 19:51:15 -0400
commitf937c9ec975ebd719f0c22e5d1d5f5fb87ff1edd (patch)
treec3af8fe0e962e6ec07ba01cac9cd76019230c41e /tests/migrate_signals
parente475e849703d937e158e75e7a6d9cb99090857f6 (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.py16
-rw-r--r--tests/migrate_signals/tests.py14
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']
+ )