diff options
author | Simon Charette <charette.s@gmail.com> | 2018-08-05 21:06:52 -0400 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2018-11-13 15:25:44 -0500 |
commit | dba4a634ba999bf376caee193b3378bc0b730bd4 (patch) | |
tree | dcf309133def892bc314e69f423e926f6e4dcc73 /tests/schema | |
parent | 2f120ac51722a257219a7577759702605cefddf4 (diff) | |
download | django-dba4a634ba999bf376caee193b3378bc0b730bd4.tar.gz |
Refs #29641 -- Refactored database schema constraint creation.
Added a test for constraint names in the database.
Updated SQLite introspection to use sqlparse to allow reading the
constraint name for table check and unique constraints.
Co-authored-by: Ian Foote <python@ian.feete.org>
Diffstat (limited to 'tests/schema')
-rw-r--r-- | tests/schema/tests.py | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/tests/schema/tests.py b/tests/schema/tests.py index 7f170c863e..6f2b6df765 100644 --- a/tests/schema/tests.py +++ b/tests/schema/tests.py @@ -2145,29 +2145,29 @@ class SchemaTests(TransactionTestCase): self.assertNotIn(constraint_name, self.get_constraints(model._meta.db_table)) constraint_name = "CamelCaseUniqConstraint" - editor.execute( - editor.sql_create_unique % { - "table": editor.quote_name(table), - "name": editor.quote_name(constraint_name), - "columns": editor.quote_name(field.column), - } - ) + editor.execute(editor._create_unique_sql(model, [field.column], constraint_name)) if connection.features.uppercases_column_names: constraint_name = constraint_name.upper() self.assertIn(constraint_name, self.get_constraints(model._meta.db_table)) editor.alter_field(model, get_field(unique=True), field, strict=True) self.assertNotIn(constraint_name, self.get_constraints(model._meta.db_table)) - if editor.sql_create_fk: + if editor.sql_foreign_key_constraint: constraint_name = "CamelCaseFKConstraint" + fk_sql = editor.sql_foreign_key_constraint % { + "column": editor.quote_name(column), + "to_table": editor.quote_name(table), + "to_column": editor.quote_name(model._meta.auto_field.column), + "deferrable": connection.ops.deferrable_sql(), + } + constraint_sql = editor.sql_constraint % { + "name": editor.quote_name(constraint_name), + "constraint": fk_sql, + } editor.execute( - editor.sql_create_fk % { + editor.sql_create_constraint % { "table": editor.quote_name(table), - "name": editor.quote_name(constraint_name), - "column": editor.quote_name(column), - "to_table": editor.quote_name(table), - "to_column": editor.quote_name(model._meta.auto_field.column), - "deferrable": connection.ops.deferrable_sql(), + "constraint": constraint_sql, } ) if connection.features.uppercases_column_names: |