From 5b1fb0a75d6961d78ba68c72008f1cc535f9689a Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Thu, 18 Dec 2014 21:17:17 +0100 Subject: [PATCH] Forward-ported test and release note from f46a16614 Refs #24015. --- docs/releases/1.7.2.txt | 3 +++ tests/indexes/tests.py | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/releases/1.7.2.txt b/docs/releases/1.7.2.txt index 47a56084d0..fc7bb98349 100644 --- a/docs/releases/1.7.2.txt +++ b/docs/releases/1.7.2.txt @@ -155,3 +155,6 @@ Bugfixes * Ensured the app registry is fully populated when unpickling models. When an external script (like a queueing infrastructure) reloads pickled models, it could crash with an ``AppRegistryNotReady`` exception (:ticket:`24007`). + +* Added quoting to field indexes in the SQL generated by migrations to prevent + a crash when the index name requires it (:ticket:`#24015`). diff --git a/tests/indexes/tests.py b/tests/indexes/tests.py index 411b7646c4..1ba9f1f044 100644 --- a/tests/indexes/tests.py +++ b/tests/indexes/tests.py @@ -12,8 +12,16 @@ class CreationIndexesTests(TestCase): Test index handling by the to-be-deprecated connection.creation interface. """ def test_index_together(self): - index_sql = connection.creation.sql_indexes_for_model(Article, no_style()) + editor = connection.schema_editor() + index_sql = editor._model_indexes_sql(Article) self.assertEqual(len(index_sql), 1) + # Ensure the index name is properly quoted + self.assertIn( + connection.ops.quote_name( + editor._create_index_name(Article, ['headline', 'pub_date'], suffix='_idx') + ), + index_sql[0] + ) def test_index_together_single_list(self): # Test for using index_together with a single list (#22172)