15
15
@isolate_apps ("system_checks" , attr_name = "apps" )
16
16
@override_system_checks ([check_vector_search_indexes ])
17
17
class InvalidSearchIndexesTest (TestCase ):
18
- def test_search_requires_search_index_support (self ):
18
+ def test_requires_atlas_search_support (self ):
19
19
class Article (models .Model ):
20
20
title = models .CharField (max_length = 10 )
21
21
@@ -29,7 +29,7 @@ class Meta:
29
29
errors ,
30
30
[
31
31
checks .Warning (
32
- "This MongoDB server does not support search indexes ." ,
32
+ "This MongoDB server does not support atlas search ." ,
33
33
hint = (
34
34
"The index won't be created. Silence this warning if you "
35
35
"don't care about it."
@@ -41,11 +41,37 @@ class Meta:
41
41
)
42
42
43
43
44
- @skipUnlessDBFeature ("supports_atlas_search" )
45
44
@isolate_apps ("system_checks" , attr_name = "apps" )
46
45
@override_system_checks ([check_vector_search_indexes ])
47
46
class InvalidVectorSearchIndexesTest (TestCase ):
48
- def test_vectorsearch_requires_size (self ):
47
+ @skipIfDBFeature ("supports_atlas_search" )
48
+ def test_requires_atlas_search_support (self ):
49
+ class Article (models .Model ):
50
+ title = models .CharField (max_length = 10 )
51
+
52
+ class Meta :
53
+ indexes = [
54
+ VectorSearchIndex (fields = ["title" ]),
55
+ ]
56
+
57
+ errors = checks .run_checks (app_configs = self .apps .get_app_configs (), databases = {"default" })
58
+ self .assertEqual (
59
+ errors ,
60
+ [
61
+ checks .Warning (
62
+ "This MongoDB server does not support atlas search." ,
63
+ hint = (
64
+ "The index won't be created. Silence this warning if you "
65
+ "don't care about it."
66
+ ),
67
+ obj = Article ._meta .indexes [0 ],
68
+ id = "django_mongodb_backend.indexes.VectorSearchIndex.W001" ,
69
+ )
70
+ ],
71
+ )
72
+
73
+ @skipUnlessDBFeature ("supports_atlas_search" )
74
+ def test_requires_size (self ):
49
75
class Article (models .Model ):
50
76
title_embedded = ArrayField (models .FloatField ())
51
77
@@ -66,7 +92,8 @@ class Meta:
66
92
],
67
93
)
68
94
69
- def test_vectorsearch_requires_float_inner_field (self ):
95
+ @skipUnlessDBFeature ("supports_atlas_search" )
96
+ def test_requires_float_inner_field (self ):
70
97
class Article (models .Model ):
71
98
title_embedded = ArrayField (models .CharField (), size = 30 )
72
99
@@ -87,7 +114,8 @@ class Meta:
87
114
],
88
115
)
89
116
90
- def test_vectorsearch_unsupported_type (self ):
117
+ @skipUnlessDBFeature ("supports_atlas_search" )
118
+ def test_unsupported_type (self ):
91
119
class Article (models .Model ):
92
120
data = models .JSONField ()
93
121
@@ -108,7 +136,8 @@ class Meta:
108
136
],
109
137
)
110
138
111
- def test_vectorsearch_invalid_similarity_function (self ):
139
+ @skipUnlessDBFeature ("supports_atlas_search" )
140
+ def test_invalid_similarity_function (self ):
112
141
class Article (models .Model ):
113
142
vector_data = ArrayField (models .DecimalField (), size = 10 )
114
143
@@ -130,7 +159,8 @@ class Meta:
130
159
],
131
160
)
132
161
133
- def test_vectorsearch_invalid_similarities_function (self ):
162
+ @skipUnlessDBFeature ("supports_atlas_search" )
163
+ def test_invalid_similarities_function (self ):
134
164
class Article (models .Model ):
135
165
vector_data = ArrayField (models .DecimalField (), size = 10 )
136
166
@@ -161,7 +191,8 @@ class Meta:
161
191
],
162
192
)
163
193
164
- def test_vectorsearch (self ):
194
+ @skipUnlessDBFeature ("supports_atlas_search" )
195
+ def test_simple (self ):
165
196
class Article (models .Model ):
166
197
vector_data = ArrayField (models .DecimalField (), size = 10 )
167
198
0 commit comments