33from django .core import checks
44from django .db import connection , models
55from django .test import TestCase
6- from django .test .utils import isolate_apps , override_system_checks
6+ from django .test .utils import isolate_apps
77
8- from django_mongodb_backend .checks import check_indexes
98from django_mongodb_backend .fields import ArrayField , ObjectIdField
109from django_mongodb_backend .indexes import SearchIndex , VectorSearchIndex
1110from django_mongodb_backend .models import EmbeddedModel
1211
1312
14- @isolate_apps ("indexes_" , attr_name = "apps" )
15- @override_system_checks ([check_indexes ])
13+ @isolate_apps ("indexes_" )
1614@mock .patch .object (connection .features , "supports_atlas_search" , False )
1715class UnsupportedSearchIndexesTests (TestCase ):
1816 def test_search_requires_atlas_search_support (self ):
@@ -22,9 +20,8 @@ class Article(models.Model):
2220 class Meta :
2321 indexes = [SearchIndex (fields = ["title" ])]
2422
25- errors = checks .run_checks (app_configs = self .apps .get_app_configs (), databases = {"default" })
2623 self .assertEqual (
27- errors ,
24+ Article . check ( databases = { "default" }) ,
2825 [
2926 checks .Warning (
3027 "This MongoDB server does not support SearchIndex." ,
@@ -46,9 +43,8 @@ class Article(models.Model):
4643 class Meta :
4744 indexes = [VectorSearchIndex (fields = ["title" , "vector" ], similarities = "cosine" )]
4845
49- errors = checks .run_checks (app_configs = self .apps .get_app_configs (), databases = {"default" })
5046 self .assertEqual (
51- errors ,
47+ Article . check ( databases = { "default" }) ,
5248 [
5349 checks .Warning (
5450 "This MongoDB server does not support VectorSearchIndex." ,
@@ -63,8 +59,7 @@ class Meta:
6359 )
6460
6561
66- @isolate_apps ("indexes_" , attr_name = "apps" )
67- @override_system_checks ([check_indexes ])
62+ @isolate_apps ("indexes_" )
6863@mock .patch .object (connection .features , "supports_atlas_search" , True )
6964class InvalidVectorSearchIndexesTests (TestCase ):
7065 def test_requires_size (self ):
@@ -74,9 +69,8 @@ class Article(models.Model):
7469 class Meta :
7570 indexes = [VectorSearchIndex (fields = ["title_embedded" ], similarities = "cosine" )]
7671
77- errors = checks .run_checks (app_configs = self .apps .get_app_configs (), databases = {"default" })
7872 self .assertEqual (
79- errors ,
73+ Article . check ( databases = { "default" }) ,
8074 [
8175 checks .Error (
8276 "VectorSearchIndex requires 'size' on field 'title_embedded'." ,
@@ -88,14 +82,13 @@ class Meta:
8882
8983 def test_requires_float_inner_field (self ):
9084 class Article (models .Model ):
91- title_embedded = ArrayField (models .CharField (), size = 30 )
85+ title_embedded = ArrayField (models .CharField (max_length = 1 ), size = 30 )
9286
9387 class Meta :
9488 indexes = [VectorSearchIndex (fields = ["title_embedded" ], similarities = "cosine" )]
9589
96- errors = checks .run_checks (app_configs = self .apps .get_app_configs (), databases = {"default" })
9790 self .assertEqual (
98- errors ,
91+ Article . check ( databases = { "default" }) ,
9992 [
10093 checks .Error (
10194 "VectorSearchIndex requires the base field of ArrayField "
@@ -114,9 +107,8 @@ class Article(models.Model):
114107 class Meta :
115108 indexes = [VectorSearchIndex (fields = ["data" , "vector" ], similarities = "cosine" )]
116109
117- errors = checks .run_checks (app_configs = self .apps .get_app_configs (), databases = {"default" })
118110 self .assertEqual (
119- errors ,
111+ Article . check ( databases = { "default" }) ,
120112 [
121113 checks .Error (
122114 "VectorSearchIndex does not support field 'data' (JSONField)." ,
@@ -139,9 +131,8 @@ class Meta:
139131 )
140132 ]
141133
142- errors = checks .run_checks (app_configs = self .apps .get_app_configs (), databases = {"default" })
143134 self .assertEqual (
144- errors ,
135+ Article . check ( databases = { "default" }) ,
145136 [
146137 checks .Error (
147138 "VectorSearchIndex requires the same number of similarities "
@@ -160,8 +151,7 @@ class Article(models.Model):
160151 class Meta :
161152 indexes = [VectorSearchIndex (fields = ["vector" ], similarities = "cosine" )]
162153
163- errors = checks .run_checks (app_configs = self .apps .get_app_configs (), databases = {"default" })
164- self .assertEqual (errors , [])
154+ self .assertEqual (Article .check (databases = {"default" }), [])
165155
166156 def test_valid_fields (self ):
167157 class Data (EmbeddedModel ):
@@ -193,8 +183,7 @@ class Meta:
193183 )
194184 ]
195185
196- errors = checks .run_checks (app_configs = self .apps .get_app_configs (), databases = {"default" })
197- self .assertEqual (errors , [])
186+ self .assertEqual (SearchIndexTestModel .check (databases = {"default" }), [])
198187
199188 def test_requires_vector_field (self ):
200189 class NoSearchVectorModel (models .Model ):
@@ -207,9 +196,8 @@ class Meta:
207196 )
208197 ]
209198
210- errors = checks .run_checks (app_configs = self .apps .get_app_configs (), databases = {"default" })
211199 self .assertEqual (
212- errors ,
200+ NoSearchVectorModel . check ( databases = { "default" }) ,
213201 [
214202 checks .Error (
215203 "VectorSearchIndex requires at least one ArrayField to store vector data." ,
0 commit comments