summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorChris Beaven <smileychris@gmail.com>2014-05-29 22:30:47 +1200
committerAndrew Godwin <andrew@aeracode.org>2014-06-05 23:28:17 -0700
commit9f1c4e4d3f997dea150d19ca43d2471d66def120 (patch)
treee9046f21ea53d44215a7fd6060f67a7cafc919d0 /tests
parent31fc34e447137631e6ea58fc33f3642e65479472 (diff)
[1.7.x] Implement Migration.run_before
This attribute (used for reverse dependencies) was previously declared and mentioned in the code, but never actually used.
Diffstat (limited to 'tests')
-rw-r--r--tests/migrations/test_loader.py16
-rw-r--r--tests/migrations/test_migrations_run_before/0001_initial.py20
-rw-r--r--tests/migrations/test_migrations_run_before/0002_second.py23
-rw-r--r--tests/migrations/test_migrations_run_before/0003_third.py32
-rw-r--r--tests/migrations/test_migrations_run_before/__init__.py0
5 files changed, 91 insertions, 0 deletions
diff --git a/tests/migrations/test_loader.py b/tests/migrations/test_loader.py
index 01ead5e8ea..4c1e2d239c 100644
--- a/tests/migrations/test_loader.py
+++ b/tests/migrations/test_loader.py
@@ -102,6 +102,22 @@ class LoaderTests(TestCase):
["id", "user"]
)
+ @override_settings(MIGRATION_MODULES={"migrations": "migrations.test_migrations_run_before"})
+ def test_run_before(self):
+ """
+ Makes sure the loader uses Migration.run_before.
+ """
+ # Load and test the plan
+ migration_loader = MigrationLoader(connection)
+ self.assertEqual(
+ migration_loader.graph.forwards_plan(("migrations", "0002_second")),
+ [
+ ("migrations", "0001_initial"),
+ ("migrations", "0003_third"),
+ ("migrations", "0002_second"),
+ ],
+ )
+
@override_settings(MIGRATION_MODULES={"migrations": "migrations.test_migrations"})
def test_name_match(self):
"Tests prefix name matching"
diff --git a/tests/migrations/test_migrations_run_before/0001_initial.py b/tests/migrations/test_migrations_run_before/0001_initial.py
new file mode 100644
index 0000000000..7d44a8d789
--- /dev/null
+++ b/tests/migrations/test_migrations_run_before/0001_initial.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ operations = [
+
+ migrations.CreateModel(
+ "Salamander",
+ [
+ ("id", models.AutoField(primary_key=True)),
+ ("size", models.IntegerField(default=0)),
+ ("silly_field", models.BooleanField(default=False)),
+ ],
+ ),
+
+ ]
diff --git a/tests/migrations/test_migrations_run_before/0002_second.py b/tests/migrations/test_migrations_run_before/0002_second.py
new file mode 100644
index 0000000000..c0e03b4620
--- /dev/null
+++ b/tests/migrations/test_migrations_run_before/0002_second.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("migrations", "0001_initial"),
+ ]
+
+ operations = [
+
+ migrations.CreateModel(
+ "Book",
+ [
+ ("id", models.AutoField(primary_key=True)),
+ ("author", models.ForeignKey("migrations.Author", null=True)),
+ ],
+ )
+
+ ]
diff --git a/tests/migrations/test_migrations_run_before/0003_third.py b/tests/migrations/test_migrations_run_before/0003_third.py
new file mode 100644
index 0000000000..d5c098c730
--- /dev/null
+++ b/tests/migrations/test_migrations_run_before/0003_third.py
@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ """
+ This is a wee bit crazy, but it's just to show that run_before works.
+ """
+
+ dependencies = [
+ ("migrations", "0001_initial"),
+ ]
+
+ run_before = [
+ ("migrations", "0002_second"),
+ ]
+
+ operations = [
+
+ migrations.CreateModel(
+ "Author",
+ [
+ ("id", models.AutoField(primary_key=True)),
+ ("name", models.CharField(max_length=255)),
+ ("slug", models.SlugField(null=True)),
+ ("age", models.IntegerField(default=0)),
+ ],
+ )
+
+ ]
diff --git a/tests/migrations/test_migrations_run_before/__init__.py b/tests/migrations/test_migrations_run_before/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/migrations/test_migrations_run_before/__init__.py