summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/schema/tests.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/schema/tests.py b/tests/schema/tests.py
index 9e2385f5d8..c31a1d78fa 100644
--- a/tests/schema/tests.py
+++ b/tests/schema/tests.py
@@ -1588,6 +1588,32 @@ class SchemaTests(TransactionTestCase):
# OneToOneField.
self.assertEqual(counts, {"fks": expected_fks, "uniques": 1, "indexes": 0})
+ def test_autofield_to_o2o(self):
+ with connection.schema_editor() as editor:
+ editor.create_model(Author)
+ editor.create_model(Note)
+
+ # Rename the field.
+ old_field = Author._meta.get_field("id")
+ new_field = AutoField(primary_key=True)
+ new_field.set_attributes_from_name("note_ptr")
+ new_field.model = Author
+
+ with connection.schema_editor() as editor:
+ editor.alter_field(Author, old_field, new_field, strict=True)
+ # Alter AutoField to OneToOneField.
+ new_field_o2o = OneToOneField(Note, CASCADE)
+ new_field_o2o.set_attributes_from_name("note_ptr")
+ new_field_o2o.model = Author
+
+ with connection.schema_editor() as editor:
+ editor.alter_field(Author, new_field, new_field_o2o, strict=True)
+ columns = self.column_classes(Author)
+ field_type, _ = columns["note_ptr_id"]
+ self.assertEqual(
+ field_type, connection.features.introspected_field_types["IntegerField"]
+ )
+
def test_alter_field_fk_keeps_index(self):
with connection.schema_editor() as editor:
editor.create_model(Author)