diff options
author | Zuul <zuul@review.opendev.org> | 2023-01-17 19:16:16 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2023-01-17 19:16:16 +0000 |
commit | 28eefca0de89a9f30d4698b3ad49e6579ee2e6fb (patch) | |
tree | 3aaa1f73a02d224b48330e8486d1e8486a715287 /tests | |
parent | 8e69a631f8eaf680782ab37f3c2da872351a1a2d (diff) | |
parent | 3f3101216e54e8e1ae5cac658ae8910ccc5efcbd (diff) | |
download | zuul-28eefca0de89a9f30d4698b3ad49e6579ee2e6fb.tar.gz |
Merge "Honor independent pipeline requirements for non-live changes"
Diffstat (limited to 'tests')
9 files changed, 103 insertions, 7 deletions
diff --git a/tests/fixtures/config/requirements/trusted-check/git/common-config/playbooks/base.yaml b/tests/fixtures/config/requirements/trusted-check/git/common-config/playbooks/base.yaml new file mode 100644 index 000000000..f679dceae --- /dev/null +++ b/tests/fixtures/config/requirements/trusted-check/git/common-config/playbooks/base.yaml @@ -0,0 +1,2 @@ +- hosts: all + tasks: [] diff --git a/tests/fixtures/config/requirements/trusted-check/git/common-config/zuul.yaml b/tests/fixtures/config/requirements/trusted-check/git/common-config/zuul.yaml new file mode 100644 index 000000000..494cd3cc7 --- /dev/null +++ b/tests/fixtures/config/requirements/trusted-check/git/common-config/zuul.yaml @@ -0,0 +1,41 @@ +- pipeline: + name: trusted-check + manager: independent + allow-other-connections: false + require: + gerrit: + approval: + - Code-Review: 2 + trigger: + gerrit: + - event: patchset-created + success: + gerrit: + Verified: 1 + failure: + gerrit: + Verified: -1 + +- job: + name: base + parent: null + run: playbooks/base.yaml + nodeset: + nodes: + - label: ubuntu-xenial + name: controller + +- job: + name: check-job + +- project: + name: org/project + trusted-check: + jobs: + - check-job + +- project: + name: gh/project + trusted-check: + jobs: + - check-job diff --git a/tests/fixtures/config/requirements/trusted-check/git/gh_project/README b/tests/fixtures/config/requirements/trusted-check/git/gh_project/README new file mode 100644 index 000000000..9daeafb98 --- /dev/null +++ b/tests/fixtures/config/requirements/trusted-check/git/gh_project/README @@ -0,0 +1 @@ +test diff --git a/tests/fixtures/config/requirements/trusted-check/git/org_project/README b/tests/fixtures/config/requirements/trusted-check/git/org_project/README new file mode 100644 index 000000000..9daeafb98 --- /dev/null +++ b/tests/fixtures/config/requirements/trusted-check/git/org_project/README @@ -0,0 +1 @@ +test diff --git a/tests/fixtures/config/requirements/trusted-check/main.yaml b/tests/fixtures/config/requirements/trusted-check/main.yaml new file mode 100644 index 000000000..c8deb36c1 --- /dev/null +++ b/tests/fixtures/config/requirements/trusted-check/main.yaml @@ -0,0 +1,11 @@ +- tenant: + name: tenant-one + source: + gerrit: + config-projects: + - common-config + untrusted-projects: + - org/project + github: + untrusted-projects: + - gh/project diff --git a/tests/fixtures/config/zuultrigger/parent-change-enqueued/git/common-config/zuul.yaml b/tests/fixtures/config/zuultrigger/parent-change-enqueued/git/common-config/zuul.yaml index 3fcc43ce6..975b9713e 100644 --- a/tests/fixtures/config/zuultrigger/parent-change-enqueued/git/common-config/zuul.yaml +++ b/tests/fixtures/config/zuultrigger/parent-change-enqueued/git/common-config/zuul.yaml @@ -4,7 +4,7 @@ require: gerrit: approval: - - Verified: -1 + - email: for-check@example.com trigger: gerrit: - event: patchset-created @@ -24,7 +24,7 @@ require: gerrit: approval: - - Verified: 1 + - email: for-gate@example.com trigger: gerrit: - event: comment-added diff --git a/tests/unit/test_requirements.py b/tests/unit/test_requirements.py index 9a32e4b21..9f3b87187 100644 --- a/tests/unit/test_requirements.py +++ b/tests/unit/test_requirements.py @@ -453,3 +453,40 @@ class TestRequirementsReject(ZuulTestCase): self.fake_gerrit.addEvent(comment) self.waitUntilSettled() self.assertEqual(len(self.history), 3) + + +class TestRequirementsTrustedCheck(ZuulTestCase): + config_file = "zuul-gerrit-github.conf" + tenant_config_file = "config/requirements/trusted-check/main.yaml" + + def test_non_live_requirements(self): + # Test that pipeline requirements are applied to non-live + # changes. + A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') + B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B') + B.setDependsOn(A, 1) + B.addApproval('Code-Review', 2) + + self.fake_gerrit.addEvent(B.getPatchsetCreatedEvent(1)) + self.waitUntilSettled() + self.assertHistory([]) + + self.fake_gerrit.addEvent(A.addApproval('Code-Review', 2)) + self.fake_gerrit.addEvent(B.getPatchsetCreatedEvent(1)) + self.waitUntilSettled() + self.assertHistory([ + dict(name='check-job', result='SUCCESS', changes='1,1 2,1')], + ordered=False) + + def test_other_connections(self): + # Test allow-other-connections: False + A = self.fake_github.openFakePullRequest("gh/project", "master", "A") + B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B') + B.data["commitMessage"] = "{}\n\nDepends-On: {}\n".format( + B.subject, A.url, + ) + B.addApproval('Code-Review', 2) + + self.fake_gerrit.addEvent(B.getPatchsetCreatedEvent(1)) + self.waitUntilSettled() + self.assertHistory([]) diff --git a/tests/unit/test_scheduler.py b/tests/unit/test_scheduler.py index 5c36e6621..3a6544937 100644 --- a/tests/unit/test_scheduler.py +++ b/tests/unit/test_scheduler.py @@ -2807,6 +2807,7 @@ class TestScheduler(ZuulTestCase): B = self.fake_gerrit.addFakeChange('org/project1', 'master', 'B') B.data['commitMessage'] = '%s\n\nDepends-On: %s\n' % ( B.subject, A.data['url']) + A.addApproval('Code-Review', 2) B.addApproval('Code-Review', 2) self.executor_server.hold_jobs_in_build = True diff --git a/tests/unit/test_zuultrigger.py b/tests/unit/test_zuultrigger.py index 25bfd4c30..f649f4723 100644 --- a/tests/unit/test_zuultrigger.py +++ b/tests/unit/test_zuultrigger.py @@ -35,9 +35,10 @@ class TestZuulTriggerParentChangeEnqueued(ZuulTestCase): A.addApproval('Code-Review', 2) B1.addApproval('Code-Review', 2) B2.addApproval('Code-Review', 2) - A.addApproval('Verified', 1) # required by gate - B1.addApproval('Verified', -1) # should go to check - B2.addApproval('Verified', 1) # should go to gate + A.addApproval('Verified', 1, username="for-check") # reqd by check + A.addApproval('Verified', 1, username="for-gate") # reqd by gate + B1.addApproval('Verified', 1, username="for-check") # go to check + B2.addApproval('Verified', 1, username="for-gate") # go to gate B1.addApproval('Approved', 1) B2.addApproval('Approved', 1) B1.setDependsOn(A, 1) @@ -75,9 +76,9 @@ class TestZuulTriggerParentChangeEnqueued(ZuulTestCase): self.scheds.first.sched, "addTriggerEvent", addTriggerEvent ): C = self.fake_gerrit.addFakeChange('org/project', 'master', 'C') - C.addApproval('Verified', -1) + C.addApproval('Verified', 1, username="for-check") D = self.fake_gerrit.addFakeChange('org/project', 'master', 'D') - D.addApproval('Verified', -1) + D.addApproval('Verified', 1, username="for-check") D.setDependsOn(C, 1) self.fake_gerrit.addEvent(C.getPatchsetCreatedEvent(1)) @@ -108,6 +109,7 @@ class TestZuulTriggerParentChangeEnqueuedGithub(ZuulGithubAppTestCase): B1.addReview('derp', 'APPROVED') B2.addReview('derp', 'APPROVED') A.addLabel('for-gate') # required by gate + A.addLabel('for-check') # required by check B1.addLabel('for-check') # should go to check B2.addLabel('for-gate') # should go to gate |