diff options
| author | Andriy Sokolovskiy <sokandpal@yandex.ru> | 2014-12-15 16:14:39 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-12-15 13:40:24 -0500 |
| commit | 089047331d972c0ee58d13476fc54f2118bf1359 (patch) | |
| tree | d5f65940e68cd277ca39762e3883d6d7e8c1ee09 /tests | |
| parent | 222699d224ee7851e1cab5ecc029cf83836b882b (diff) | |
Fixed #23987 -- Made SQLite SchemaEditor always use effective_default().
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/schema/tests.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/schema/tests.py b/tests/schema/tests.py index 4e11c2696a..ee93de8596 100644 --- a/tests/schema/tests.py +++ b/tests/schema/tests.py @@ -1173,3 +1173,27 @@ class SchemaTests(TransactionTestCase): } ) editor.alter_field(model, get_field(Author, field_class=ForeignKey), field) + + def test_add_field_use_effective_default(self): + """ + #23987 - effective_default() should be used as the field default when + adding a new field. + """ + # Create the table + with connection.schema_editor() as editor: + editor.create_model(Author) + # Ensure there's no surname field + columns = self.column_classes(Author) + self.assertNotIn("surname", columns) + # Create a row + Author.objects.create(name='Anonymous1') + # Add new CharField to ensure default will be used from effective_default + new_field = CharField(max_length=15, blank=True) + new_field.set_attributes_from_name("surname") + with connection.schema_editor() as editor: + editor.add_field(Author, new_field) + # Ensure field was added with the right default + with connection.cursor() as cursor: + cursor.execute("SELECT surname FROM schema_author;") + item = cursor.fetchall()[0] + self.assertEqual(item[0], '') |
