From 64d80c276bd7bf6177cc390a5cea7a7cdc6046a9 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 16 Jan 2024 15:07:25 +0100 Subject: [PATCH] [FIX] *: tests not working with github actual Add intermediate forks to a pair of tests, because github now (?) requires being able to write on a branch to create a PR from it, so the non-collaborator reviewers were not able to create a PR from a branch created by user. --- runbot_merge/tests/test_basic.py | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/runbot_merge/tests/test_basic.py b/runbot_merge/tests/test_basic.py index bbde05e4..03dda69c 100644 --- a/runbot_merge/tests/test_basic.py +++ b/runbot_merge/tests/test_basic.py @@ -2916,16 +2916,15 @@ class TestReviewing(object): def test_self_review_fail(self, env, repo, users, config): """ Normal reviewers can't self-review """ + reviewer = config['role_reviewer']['token'] with repo: - m = repo.make_commit(None, 'initial', None, tree={'m': 'm'}) - m2 = repo.make_commit(m, 'second', None, tree={'m': 'm', 'm2': 'm2'}) - repo.make_ref('heads/master', m2) - - c1 = repo.make_commit(m, 'first', None, tree={'m': 'c1'}) - prx = repo.make_pr(title='title', body='body', target='master', head=c1, token=config['role_reviewer']['token']) + [m, _] = repo.make_commits(None, Commit('initial', tree={'m': 'm'}), Commit('second', tree={'m2': 'm2'}), ref='heads/master') + with repo.fork(token=reviewer) as f: + f.make_commits(m, Commit('first', tree={'m': 'c1'}), ref='heads/change') + prx = repo.make_pr(title='title', body='body', target='master', head=f'{f.owner}:change', token=reviewer) repo.post_status(prx.head, 'success', 'legal/cla') repo.post_status(prx.head, 'success', 'ci/runbot') - prx.post_comment('hansen r+', config['role_reviewer']['token']) + prx.post_comment('hansen r+', reviewer) env.run_crons() assert prx.user == users['reviewer'] @@ -2944,16 +2943,15 @@ class TestReviewing(object): def test_self_review_success(self, env, repo, users, config): """ Some users are allowed to self-review """ + self_reviewer = config['role_self_reviewer']['token'] with repo: - m = repo.make_commit(None, 'initial', None, tree={'m': 'm'}) - m2 = repo.make_commit(m, 'second', None, tree={'m': 'm', 'm2': 'm2'}) - repo.make_ref('heads/master', m2) - - c1 = repo.make_commit(m, 'first', None, tree={'m': 'c1'}) - prx = repo.make_pr(title='title', body='body', target='master', head=c1, token=config['role_self_reviewer']['token']) + [m, _] = repo.make_commits(None, Commit('initial', tree={'m': 'm'}), Commit('second', tree={'m': 'm', 'm2': 'm2'}), ref='heads/master') + with repo.fork(token=self_reviewer) as f: + f.make_commits(m, Commit('first', tree={'m': 'c1'}), ref='heads/change') + prx = repo.make_pr(title='title', body='body', target='master', head=f'{f.owner}:change', token=self_reviewer) repo.post_status(prx.head, 'success', 'legal/cla') repo.post_status(prx.head, 'success', 'ci/runbot') - prx.post_comment('hansen r+', config['role_self_reviewer']['token']) + prx.post_comment('hansen r+', self_reviewer) env.run_crons() assert prx.user == users['self_reviewer']