Пример #1
0
 def test_build_parse_tokens(self):
     query_string = 'item:value OR item:value'
     assert ['item:value', 'OR', 'item:value'] == _get_tokens(query_string)
     query_string = '((item:value OR item:value) AND NOT (item:OR OR item:NOT)) OR true:true'
     assert _get_tokens(query_string) == ['(', '(', 'item:value', 'OR', 'item:value', ')',
                                          'AND NOT', '(', 'item:OR', 'OR', 'item:NOT',
                                          ')', ')', 'OR', 'true:true']
Пример #2
0
 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']]]
Пример #3
0
 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']