Passing first two tests...

This commit is contained in:
David Sauve 2009-11-10 20:45:37 -05:00
parent 30bc0d0805
commit 529edc24b4
2 changed files with 10 additions and 16 deletions

View File

@ -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(<alldocuments>)')
def test_build_query_all(self):
self.assertEqual(self.sq.build_query().get_description(), 'Xapian::Query(<alldocuments>)')
def test_build_query_single_word(self):
self.sq.add_filter(SQ(content='hello'))

View File

@ -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)