diff options
| author | James Turk <dev@jamesturk.net> | 2019-12-13 15:10:33 -0500 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-12-16 14:59:59 +0100 |
| commit | ff00a053478fee06bdfb4206c6d4e079e98640ff (patch) | |
| tree | f9fd5de71875e2b19a3ff69820ead99d4ed97e83 /tests/postgres_tests/test_search.py | |
| parent | 972d93a95ec8b37fab84400417070b7439414967 (diff) | |
Fixed #31088 -- Added support for websearch searching in SearchQuery.
Diffstat (limited to 'tests/postgres_tests/test_search.py')
| -rw-r--r-- | tests/postgres_tests/test_search.py | 39 |
1 files changed, 39 insertions, 0 deletions
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') |
