def test_build_tree(self): query_string = '(item:value OR item:value) AND ((item:value OR item:value AND complicated:false) OR (item:value OR item:value))' tokens = _get_tokens(query_string) tree = _build_tree(tokens) assert tree == [['item:value', 'OR', 'item:value'], 'AND', [['item:value', 'OR', 'item:value', 'AND', 'complicated:false'], 'OR', ['item:value', 'OR', 'item:value']]]
def test_remove_top_level_brackets_if_needless(self): query_string = '(item:value OR item:value)' tokens = _get_tokens(query_string) tree = _build_tree(tokens) assert tree == ['item:value', 'OR', 'item:value']