From ff00a053478fee06bdfb4206c6d4e079e98640ff Mon Sep 17 00:00:00 2001 From: James Turk Date: Fri, 13 Dec 2019 15:10:33 -0500 Subject: Fixed #31088 -- Added support for websearch searching in SearchQuery. --- tests/postgres_tests/test_search.py | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'tests/postgres_tests/test_search.py') diff --git a/tests/postgres_tests/test_search.py b/tests/postgres_tests/test_search.py index f5111ce8d3..07b1f9e9b4 100644 --- a/tests/postgres_tests/test_search.py +++ b/tests/postgres_tests/test_search.py @@ -202,6 +202,45 @@ class MultipleFieldsTest(GrailTestData, PostgreSQLTestCase): ) self.assertSequenceEqual(searched, [self.french]) + @skipUnlessDBFeature('has_websearch_to_tsquery') + def test_web_search(self): + line_qs = Line.objects.annotate(search=SearchVector('dialogue')) + searched = line_qs.filter( + search=SearchQuery( + '"burned body" "split kneecaps"', + search_type='websearch', + ), + ) + self.assertSequenceEqual(searched, []) + searched = line_qs.filter( + search=SearchQuery( + '"body burned" "kneecaps split" -"nostrils"', + search_type='websearch', + ), + ) + self.assertSequenceEqual(searched, [self.verse1]) + searched = line_qs.filter( + search=SearchQuery( + '"Sir Robin" ("kneecaps" OR "Camelot")', + search_type='websearch', + ), + ) + self.assertSequenceEqual(searched, [self.verse0, self.verse1]) + + @skipUnlessDBFeature('has_websearch_to_tsquery') + def test_web_search_with_config(self): + line_qs = Line.objects.annotate( + search=SearchVector('scene__setting', 'dialogue', config='french'), + ) + searched = line_qs.filter( + search=SearchQuery('cadeau -beau', search_type='websearch', config='french'), + ) + self.assertSequenceEqual(searched, []) + searched = line_qs.filter( + search=SearchQuery('beau cadeau', search_type='websearch', config='french'), + ) + self.assertSequenceEqual(searched, [self.french]) + def test_bad_search_type(self): with self.assertRaisesMessage(ValueError, "Unknown search_type argument 'foo'."): SearchQuery('kneecaps', search_type='foo') -- cgit v1.3