From 2e4cfcd2b9a0984ad6c4087a5deebbf33413835c Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Tue, 12 Jul 2016 17:50:17 -0700 Subject: Fixed #26889 -- Fixed missing PostgreSQL index in SchemaEditor.add_field(). --- tests/schema/tests.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'tests/schema') diff --git a/tests/schema/tests.py b/tests/schema/tests.py index 96c2956e9a..5b51bd36a9 100644 --- a/tests/schema/tests.py +++ b/tests/schema/tests.py @@ -1907,6 +1907,32 @@ class SchemaTests(TransactionTestCase): with connection.schema_editor() as editor: editor.add_field(Author, new_field) + @unittest.skipUnless(connection.vendor == 'postgresql', "PostgreSQL specific") + def test_add_indexed_charfield(self): + field = CharField(max_length=255, db_index=True) + field.set_attributes_from_name('nom_de_plume') + with connection.schema_editor() as editor: + editor.create_model(Author) + editor.add_field(Author, field) + # Should create two indexes; one for like operator. + self.assertEqual( + self.get_constraints_for_column(Author, 'nom_de_plume'), + ['schema_author_95aa9e9b', 'schema_author_nom_de_plume_7570a851_like'], + ) + + @unittest.skipUnless(connection.vendor == 'postgresql', "PostgreSQL specific") + def test_add_unique_charfield(self): + field = CharField(max_length=255, unique=True) + field.set_attributes_from_name('nom_de_plume') + with connection.schema_editor() as editor: + editor.create_model(Author) + editor.add_field(Author, field) + # Should create two indexes; one for like operator. + self.assertEqual( + self.get_constraints_for_column(Author, 'nom_de_plume'), + ['schema_author_nom_de_plume_7570a851_like', 'schema_author_nom_de_plume_key'] + ) + @unittest.skipUnless(connection.vendor == 'postgresql', "PostgreSQL specific") def test_alter_field_add_index_to_charfield(self): # Create the table and verify no initial indexes. -- cgit v1.3