Exit with an error if there were exceptions caught

Fixes #2041
This commit is contained in:
Stephan Kulow 2019-05-27 13:35:59 +02:00
parent 606e498554
commit fe38a6127d

View File

@ -165,6 +165,8 @@ class ReviewBot(object):
# give implementations a chance to do something before single requests
self.prepare_review()
return_value = 0
for req in self.requests:
self.logger.info("checking %s"%req.reqid)
self.request = req
@ -180,6 +182,7 @@ class ReviewBot(object):
import traceback
traceback.print_exc()
return_value = 1
if self.review_mode == 'no':
good = None
@ -193,6 +196,8 @@ class ReviewBot(object):
elif self.review_mode != 'accept-onpass':
self._set_review(req, 'declined')
return return_value
@memoize(session=True)
def request_override_check_users(self, project):
"""Determine users allowed to override review in a comment command."""
@ -806,7 +811,7 @@ class CommandLineInterface(cmdln.Cmdln):
${cmd_option_list}
"""
self.checker.set_request_ids(args)
self.checker.check_requests()
return self.checker.check_requests()
@cmdln.option('-n', '--interval', metavar="minutes", type="int", help="periodic interval in minutes")
def do_review(self, subcmd, opts, *args):
@ -820,9 +825,9 @@ class CommandLineInterface(cmdln.Cmdln):
def work():
self.checker.set_request_ids_search_review()
self.checker.check_requests()
return self.checker.check_requests()
self.runner(work, opts.interval)
return self.runner(work, opts.interval)
@cmdln.option('-n', '--interval', metavar="minutes", type="int", help="periodic interval in minutes")
def do_project(self, subcmd, opts, project, typename):
@ -834,9 +839,9 @@ class CommandLineInterface(cmdln.Cmdln):
def work():
self.checker.set_request_ids_project(project, typename)
self.checker.check_requests()
return self.checker.check_requests()
self.runner(work, opts.interval)
return self.runner(work, opts.interval)
def runner(self, workfunc, interval):
""" runs the specified callback every <interval> minutes or
@ -846,7 +851,10 @@ class CommandLineInterface(cmdln.Cmdln):
"""raised on timeout"""
if not interval:
return workfunc()
print('WORK')
r = workfunc()
print('WORK', r)
return r
def alarm_called(nr, frame):
raise ExTimeout()