diff options
Diffstat (limited to 'tests/invalid_models_tests')
-rw-r--r-- | tests/invalid_models_tests/test_models.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/invalid_models_tests/test_models.py b/tests/invalid_models_tests/test_models.py index d9993c00cd..3203c26a2e 100644 --- a/tests/invalid_models_tests/test_models.py +++ b/tests/invalid_models_tests/test_models.py @@ -495,6 +495,36 @@ class IndexesTests(TestCase): self.assertEqual(Model.check(databases=self.databases), []) + def test_func_index(self): + class Model(models.Model): + name = models.CharField(max_length=10) + + class Meta: + indexes = [models.Index(Lower('name'), name='index_lower_name')] + + warn = Warning( + '%s does not support indexes on expressions.' + % connection.display_name, + hint=( + "An index won't be created. Silence this warning if you don't " + "care about it." + ), + obj=Model, + id='models.W043', + ) + expected = [] if connection.features.supports_expression_indexes else [warn] + self.assertEqual(Model.check(databases=self.databases), expected) + + def test_func_index_required_db_features(self): + class Model(models.Model): + name = models.CharField(max_length=10) + + class Meta: + indexes = [models.Index(Lower('name'), name='index_lower_name')] + required_db_features = {'supports_expression_indexes'} + + self.assertEqual(Model.check(databases=self.databases), []) + @isolate_apps('invalid_models_tests') class FieldNamesTests(TestCase): |