def test_format_tree_nodes(self): from invenio_search.enhancers.facet_filter import \ format_facet_tree_nodes grouped_facets = { '+': { 'foo': ['bar', 'baz'] }, '-': { 'bar': ['boo', 'bo'] } } facet_kws = ['foo', 'bar'] tree = format_facet_tree_nodes(EmptyQuery(''), grouped_facets, facet_kws) correct = AndOp( AndOp( EmptyQuery(''), OrOp(KeywordOp(Keyword('foo'), DoubleQuotedValue('bar')), KeywordOp(Keyword('foo'), DoubleQuotedValue('baz'))) ), NotOp(OrOp( KeywordOp(Keyword('bar'), DoubleQuotedValue('boo')), KeywordOp(Keyword('bar'), DoubleQuotedValue('bo'))) ) ) self.assertEqual(correct, tree)
def test_missing_part(self): from invenio_search.enhancers.facet_filter import \ format_facet_tree_nodes grouped_facets = {'-': {'bar': ['boo', 'bo']}} facet_kws = ['bar'] tree = format_facet_tree_nodes(EmptyQuery(''), grouped_facets, facet_kws) correct = AndOp( EmptyQuery(''), NotOp( OrOp(KeywordOp(Keyword('bar'), DoubleQuotedValue('boo')), KeywordOp(Keyword('bar'), DoubleQuotedValue('bo'))))) self.assertEqual(correct, tree)
def test_none(self): from invenio_search.enhancers.facet_filter import \ format_facet_tree_nodes self.assertEqual(format_facet_tree_nodes(None, {}, None), None)