From 889d7f793ced477932a47d20ecd73f66cd41f11a Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Sat, 11 Apr 2015 15:23:59 -0400 Subject: [PATCH] Fix searching by reviewer account id The "reviewer:" search token supports searching by account number, but that did not work. Correct it. Change-Id: I8318cef43fc71f18cef1837d451f750b73ac4a1d --- gertty/search/__init__.py | 2 +- gertty/search/parser.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gertty/search/__init__.py b/gertty/search/__init__.py index ae5f64c..1a7f125 100644 --- a/gertty/search/__init__.py +++ b/gertty/search/__init__.py @@ -62,7 +62,7 @@ class SearchCompiler(object): if __name__ == '__main__': class Dummy(object): pass - query = 'NOT label:Code-Review<=2 age:5d' + query = 'reviewer:10068' lexer = tokenizer.SearchTokenizer() lexer.input(query) while True: diff --git a/gertty/search/parser.py b/gertty/search/parser.py index 4a70d0e..f931458 100644 --- a/gertty/search/parser.py +++ b/gertty/search/parser.py @@ -125,11 +125,18 @@ def SearchParser(): gertty.db.account_table.c.name == p[2]) def p_reviewer_term(p): - '''reviewer_term : OP_REVIEWER string''' + '''reviewer_term : OP_REVIEWER string + | OP_REVIEWER NUMBER''' filters = [] filters.append(gertty.db.approval_table.c.change_key == gertty.db.change_table.c.key) filters.append(gertty.db.approval_table.c.account_key == gertty.db.account_table.c.key) - if p[2] == 'self': + try: + number = int(p[2]) + except: + number = None + if number is not None: + filters.append(gertty.db.account_table.c.id == number) + elif p[2] == 'self': username = p.parser.username filters.append(gertty.db.account_table.c.username == username) else: