summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/schema/tests.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/schema/tests.py b/tests/schema/tests.py
index a72e6906bb..6fe35e7109 100644
--- a/tests/schema/tests.py
+++ b/tests/schema/tests.py
@@ -795,6 +795,31 @@ class SchemaTests(TransactionTestCase):
# Introspection treats BLOBs as TextFields
self.assertEqual(columns["bits"][0], "TextField")
+ @isolate_apps("schema")
+ def test_add_auto_field(self):
+ class AddAutoFieldModel(Model):
+ name = CharField(max_length=255, primary_key=True)
+
+ class Meta:
+ app_label = "schema"
+
+ with connection.schema_editor() as editor:
+ editor.create_model(AddAutoFieldModel)
+ self.isolated_local_models = [AddAutoFieldModel]
+ old_field = AddAutoFieldModel._meta.get_field("name")
+ new_field = CharField(max_length=255)
+ new_field.set_attributes_from_name("name")
+ new_field.model = AddAutoFieldModel
+ with connection.schema_editor() as editor:
+ editor.alter_field(AddAutoFieldModel, old_field, new_field)
+ new_auto_field = AutoField(primary_key=True)
+ new_auto_field.set_attributes_from_name("id")
+ new_auto_field.model = AddAutoFieldModel()
+ with connection.schema_editor() as editor:
+ editor.add_field(AddAutoFieldModel, new_auto_field)
+ # Crashes on PostgreSQL when the GENERATED BY suffix is missing.
+ AddAutoFieldModel.objects.create(name="test")
+
def test_remove_field(self):
with connection.schema_editor() as editor:
editor.create_model(Author)