Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions django_mongodb_backend/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
check_django_compatability()

from .aggregates import register_aggregates # noqa: E402
from .checks import register_checks # noqa: E402
from .expressions.builtins import register_expressions # noqa: E402
from .fields import register_fields # noqa: E402
from .functions import register_functions # noqa: E402
Expand All @@ -16,7 +15,6 @@
from .query import register_nodes # noqa: E402

register_aggregates()
register_checks()
register_expressions()
register_fields()
register_functions()
Expand Down
32 changes: 0 additions & 32 deletions django_mongodb_backend/checks.py

This file was deleted.

2 changes: 1 addition & 1 deletion docs/releases/6.0.x.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ New features
Bug fixes
---------

- ...
- Prevented ``Index`` system checks from running twice.

6.0.0
=====
Expand Down
38 changes: 13 additions & 25 deletions tests/indexes_/test_checks.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,14 @@
from django.core import checks
from django.db import connection, models
from django.test import TestCase
from django.test.utils import isolate_apps, override_system_checks
from django.test.utils import isolate_apps

from django_mongodb_backend.checks import check_indexes
from django_mongodb_backend.fields import ArrayField, ObjectIdField
from django_mongodb_backend.indexes import SearchIndex, VectorSearchIndex
from django_mongodb_backend.models import EmbeddedModel


@isolate_apps("indexes_", attr_name="apps")
@override_system_checks([check_indexes])
@isolate_apps("indexes_")
@mock.patch.object(connection.features, "supports_atlas_search", False)
class UnsupportedSearchIndexesTests(TestCase):
def test_search_requires_atlas_search_support(self):
Expand All @@ -22,9 +20,8 @@ class Article(models.Model):
class Meta:
indexes = [SearchIndex(fields=["title"])]

errors = checks.run_checks(app_configs=self.apps.get_app_configs(), databases={"default"})
self.assertEqual(
errors,
Article.check(databases={"default"}),
[
checks.Warning(
"This MongoDB server does not support SearchIndex.",
Expand All @@ -46,9 +43,8 @@ class Article(models.Model):
class Meta:
indexes = [VectorSearchIndex(fields=["title", "vector"], similarities="cosine")]

errors = checks.run_checks(app_configs=self.apps.get_app_configs(), databases={"default"})
self.assertEqual(
errors,
Article.check(databases={"default"}),
[
checks.Warning(
"This MongoDB server does not support VectorSearchIndex.",
Expand All @@ -63,8 +59,7 @@ class Meta:
)


@isolate_apps("indexes_", attr_name="apps")
@override_system_checks([check_indexes])
@isolate_apps("indexes_")
@mock.patch.object(connection.features, "supports_atlas_search", True)
class InvalidVectorSearchIndexesTests(TestCase):
def test_requires_size(self):
Expand All @@ -74,9 +69,8 @@ class Article(models.Model):
class Meta:
indexes = [VectorSearchIndex(fields=["title_embedded"], similarities="cosine")]

errors = checks.run_checks(app_configs=self.apps.get_app_configs(), databases={"default"})
self.assertEqual(
errors,
Article.check(databases={"default"}),
[
checks.Error(
"VectorSearchIndex requires 'size' on field 'title_embedded'.",
Expand All @@ -88,14 +82,13 @@ class Meta:

def test_requires_float_inner_field(self):
class Article(models.Model):
title_embedded = ArrayField(models.CharField(), size=30)
title_embedded = ArrayField(models.CharField(max_length=1), size=30)

class Meta:
indexes = [VectorSearchIndex(fields=["title_embedded"], similarities="cosine")]

errors = checks.run_checks(app_configs=self.apps.get_app_configs(), databases={"default"})
self.assertEqual(
errors,
Article.check(databases={"default"}),
[
checks.Error(
"VectorSearchIndex requires the base field of ArrayField "
Expand All @@ -114,9 +107,8 @@ class Article(models.Model):
class Meta:
indexes = [VectorSearchIndex(fields=["data", "vector"], similarities="cosine")]

errors = checks.run_checks(app_configs=self.apps.get_app_configs(), databases={"default"})
self.assertEqual(
errors,
Article.check(databases={"default"}),
[
checks.Error(
"VectorSearchIndex does not support field 'data' (JSONField).",
Expand All @@ -139,9 +131,8 @@ class Meta:
)
]

errors = checks.run_checks(app_configs=self.apps.get_app_configs(), databases={"default"})
self.assertEqual(
errors,
Article.check(databases={"default"}),
[
checks.Error(
"VectorSearchIndex requires the same number of similarities "
Expand All @@ -160,8 +151,7 @@ class Article(models.Model):
class Meta:
indexes = [VectorSearchIndex(fields=["vector"], similarities="cosine")]

errors = checks.run_checks(app_configs=self.apps.get_app_configs(), databases={"default"})
self.assertEqual(errors, [])
self.assertEqual(Article.check(databases={"default"}), [])

def test_valid_fields(self):
class Data(EmbeddedModel):
Expand Down Expand Up @@ -193,8 +183,7 @@ class Meta:
)
]

errors = checks.run_checks(app_configs=self.apps.get_app_configs(), databases={"default"})
self.assertEqual(errors, [])
self.assertEqual(SearchIndexTestModel.check(databases={"default"}), [])

def test_requires_vector_field(self):
class NoSearchVectorModel(models.Model):
Expand All @@ -207,9 +196,8 @@ class Meta:
)
]

errors = checks.run_checks(app_configs=self.apps.get_app_configs(), databases={"default"})
self.assertEqual(
errors,
NoSearchVectorModel.check(databases={"default"}),
[
checks.Error(
"VectorSearchIndex requires at least one ArrayField to store vector data.",
Expand Down