summaryrefslogtreecommitdiff
path: root/tests/postgres_tests/test_search.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/postgres_tests/test_search.py')
-rw-r--r--tests/postgres_tests/test_search.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/postgres_tests/test_search.py b/tests/postgres_tests/test_search.py
index 0e836e896b..b40d672920 100644
--- a/tests/postgres_tests/test_search.py
+++ b/tests/postgres_tests/test_search.py
@@ -10,7 +10,7 @@ from django.db.models import F
from django.test import modify_settings, skipUnlessDBFeature
from . import PostgreSQLSimpleTestCase, PostgreSQLTestCase
-from .models import Character, Line, Scene
+from .models import Character, Line, LineSavedSearch, Scene
try:
from django.contrib.postgres.search import (
@@ -110,6 +110,18 @@ class SimpleSearchTest(GrailTestData, PostgreSQLTestCase):
)
self.assertSequenceEqual(searched, [self.verse2])
+ def test_search_with_F_expression(self):
+ # Non-matching query.
+ LineSavedSearch.objects.create(line=self.verse1, query='hearts')
+ # Matching query.
+ match = LineSavedSearch.objects.create(line=self.verse1, query='elbows')
+ for query_expression in [F('query'), SearchQuery(F('query'))]:
+ with self.subTest(query_expression):
+ searched = LineSavedSearch.objects.filter(
+ line__dialogue__search=query_expression,
+ )
+ self.assertSequenceEqual(searched, [match])
+
@modify_settings(INSTALLED_APPS={'append': 'django.contrib.postgres'})
class SearchVectorFieldTest(GrailTestData, PostgreSQLTestCase):