diff options
author | Hannes Ljungberg <hannes@5monkeys.se> | 2019-10-10 20:04:17 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-01-13 11:47:50 +0100 |
commit | 83fcfc9ec8610540948815e127101f1206562ead (patch) | |
tree | aca51a61ef2d7397ee170fc74c564d242c441147 /tests/invalid_models_tests | |
parent | e3ece0144a988bc522c4bd551baecaf2139ce4ed (diff) | |
download | django-83fcfc9ec8610540948815e127101f1206562ead.tar.gz |
Fixed #26167 -- Added support for functional indexes.
Thanks Simon Charette, Mads Jensen, and Mariusz Felisiak for reviews.
Co-authored-by: Markus Holtermann <info@markusholtermann.eu>
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): |