From 529edc24b45b4286e528ce5b69d27269a3d3816e Mon Sep 17 00:00:00 2001 From: David Sauve Date: Tue, 10 Nov 2009 20:45:37 -0500 Subject: [PATCH] Passing first two tests... --- tests/xapian_tests/tests/xapian_query.py | 4 ++-- xapian_backend.py | 22 ++++++++-------------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/tests/xapian_tests/tests/xapian_query.py b/tests/xapian_tests/tests/xapian_query.py index d89eaa7..b94b7f5 100644 --- a/tests/xapian_tests/tests/xapian_query.py +++ b/tests/xapian_tests/tests/xapian_query.py @@ -49,8 +49,8 @@ class XapianSearchQueryTestCase(TestCase): settings.HAYSTACK_XAPIAN_PATH = self.old_xapian_path super(XapianSearchQueryTestCase, self).tearDown() - # def test_build_query_all(self): - # self.assertEqual(self.sq.build_query().get_description(), 'Xapian::Query()') + def test_build_query_all(self): + self.assertEqual(self.sq.build_query().get_description(), 'Xapian::Query()') def test_build_query_single_word(self): self.sq.add_filter(SQ(content='hello')) diff --git a/xapian_backend.py b/xapian_backend.py index 996b28a..616d6b0 100755 --- a/xapian_backend.py +++ b/xapian_backend.py @@ -933,21 +933,15 @@ class SearchQuery(BaseSearchQuery): super(SearchQuery, self).__init__(backend=backend) self.backend = backend or SearchBackend() - def as_xapian_query(self, parent, query_fragment_callback): - query_list = [] - - for child in parent.children: - if hasattr(child, 'as_query_string'): - query_list.append(self.as_xapian_query(child, query_fragment_callback)) - else: - expression, value = child - field, filter_type = self.query_filter.split_expression(expression) - query_list.append(query_fragment_callback(field, filter_type, value)) - - return xapian.Query(xapian.Query.OP_AND, query_list) - def build_query(self): - query = self.as_xapian_query(self.query_filter, self.build_query_fragment) + if not self.query_filter: + query = xapian.Query('') + else: + for child in self.query_filter.children: + expression, value = child + query = xapian.Query(value) + + return query def build_query_fragment(self, field, filter_type, value): return xapian.Query(value)