summaryrefslogtreecommitdiff
path: root/tests/invalid_models_tests
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2025-04-19 20:32:58 -0400
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2025-05-14 16:00:53 +0200
commit8638d8bf74c1a58302c97d4436ad2eb08438145b (patch)
treecaf3ceeb75c7ac1becf9563ca01844f537f99486 /tests/invalid_models_tests
parent8620a3b0c79e4e8098b88f1176ed26fad0bf6c5c (diff)
Fixed #36273 -- Moved Index system checks from Model to Index.check().
Diffstat (limited to 'tests/invalid_models_tests')
-rw-r--r--tests/invalid_models_tests/test_models.py37
1 files changed, 22 insertions, 15 deletions
diff --git a/tests/invalid_models_tests/test_models.py b/tests/invalid_models_tests/test_models.py
index c44fe56f89..faa0db9da7 100644
--- a/tests/invalid_models_tests/test_models.py
+++ b/tests/invalid_models_tests/test_models.py
@@ -175,7 +175,7 @@ class IndexesTests(TestCase):
indexes = [models.Index(fields=["missing_field"], name="name")]
self.assertEqual(
- Model.check(),
+ Model.check(databases=self.databases),
[
Error(
"'indexes' refers to the nonexistent field 'missing_field'.",
@@ -193,7 +193,7 @@ class IndexesTests(TestCase):
indexes = [models.Index(fields=["m2m"], name="name")]
self.assertEqual(
- Model.check(),
+ Model.check(databases=self.databases),
[
Error(
"'indexes' refers to a ManyToManyField 'm2m', but "
@@ -215,7 +215,7 @@ class IndexesTests(TestCase):
indexes = [models.Index(fields=["field2", "field1"], name="name")]
self.assertEqual(
- Bar.check(),
+ Bar.check(databases=self.databases),
[
Error(
"'indexes' refers to field 'field1' which is not local to "
@@ -244,7 +244,7 @@ class IndexesTests(TestCase):
models.Index(fields=["foo_1_id", "foo_2"], name="index_name")
]
- self.assertEqual(Bar.check(), [])
+ self.assertEqual(Bar.check(databases=self.databases), [])
def test_pointing_to_composite_primary_key(self):
class Model(models.Model):
@@ -256,7 +256,7 @@ class IndexesTests(TestCase):
indexes = [models.Index(fields=["pk", "name"], name="name")]
self.assertEqual(
- Model.check(),
+ Model.check(databases=self.databases),
[
Error(
"'indexes' refers to a CompositePrimaryKey 'pk', but "
@@ -276,7 +276,7 @@ class IndexesTests(TestCase):
]
self.assertEqual(
- Model.check(),
+ Model.check(databases=self.databases),
[
Error(
"The index name '%sindex_name' cannot start with an "
@@ -296,7 +296,7 @@ class IndexesTests(TestCase):
indexes = [models.Index(fields=["id"], name=index_name)]
self.assertEqual(
- Model.check(),
+ Model.check(databases=self.databases),
[
Error(
"The index name '%s' cannot be longer than 30 characters."
@@ -499,7 +499,7 @@ class IndexesTests(TestCase):
indexes = [models.Index(fields=["name"], include=["pk"], name="name")]
self.assertEqual(
- Model.check(),
+ Model.check(databases=self.databases),
[
Error(
"'indexes' refers to a CompositePrimaryKey 'pk', but "
@@ -539,6 +539,7 @@ class IndexesTests(TestCase):
self.assertEqual(Model.check(databases=self.databases), [])
+ @skipUnlessDBFeature("supports_expression_indexes")
def test_func_index_complex_expression_custom_lookup(self):
class Model(models.Model):
height = models.IntegerField()
@@ -554,15 +555,16 @@ class IndexesTests(TestCase):
]
with register_lookup(models.IntegerField, Abs):
- self.assertEqual(Model.check(), [])
+ self.assertEqual(Model.check(databases=self.databases), [])
+ @skipUnlessDBFeature("supports_expression_indexes")
def test_func_index_pointing_to_missing_field(self):
class Model(models.Model):
class Meta:
indexes = [models.Index(Lower("missing_field").desc(), name="name")]
self.assertEqual(
- Model.check(),
+ Model.check(databases=self.databases),
[
Error(
"'indexes' refers to the nonexistent field 'missing_field'.",
@@ -572,6 +574,7 @@ class IndexesTests(TestCase):
],
)
+ @skipUnlessDBFeature("supports_expression_indexes")
def test_func_index_pointing_to_missing_field_nested(self):
class Model(models.Model):
class Meta:
@@ -580,7 +583,7 @@ class IndexesTests(TestCase):
]
self.assertEqual(
- Model.check(),
+ Model.check(databases=self.databases),
[
Error(
"'indexes' refers to the nonexistent field 'missing_field'.",
@@ -590,6 +593,7 @@ class IndexesTests(TestCase):
],
)
+ @skipUnlessDBFeature("supports_expression_indexes")
def test_func_index_pointing_to_m2m_field(self):
class Model(models.Model):
m2m = models.ManyToManyField("self")
@@ -598,7 +602,7 @@ class IndexesTests(TestCase):
indexes = [models.Index(Lower("m2m"), name="name")]
self.assertEqual(
- Model.check(),
+ Model.check(databases=self.databases),
[
Error(
"'indexes' refers to a ManyToManyField 'm2m', but "
@@ -609,6 +613,7 @@ class IndexesTests(TestCase):
],
)
+ @skipUnlessDBFeature("supports_expression_indexes")
def test_func_index_pointing_to_non_local_field(self):
class Foo(models.Model):
field1 = models.CharField(max_length=15)
@@ -618,7 +623,7 @@ class IndexesTests(TestCase):
indexes = [models.Index(Lower("field1"), name="name")]
self.assertEqual(
- Bar.check(),
+ Bar.check(databases=self.databases),
[
Error(
"'indexes' refers to field 'field1' which is not local to "
@@ -630,6 +635,7 @@ class IndexesTests(TestCase):
],
)
+ @skipUnlessDBFeature("supports_expression_indexes")
def test_func_index_pointing_to_fk(self):
class Foo(models.Model):
pass
@@ -643,8 +649,9 @@ class IndexesTests(TestCase):
models.Index(Lower("foo_1_id"), Lower("foo_2"), name="index_name"),
]
- self.assertEqual(Bar.check(), [])
+ self.assertEqual(Bar.check(databases=self.databases), [])
+ @skipUnlessDBFeature("supports_expression_indexes")
def test_func_index_pointing_to_composite_primary_key(self):
class Model(models.Model):
pk = models.CompositePrimaryKey("version", "name")
@@ -655,7 +662,7 @@ class IndexesTests(TestCase):
indexes = [models.Index(Abs("pk"), name="name")]
self.assertEqual(
- Model.check(),
+ Model.check(databases=self.databases),
[
Error(
"'indexes' refers to a CompositePrimaryKey 'pk', but "