def test_key_remapping(self): class RemapVisitor(SearchVisitor): key_mappings = { 'target_value': ['someValue', 'legacy-value'], } tree = event_search_grammar.parse( 'someValue:123 legacy-value:456 normal_value:hello') assert RemapVisitor().visit(tree) == [ SearchFilter( key=SearchKey(name='target_value'), operator='=', value=SearchValue('123'), ), SearchFilter( key=SearchKey(name='target_value'), operator='=', value=SearchValue('456'), ), SearchFilter( key=SearchKey(name='normal_value'), operator='=', value=SearchValue('hello'), ), ]
def parse_search_query(query): try: tree = event_search_grammar.parse(query) except IncompleteParseError as e: raise InvalidSearchQuery("%s %s" % ( "Parse error: %r (column %d)." % (e.expr.name, e.column()), "This is commonly caused by unmatched-parentheses. Enclose any text in double quotes.", )) return IssueSearchVisitor(allow_boolean=False).visit(tree)
def test_key_remapping(self): class RemapVisitor(SearchVisitor): key_mappings = {"target_value": ["someValue", "legacy-value"]} tree = event_search_grammar.parse("someValue:123 legacy-value:456 normal_value:hello") assert RemapVisitor().visit(tree) == [ SearchFilter( key=SearchKey(name="target_value"), operator="=", value=SearchValue("123") ), SearchFilter( key=SearchKey(name="target_value"), operator="=", value=SearchValue("456") ), SearchFilter( key=SearchKey(name="normal_value"), operator="=", value=SearchValue("hello") ), ]
def test_key_remapping(self): class RemapVisitor(SearchVisitor): key_mappings = { 'target_value': ['someValue', 'legacy-value'], } tree = event_search_grammar.parse('someValue:123 legacy-value:456 normal_value:hello') assert RemapVisitor().visit(tree) == [ SearchFilter( key=SearchKey(name='target_value'), operator='=', value=SearchValue('123'), ), SearchFilter( key=SearchKey(name='target_value'), operator='=', value=SearchValue('456'), ), SearchFilter( key=SearchKey(name='normal_value'), operator='=', value=SearchValue('hello'), ), ]
def parse_search_query(query): tree = event_search_grammar.parse(query) return IssueSearchVisitor().visit(tree)