diff --git a/check_source_in_factory.py b/check_source_in_factory.py index 002dff0f..b7f1c45e 100755 --- a/check_source_in_factory.py +++ b/check_source_in_factory.py @@ -148,7 +148,17 @@ class FactorySourceChecker(ReviewBot.ReviewBot): return True elif req.state.name == 'review': self.logger.info("request still in review") - return None + if not req.reviews: + self.logger.error("request in state review but no reviews?") + return False + for r in req.reviews: + if r.by_project and r.state == 'new' and r.by_project.startswith('openSUSE:Factory:Staging:'): + self.logger.info("%s review by %s ok", r.state, r.by_project) + continue + if r.state != 'accepted': + self.logger.debug("review %s/%s/%s in state %s", r.by_user, r.by_group, r.by_package, r.state) + return None + return True else: self.logger.error("request in state %s not expected"%req.state.name) return None diff --git a/tests/factory_source_tests.py b/tests/factory_source_tests.py index d6ed8330..0ba25d75 100644 --- a/tests/factory_source_tests.py +++ b/tests/factory_source_tests.py @@ -124,6 +124,9 @@ class TestFactorySourceAccept(unittest.TestCase): ... + + + ... @@ -150,6 +153,8 @@ class TestFactorySourceAccept(unittest.TestCase): u = urlparse.urlparse(uri) if u.query == 'newstate=accepted&cmd=changereviewstate&by_user=factory-source': result['status'] = True + else: + result['status'] = 'ERROR' return (200, headers, '') httpretty.register_uri(httpretty.POST,