summaryrefslogtreecommitdiff
path: root/tests/postgres_tests
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2023-04-05 20:32:46 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-04-06 13:32:47 +0200
commit02a04ab79ae8c9e1aa10a91ee8b73fc5252a58e8 (patch)
treefa5b137b70bb1d815e6ac057e75fe9a698da5a4f /tests/postgres_tests
parent263db8af469f0f3a5bd8ddc4a7dd0154c3d1fbca (diff)
downloaddjango-02a04ab79ae8c9e1aa10a91ee8b73fc5252a58e8.tar.gz
Moved SearchVectorIndexTests.test_search_vector_index to postgres_tests.test_indexes.
Diffstat (limited to 'tests/postgres_tests')
-rw-r--r--tests/postgres_tests/test_indexes.py15
-rw-r--r--tests/postgres_tests/test_search.py21
2 files changed, 15 insertions, 21 deletions
diff --git a/tests/postgres_tests/test_indexes.py b/tests/postgres_tests/test_indexes.py
index 52bfcbeb06..d063ac64a2 100644
--- a/tests/postgres_tests/test_indexes.py
+++ b/tests/postgres_tests/test_indexes.py
@@ -539,6 +539,21 @@ class SchemaTests(PostgreSQLTestCase):
editor.remove_index(Scene, index)
self.assertNotIn(index_name, self.get_constraints(table))
+ def test_search_vector(self):
+ """SearchVector generates IMMUTABLE SQL in order to be indexable."""
+ index_name = "test_search_vector"
+ index = Index(SearchVector("id", "scene", config="english"), name=index_name)
+ # Indexed function must be IMMUTABLE.
+ with connection.schema_editor() as editor:
+ editor.add_index(Scene, index)
+ constraints = self.get_constraints(Scene._meta.db_table)
+ self.assertIn(index_name, constraints)
+ self.assertIs(constraints[index_name]["index"], True)
+
+ with connection.schema_editor() as editor:
+ editor.remove_index(Scene, index)
+ self.assertNotIn(index_name, self.get_constraints(Scene._meta.db_table))
+
def test_hash_index(self):
# Ensure the table is there and doesn't have an index.
self.assertNotIn("field", self.get_constraints(CharFieldModel._meta.db_table))
diff --git a/tests/postgres_tests/test_search.py b/tests/postgres_tests/test_search.py
index 6ec20c0654..fa7d885221 100644
--- a/tests/postgres_tests/test_search.py
+++ b/tests/postgres_tests/test_search.py
@@ -5,7 +5,6 @@ These tests use dialogue from the 1975 film Monty Python and the Holy Grail.
All text copyright Python (Monty) Pictures. Thanks to sacred-texts.com for the
transcript.
"""
-from django.db import connection
from django.db.models import F, Value
from . import PostgreSQLSimpleTestCase, PostgreSQLTestCase
@@ -609,26 +608,6 @@ class TestRankingAndWeights(GrailTestData, PostgreSQLTestCase):
)
-class SearchVectorIndexTests(PostgreSQLTestCase):
- def test_search_vector_index(self):
- """SearchVector generates IMMUTABLE SQL in order to be indexable."""
- # This test should be moved to test_indexes and use a functional
- # index instead once support lands (see #26167).
- query = Line.objects.all().query
- resolved = SearchVector("id", "dialogue", config="english").resolve_expression(
- query
- )
- compiler = query.get_compiler(connection.alias)
- sql, params = resolved.as_sql(compiler, connection)
- # Indexed function must be IMMUTABLE.
- with connection.cursor() as cursor:
- cursor.execute(
- "CREATE INDEX search_vector_index ON %s USING GIN (%s)"
- % (Line._meta.db_table, sql),
- params,
- )
-
-
class SearchQueryTests(PostgreSQLSimpleTestCase):
def test_str(self):
tests = (