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