summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSergey Fedoseev <fedoseev.sergey@gmail.com>2014-09-16 23:37:18 +0600
committerTim Graham <timograham@gmail.com>2014-09-23 09:25:31 -0400
commit83cd18633fb13924d8a50a1cd4ed21cb9552a635 (patch)
tree11d18adbe065db72f0682daabd555d1f5fa96af2 /tests
parent0bea6c8749d035f7b915d670946793630b8c86c5 (diff)
Fixed #23065 -- Quoted constraint names in SQL generated by migrations.
Diffstat (limited to 'tests')
-rw-r--r--tests/schema/tests.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/schema/tests.py b/tests/schema/tests.py
index c51ef97106..02207ff6e9 100644
--- a/tests/schema/tests.py
+++ b/tests/schema/tests.py
@@ -1040,3 +1040,53 @@ class SchemaTests(TransactionTestCase):
DatabaseError,
lambda: list(Thing.objects.all()),
)
+
+ @unittest.skipUnless(connection.features.supports_foreign_keys, "No FK support")
+ def test_remove_constraints_capital_letters(self):
+ """
+ #23065 - Constraint names must be quoted if they contain capital letters.
+ """
+ def get_field(*args, **kwargs):
+ kwargs['db_column'] = "CamelCase"
+ field = kwargs.pop('field_class', IntegerField)(*args, **kwargs)
+ field.set_attributes_from_name("CamelCase")
+ return field
+
+ model = Author
+ field = get_field()
+ table = model._meta.db_table
+ column = field.column
+
+ with connection.schema_editor() as editor:
+ editor.create_model(model)
+ editor.add_field(model, field)
+
+ editor.execute(
+ editor.sql_create_index % {
+ "table": editor.quote_name(table),
+ "name": editor.quote_name("CamelCaseIndex"),
+ "columns": editor.quote_name(column),
+ "extra": "",
+ }
+ )
+ editor.alter_field(model, get_field(db_index=True), field)
+
+ editor.execute(
+ editor.sql_create_unique % {
+ "table": editor.quote_name(table),
+ "name": editor.quote_name("CamelCaseUniqConstraint"),
+ "columns": editor.quote_name(field.column),
+ }
+ )
+ editor.alter_field(model, get_field(unique=True), field)
+
+ editor.execute(
+ editor.sql_create_fk % {
+ "table": editor.quote_name(table),
+ "name": editor.quote_name("CamelCaseFKConstraint"),
+ "column": editor.quote_name(column),
+ "to_table": editor.quote_name(table),
+ "to_column": editor.quote_name(model._meta.auto_field.column),
+ }
+ )
+ editor.alter_field(model, get_field(Author, field_class=ForeignKey), field)