summaryrefslogtreecommitdiff
path: root/tests/schema
diff options
context:
space:
mode:
Diffstat (limited to 'tests/schema')
-rw-r--r--tests/schema/tests.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/schema/tests.py b/tests/schema/tests.py
index eb9be178db..0e88bfdbd1 100644
--- a/tests/schema/tests.py
+++ b/tests/schema/tests.py
@@ -3387,6 +3387,33 @@ class SchemaTests(TransactionTestCase):
if connection.features.can_introspect_default:
self.assertIn(field.default, ['NULL', None])
+ def test_add_textfield_default_nullable(self):
+ with connection.schema_editor() as editor:
+ editor.create_model(Author)
+ # Add new nullable TextField with a default.
+ new_field = TextField(blank=True, null=True, default='text')
+ new_field.set_attributes_from_name('description')
+ with connection.schema_editor() as editor:
+ editor.add_field(Author, new_field)
+ Author.objects.create(name='Anonymous1')
+ with connection.cursor() as cursor:
+ cursor.execute('SELECT description FROM schema_author;')
+ item = cursor.fetchall()[0]
+ self.assertIsNone(item[0])
+ field = next(
+ f
+ for f in connection.introspection.get_table_description(
+ cursor,
+ 'schema_author',
+ )
+ if f.name == 'description'
+ )
+ # Field is still nullable.
+ self.assertTrue(field.null_ok)
+ # The database default is no longer set.
+ if connection.features.can_introspect_default:
+ self.assertIn(field.default, ['NULL', None])
+
def test_alter_field_default_dropped(self):
# Create the table
with connection.schema_editor() as editor: