summaryrefslogtreecommitdiff
path: root/tests/invalid_models_tests
diff options
context:
space:
mode:
authorcan <cansarigol@derinbilgi.com.tr>2019-07-04 19:21:50 +0300
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-07-05 09:30:21 +0200
commit53209f78302a639032afabf5326d28d4ddd9d03c (patch)
tree1fc04d7c676950946c26d1f760d0badb2f761e6b /tests/invalid_models_tests
parentf197c3dd9130b18397022605c27ffe5755f329d7 (diff)
Fixed #30613 -- Moved index name validation to system checks.
Diffstat (limited to 'tests/invalid_models_tests')
-rw-r--r--tests/invalid_models_tests/test_models.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/invalid_models_tests/test_models.py b/tests/invalid_models_tests/test_models.py
index 32617555a2..18a59c407d 100644
--- a/tests/invalid_models_tests/test_models.py
+++ b/tests/invalid_models_tests/test_models.py
@@ -296,6 +296,39 @@ class IndexesTests(SimpleTestCase):
self.assertEqual(Bar.check(), [])
+ def test_name_constraints(self):
+ class Model(models.Model):
+ class Meta:
+ indexes = [
+ models.Index(fields=['id'], name='_index_name'),
+ models.Index(fields=['id'], name='5index_name'),
+ ]
+
+ self.assertEqual(Model.check(), [
+ Error(
+ "The index name '%sindex_name' cannot start with an "
+ "underscore or a number." % prefix,
+ obj=Model,
+ id='models.E033',
+ ) for prefix in ('_', '5')
+ ])
+
+ def test_max_name_length(self):
+ index_name = 'x' * 31
+
+ class Model(models.Model):
+ class Meta:
+ indexes = [models.Index(fields=['id'], name=index_name)]
+
+ self.assertEqual(Model.check(), [
+ Error(
+ "The index name '%s' cannot be longer than 30 characters."
+ % index_name,
+ obj=Model,
+ id='models.E034',
+ ),
+ ])
+
@isolate_apps('invalid_models_tests')
class FieldNamesTests(SimpleTestCase):