diff options
| author | can <cansarigol@derinbilgi.com.tr> | 2019-07-04 19:21:50 +0300 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-07-05 09:30:21 +0200 |
| commit | 53209f78302a639032afabf5326d28d4ddd9d03c (patch) | |
| tree | 1fc04d7c676950946c26d1f760d0badb2f761e6b /tests/invalid_models_tests | |
| parent | f197c3dd9130b18397022605c27ffe5755f329d7 (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.py | 33 |
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): |
