diff options
| author | Markus Holtermann <info@markusholtermann.eu> | 2014-12-29 20:48:04 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-12-30 10:01:25 -0500 |
| commit | fca866763acb6b3414c20ca3772b94cb5d111733 (patch) | |
| tree | e359c17e070faa19929d4b8bdc3b6541470f01d9 | |
| parent | ab4f709da4516672b0bd811f2b4d0c4ba9f5b636 (diff) | |
Added test for an intermediate swappable model change in migration state.
refs #22563
| -rw-r--r-- | tests/migrations/test_autodetector.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/migrations/test_autodetector.py b/tests/migrations/test_autodetector.py index c022a2e0d8..cfb59d4851 100644 --- a/tests/migrations/test_autodetector.py +++ b/tests/migrations/test_autodetector.py @@ -99,6 +99,11 @@ class AutodetectorTests(TestCase): ("name", models.CharField(max_length=200)), ("publisher", models.ForeignKey("testapp.Publisher")), ]) + author_with_user = ModelState("testapp", "Author", [ + ("id", models.AutoField(primary_key=True)), + ("name", models.CharField(max_length=200)), + ("user", models.ForeignKey("auth.User")), + ]) author_with_custom_user = ModelState("testapp", "Author", [ ("id", models.AutoField(primary_key=True)), ("name", models.CharField(max_length=200)), @@ -1139,6 +1144,20 @@ class AutodetectorTests(TestCase): self.assertOperationAttributes(changes, 'testapp', 0, 0, name="Author") self.assertMigrationDependencies(changes, 'testapp', 0, [("__setting__", "AUTH_USER_MODEL")]) + def test_swappable_changed(self): + before = self.make_project_state([self.custom_user, self.author_with_user]) + with override_settings(AUTH_USER_MODEL="thirdapp.CustomUser"): + after = self.make_project_state([self.custom_user, self.author_with_custom_user]) + autodetector = MigrationAutodetector(before, after) + changes = autodetector._detect_changes() + # Right number/type of migrations? + self.assertNumberMigrations(changes, 'testapp', 1) + self.assertOperationTypes(changes, 'testapp', 0, ["AlterField"]) + self.assertOperationAttributes(changes, 'testapp', 0, 0, model_name="author", name='user') + fk_field = changes['testapp'][0].operations[0].field + to_model = '%s.%s' % (fk_field.rel.to._meta.app_label, fk_field.rel.to._meta.object_name) + self.assertEqual(to_model, 'thirdapp.CustomUser') + def test_add_field_with_default(self): """#22030 - Adding a field with a default should work.""" # Make state |
