From 12c58384b22144878939ac3238d75f84bbbd93c2 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Fri, 23 Oct 2015 11:40:18 +0100 Subject: [PATCH] Tests for searching with multiple fields --- .../tests/test_elasticsearch_backend.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/wagtail/wagtailsearch/tests/test_elasticsearch_backend.py b/wagtail/wagtailsearch/tests/test_elasticsearch_backend.py index 64ff7cf98..1b1e015f9 100644 --- a/wagtail/wagtailsearch/tests/test_elasticsearch_backend.py +++ b/wagtail/wagtailsearch/tests/test_elasticsearch_backend.py @@ -321,6 +321,22 @@ class TestElasticSearchQuery(TestCase): expected_result = {'filtered': {'filter': {'prefix': {'content_type': 'searchtests_searchtest'}}, 'query': {'match': {'title': {'query': 'Hello', 'operator': 'and'}}}}} self.assertDictEqual(query.get_query(), expected_result) + def test_multiple_fields(self): + # Create a query + query = self.ElasticSearchQuery(models.SearchTest.objects.all(), "Hello", fields=['title', 'content']) + + # Check it + expected_result = {'filtered': {'filter': {'prefix': {'content_type': 'searchtests_searchtest'}}, 'query': {'multi_match': {'fields': ['title', 'content'], 'query': 'Hello'}}}} + self.assertDictEqual(query.get_query(), expected_result) + + def test_multiple_fields_with_and_operator(self): + # Create a query + query = self.ElasticSearchQuery(models.SearchTest.objects.all(), "Hello", fields=['title', 'content'], operator='and') + + # Check it + expected_result = {'filtered': {'filter': {'prefix': {'content_type': 'searchtests_searchtest'}}, 'query': {'multi_match': {'fields': ['title', 'content'], 'query': 'Hello', 'operator': 'and'}}}} + self.assertDictEqual(query.get_query(), expected_result) + def test_exact_lookup(self): # Create a query query = self.ElasticSearchQuery(models.SearchTest.objects.filter(title__exact="Test"), "Hello")