Skip to content

Commit 5016356

Browse files
committed
Add similarities unit test
1 parent bc82a58 commit 5016356

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

django_mongodb_backend/indexes.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def check(self, model, connection):
154154
errors = []
155155
error_id_prefix = "django_mongodb_backend.indexes.VectorSearchIndex"
156156
similarities = (
157-
self.similarity if isinstance(self.similarities, list) else [self.similarities]
157+
self.similarities if isinstance(self.similarities, list) else [self.similarities]
158158
)
159159
for func in similarities:
160160
if func not in self.ALLOWED_SIMILARITY_FUNCTIONS:

tests/system_checks/tests.py

+31
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,37 @@ class Meta:
9999
],
100100
)
101101

102+
def test_vectorsearch_invalid_similarities_function(self):
103+
class Article(models.Model):
104+
vector_data = ArrayField(models.DecimalField(), size=10)
105+
106+
class Meta:
107+
indexes = [
108+
VectorSearchIndex(
109+
fields=["vector_data", "vector_data", "vector_data"],
110+
similarities=["sum", "dotProduct", "tangh"],
111+
),
112+
]
113+
114+
errors = checks.run_checks(app_configs=self.apps.get_app_configs(), databases={"default"})
115+
self.assertEqual(
116+
errors,
117+
[
118+
checks.Error(
119+
"sum isn't a valid similarity function, "
120+
"options are cosine, dotProduct, euclidean",
121+
id="django_mongodb_backend.indexes.VectorSearchIndex.E004",
122+
obj=Article._meta.indexes[0],
123+
),
124+
checks.Error(
125+
"tangh isn't a valid similarity function, "
126+
"options are cosine, dotProduct, euclidean",
127+
id="django_mongodb_backend.indexes.VectorSearchIndex.E004",
128+
obj=Article._meta.indexes[0],
129+
),
130+
],
131+
)
132+
102133
def test_vectorsearch(self):
103134
class Article(models.Model):
104135
vector_data = ArrayField(models.DecimalField(), size=10)

0 commit comments

Comments
 (0)