diff options
| author | Andrew Godwin <andrew@aeracode.org> | 2014-08-07 11:52:03 +1000 |
|---|---|---|
| committer | Andrew Godwin <andrew@aeracode.org> | 2014-08-07 11:52:49 +1000 |
| commit | 0e69af51b1557ebe3ce93fe31498f3fa797b4b83 (patch) | |
| tree | a263e2af2ad21cdf79ffbd32f5a7dec48badfffb /tests | |
| parent | 5e42e9f0592f987a9caba3b1322ba070927a1195 (diff) | |
[1.7.x] Fixed #23244: Error altering FK to non-FK in migrations
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/migrations/test_operations.py | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/tests/migrations/test_operations.py b/tests/migrations/test_operations.py index 518334afa1..985ff45648 100644 --- a/tests/migrations/test_operations.py +++ b/tests/migrations/test_operations.py @@ -1078,6 +1078,30 @@ class OperationTests(OperationTestBase): create_operation.database_forwards("test_alfk", editor, project_state, create_state) alter_operation.database_forwards("test_alfk", editor, create_state, alter_state) + def test_alter_fk_non_fk(self): + """ + Tests that altering an FK to a non-FK works (#23244) + """ + # Test the state alteration + operation = migrations.AlterField( + model_name="Rider", + name="pony", + field=models.FloatField(), + ) + project_state, new_state = self.make_test_state("test_afknfk", operation, related_model=True) + # Test the database alteration + self.assertColumnExists("test_afknfk_rider", "pony_id") + self.assertColumnNotExists("test_afknfk_rider", "pony") + with connection.schema_editor() as editor: + operation.database_forwards("test_afknfk", editor, project_state, new_state) + self.assertColumnExists("test_afknfk_rider", "pony") + self.assertColumnNotExists("test_afknfk_rider", "pony_id") + # And test reversal + with connection.schema_editor() as editor: + operation.database_backwards("test_afknfk", editor, new_state, project_state) + self.assertColumnExists("test_afknfk_rider", "pony_id") + self.assertColumnNotExists("test_afknfk_rider", "pony") + @unittest.skipIf(sqlparse is None and connection.features.requires_sqlparse_for_splitting, "Missing sqlparse") def test_run_sql(self): """ @@ -1345,11 +1369,11 @@ class SwappableOperationTests(OperationTestBase): ) project_state, new_state = self.make_test_state("test_adfligsw", operation) # Test the database alteration - self.assertTableNotExists("test_adfligsw_pont") + self.assertTableNotExists("test_adfligsw_pony") with connection.schema_editor() as editor: operation.database_forwards("test_adfligsw", editor, project_state, new_state) - self.assertTableNotExists("test_adfligsw_pont") + self.assertTableNotExists("test_adfligsw_pony") # And test reversal with connection.schema_editor() as editor: operation.database_backwards("test_adfligsw", editor, new_state, project_state) - self.assertTableNotExists("test_adfligsw_pont") + self.assertTableNotExists("test_adfligsw_pony") |
