diff --git a/runbot_merge/models/pull_requests.py b/runbot_merge/models/pull_requests.py index ba3cfd0d..b724bc9a 100644 --- a/runbot_merge/models/pull_requests.py +++ b/runbot_merge/models/pull_requests.py @@ -893,7 +893,7 @@ class PullRequests(models.Model): # targets failed = self.browse(()) for pr in self: - required = filter(None, pr.repository.required_statuses.split(',')) + required = filter(None, (pr.repository.required_statuses or '').split(',')) success = True for ci in required: @@ -1477,6 +1477,7 @@ class Stagings(models.Model): (head, repos[repo].required_statuses.split(',')) for repo, head in json.loads(s.heads).items() if not repo.endswith('^') + if repos[repo].required_statuses ] # maps commits to their statuses cmap = { @@ -1488,7 +1489,7 @@ class Stagings(models.Model): st = 'success' for head, reqs in required_statuses: statuses = cmap.get(head) or {} - for v in map(lambda n: state_(statuses, n), filter(None, reqs)): + for v in map(lambda n: state_(statuses, n), reqs): if st == 'failure' or v in ('error', 'failure'): st = 'failure' elif v is None: diff --git a/runbot_merge/tests/test_basic.py b/runbot_merge/tests/test_basic.py index cabd6fe5..9bb18f75 100644 --- a/runbot_merge/tests/test_basic.py +++ b/runbot_merge/tests/test_basic.py @@ -940,7 +940,7 @@ def test_reopen_state(env, repo): def test_no_required_statuses(env, repo, config): """ check that mergebot can work on a repo with no CI at all """ - env['runbot_merge.repository'].search([('name', '=', repo.name)]).required_statuses = '' + env['runbot_merge.repository'].search([('name', '=', repo.name)]).required_statuses = False with repo: m = repo.make_commit(None, 'initial', None, tree={'0': '0'}) repo.make_ref('heads/master', m)