summaryrefslogtreecommitdiff
path: root/tests/invalid_models_tests/test_models.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/invalid_models_tests/test_models.py')
-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):