diff --git a/mergebot_test_utils/utils.py b/mergebot_test_utils/utils.py index 4c50afb3..092a1241 100644 --- a/mergebot_test_utils/utils.py +++ b/mergebot_test_utils/utils.py @@ -126,10 +126,12 @@ def pr_page(page, pr): return html.fromstring(page(f'/{pr.repo.name}/pull/{pr.number}')) def to_pr(env, pr): - return env['runbot_merge.pull_requests'].search([ + pr = env['runbot_merge.pull_requests'].search([ ('repository.name', '=', pr.repo.name), ('number', '=', pr.number), ]) + assert len(pr) == 1, f"Expected to find {pr.repo.name}#{pr.number}, got {pr}." + return pr def part_of(label, pr_id, *, separator='\n\n'): """ Adds the "part-of" pseudo-header in the footer. diff --git a/runbot_merge/tests/test_basic.py b/runbot_merge/tests/test_basic.py index f039b606..5bf13012 100644 --- a/runbot_merge/tests/test_basic.py +++ b/runbot_merge/tests/test_basic.py @@ -2733,14 +2733,16 @@ class TestBatching(object): repo.make_ref('heads/master', m) pr1 = self._pr(repo, 'PR1', [{'a': 'AAA'}, {'b': 'BBB'}], user=config['role_user']['token'], reviewer=config['role_reviewer']['token']) - p_1 = to_pr(env, pr1) pr2 = self._pr(repo, 'PR2', [{'a': 'some content', 'c': 'CCC'}, {'d': 'DDD'}], user=config['role_user']['token'], reviewer=config['role_reviewer']['token']) - p_2 = to_pr(env, pr2) env.run_crons() + p_1 = to_pr(env, pr1) + p_2 = to_pr(env, pr2) st = env['runbot_merge.stagings'].search([]) + # both prs should be part of the staging assert st.mapped('batch_ids.prs') == p_1 | p_2 + # add CI failure with repo: repo.post_status('heads/staging.master', 'failure', 'ci/runbot')