summaryrefslogtreecommitdiff
path: root/tests/indexes
diff options
context:
space:
mode:
authorEd Morley <emorley@mozilla.com>2016-12-01 15:54:58 +0000
committerTim Graham <timograham@gmail.com>2016-12-01 13:25:48 -0500
commitdd2e4d7b5d6f24f33c2805b0bfb97a08e27b2125 (patch)
tree020cbce7a3c56d456b74f819d2e6263d2b28dcfc /tests/indexes
parent47744a0a4ed0b9e2d3f52de65abcf6cef9a14e31 (diff)
downloaddjango-dd2e4d7b5d6f24f33c2805b0bfb97a08e27b2125.tar.gz
Refs #27558 -- Added test for no index on InnoDB ForeignKey.
The refactor in 3f76d1402dac9c2993d588f996dc1c331edbc9a7 fixed the creation of redundant indexes. Forwardport of 82ce55dbbe2d96e8b5d1fcb4a1d52b73e08e7929 from stable/1.10.x
Diffstat (limited to 'tests/indexes')
-rw-r--r--tests/indexes/tests.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/indexes/tests.py b/tests/indexes/tests.py
index 3ef6d2939b..81e2278b19 100644
--- a/tests/indexes/tests.py
+++ b/tests/indexes/tests.py
@@ -1,6 +1,8 @@
from unittest import skipUnless
from django.db import connection
+from django.db.models.deletion import CASCADE
+from django.db.models.fields.related import ForeignKey
from django.test import TestCase
from .models import Article, ArticleTranslation, IndexTogetherSingleList
@@ -98,3 +100,15 @@ class SchemaIndexesTests(TestCase):
'CREATE INDEX `indexes_articletranslation_article_no_constraint_id_d6c0806b` '
'ON `indexes_articletranslation` (`article_no_constraint_id`)'
])
+
+ # The index also shouldn't be created if the ForeignKey is added after
+ # the model was created.
+ with connection.schema_editor() as editor:
+ new_field = ForeignKey(Article, CASCADE)
+ new_field.set_attributes_from_name('new_foreign_key')
+ editor.add_field(ArticleTranslation, new_field)
+ self.assertEqual(editor.deferred_sql, [
+ 'ALTER TABLE `indexes_articletranslation` '
+ 'ADD CONSTRAINT `indexes_articletrans_new_foreign_key_id_d27a9146_fk_indexes_a` '
+ 'FOREIGN KEY (`new_foreign_key_id`) REFERENCES `indexes_article` (`id`)'
+ ])