diff --git a/tests/fixtures/layout-requirement-email.yaml b/tests/fixtures/config/requirements/email/git/common-config/zuul.yaml similarity index 56% rename from tests/fixtures/layout-requirement-email.yaml rename to tests/fixtures/config/requirements/email/git/common-config/zuul.yaml index 4bfb733f92..09e0cc6ef4 100644 --- a/tests/fixtures/layout-requirement-email.yaml +++ b/tests/fixtures/config/requirements/email/git/common-config/zuul.yaml @@ -1,9 +1,8 @@ -pipelines: - - name: pipeline - manager: IndependentPipelineManager - require: - approval: - - email: jenkins@example.com +- pipeline: + name: pipeline + manager: independent + source: + gerrit trigger: gerrit: - event: comment-added @@ -13,9 +12,15 @@ pipelines: failure: gerrit: verified: -1 + require: + approval: + - email: jenkins@example.com - - name: trigger - manager: IndependentPipelineManager +- pipeline: + name: trigger + manager: independent + source: + gerrit trigger: gerrit: - event: comment-added @@ -28,10 +33,20 @@ pipelines: gerrit: verified: -1 -projects: - - name: org/project1 +- job: + name: project1-job + +- job: + name: project2-job + +- project: + name: org/project1 pipeline: - - project1-pipeline - - name: org/project2 + jobs: + - project1-job + +- project: + name: org/project2 trigger: - - project2-trigger + jobs: + - project2-job diff --git a/tests/fixtures/config/requirements/email/git/org_project1/README b/tests/fixtures/config/requirements/email/git/org_project1/README new file mode 100644 index 0000000000..9daeafb986 --- /dev/null +++ b/tests/fixtures/config/requirements/email/git/org_project1/README @@ -0,0 +1 @@ +test diff --git a/tests/fixtures/config/requirements/email/git/org_project2/README b/tests/fixtures/config/requirements/email/git/org_project2/README new file mode 100644 index 0000000000..9daeafb986 --- /dev/null +++ b/tests/fixtures/config/requirements/email/git/org_project2/README @@ -0,0 +1 @@ +test diff --git a/tests/fixtures/config/requirements/email/main.yaml b/tests/fixtures/config/requirements/email/main.yaml new file mode 100644 index 0000000000..a22ed5c60c --- /dev/null +++ b/tests/fixtures/config/requirements/email/main.yaml @@ -0,0 +1,6 @@ +- tenant: + name: tenant-one + source: + gerrit: + config-repos: + - common-config diff --git a/tests/test_requirements.py b/tests/test_requirements.py index 31ba840f1b..a33353a9d4 100644 --- a/tests/test_requirements.py +++ b/tests/test_requirements.py @@ -136,44 +136,43 @@ class TestRequirementsUserName(ZuulTestCase): self.assertEqual(self.history[0].name, job) -class TestRequirements(ZuulTestCase): - """Test pipeline and trigger requirements""" +class TestRequirementsEmail(ZuulTestCase): + """Requirements with a email requirement""" - tenant_config_file = 'config/requirements/main.yaml' + tenant_config_file = 'config/requirements/email/main.yaml' - @skip("Disabled for early v3 development") def test_pipeline_require_approval_email(self): "Test pipeline requirement: approval email" return self._test_require_approval_email('org/project1', - 'project1-pipeline') + 'project1-job') - @skip("Disabled for early v3 development") def test_trigger_require_approval_email(self): "Test trigger requirement: approval email" return self._test_require_approval_email('org/project2', - 'project2-trigger') + 'project2-job') def _test_require_approval_email(self, project, job): - self.updateConfigLayout( - 'tests/fixtures/layout-requirement-email.yaml') - self.sched.reconfigure(self.config) - self.registerJobs() - A = self.fake_gerrit.addFakeChange(project, 'master', 'A') # A comment event that we will keep submitting to trigger - comment = A.addApproval('CRVW', 2, username='nobody') + comment = A.addApproval('code-review', 2, username='nobody') self.fake_gerrit.addEvent(comment) self.waitUntilSettled() # No approval from Jenkins so should not be enqueued self.assertEqual(len(self.history), 0) # Add an approval from Jenkins - A.addApproval('VRFY', 1, username='jenkins') + A.addApproval('verified', 1, username='jenkins') self.fake_gerrit.addEvent(comment) self.waitUntilSettled() self.assertEqual(len(self.history), 1) self.assertEqual(self.history[0].name, job) + +class TestRequirements(ZuulTestCase): + """Test pipeline and trigger requirements""" + + tenant_config_file = 'config/requirements/main.yaml' + @skip("Disabled for early v3 development") def test_pipeline_require_approval_vote1(self): "Test pipeline requirement: approval vote with one value"