Merge "Re-enable requirement vote tests" into feature/zuulv3
This commit is contained in:
commit
11ce5a0338
|
@ -1,10 +1,13 @@
|
||||||
pipelines:
|
|
||||||
- name: pipeline
|
- pipeline:
|
||||||
manager: IndependentPipelineManager
|
name: pipeline
|
||||||
|
manager: independent
|
||||||
require:
|
require:
|
||||||
approval:
|
approval:
|
||||||
- username: jenkins
|
- username: jenkins
|
||||||
verified: 1
|
verified: 1
|
||||||
|
source:
|
||||||
|
gerrit
|
||||||
trigger:
|
trigger:
|
||||||
gerrit:
|
gerrit:
|
||||||
- event: comment-added
|
- event: comment-added
|
||||||
|
@ -15,8 +18,11 @@ pipelines:
|
||||||
gerrit:
|
gerrit:
|
||||||
verified: -1
|
verified: -1
|
||||||
|
|
||||||
- name: trigger
|
- pipeline:
|
||||||
manager: IndependentPipelineManager
|
name: trigger
|
||||||
|
manager: independent
|
||||||
|
source:
|
||||||
|
gerrit
|
||||||
trigger:
|
trigger:
|
||||||
gerrit:
|
gerrit:
|
||||||
- event: comment-added
|
- event: comment-added
|
||||||
|
@ -30,10 +36,20 @@ pipelines:
|
||||||
gerrit:
|
gerrit:
|
||||||
verified: -1
|
verified: -1
|
||||||
|
|
||||||
projects:
|
- job:
|
||||||
- name: org/project1
|
name: project1-job
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: project2-job
|
||||||
|
|
||||||
|
- project:
|
||||||
|
name: org/project1
|
||||||
pipeline:
|
pipeline:
|
||||||
- project1-pipeline
|
jobs:
|
||||||
- name: org/project2
|
- project1-job
|
||||||
|
|
||||||
|
- project:
|
||||||
|
name: org/project2
|
||||||
trigger:
|
trigger:
|
||||||
- project2-trigger
|
jobs:
|
||||||
|
- project2-job
|
|
@ -0,0 +1 @@
|
||||||
|
test
|
|
@ -0,0 +1 @@
|
||||||
|
test
|
|
@ -0,0 +1,6 @@
|
||||||
|
- tenant:
|
||||||
|
name: tenant-one
|
||||||
|
source:
|
||||||
|
gerrit:
|
||||||
|
config-repos:
|
||||||
|
- common-config
|
|
@ -1,10 +1,12 @@
|
||||||
pipelines:
|
- pipeline:
|
||||||
- name: pipeline
|
name: pipeline
|
||||||
manager: IndependentPipelineManager
|
manager: independent
|
||||||
require:
|
require:
|
||||||
approval:
|
approval:
|
||||||
- username: jenkins
|
- username: jenkins
|
||||||
verified: [1, 2]
|
verified: [1, 2]
|
||||||
|
source:
|
||||||
|
gerrit
|
||||||
trigger:
|
trigger:
|
||||||
gerrit:
|
gerrit:
|
||||||
- event: comment-added
|
- event: comment-added
|
||||||
|
@ -15,8 +17,11 @@ pipelines:
|
||||||
gerrit:
|
gerrit:
|
||||||
verified: -1
|
verified: -1
|
||||||
|
|
||||||
- name: trigger
|
- pipeline:
|
||||||
manager: IndependentPipelineManager
|
name: trigger
|
||||||
|
manager: independent
|
||||||
|
source:
|
||||||
|
gerrit
|
||||||
trigger:
|
trigger:
|
||||||
gerrit:
|
gerrit:
|
||||||
- event: comment-added
|
- event: comment-added
|
||||||
|
@ -30,10 +35,20 @@ pipelines:
|
||||||
gerrit:
|
gerrit:
|
||||||
verified: -1
|
verified: -1
|
||||||
|
|
||||||
projects:
|
- job:
|
||||||
- name: org/project1
|
name: project1-job
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: project2-job
|
||||||
|
|
||||||
|
- project:
|
||||||
|
name: org/project1
|
||||||
pipeline:
|
pipeline:
|
||||||
- project1-pipeline
|
jobs:
|
||||||
- name: org/project2
|
- project1-job
|
||||||
|
|
||||||
|
- project:
|
||||||
|
name: org/project2
|
||||||
trigger:
|
trigger:
|
||||||
- project2-trigger
|
jobs:
|
||||||
|
- project2-job
|
|
@ -0,0 +1 @@
|
||||||
|
test
|
|
@ -0,0 +1 @@
|
||||||
|
test
|
|
@ -0,0 +1,6 @@
|
||||||
|
- tenant:
|
||||||
|
name: tenant-one
|
||||||
|
source:
|
||||||
|
gerrit:
|
||||||
|
config-repos:
|
||||||
|
- common-config
|
|
@ -168,90 +168,82 @@ class TestRequirementsEmail(ZuulTestCase):
|
||||||
self.assertEqual(self.history[0].name, job)
|
self.assertEqual(self.history[0].name, job)
|
||||||
|
|
||||||
|
|
||||||
class TestRequirements(ZuulTestCase):
|
class TestRequirementsVote1(ZuulTestCase):
|
||||||
"""Test pipeline and trigger requirements"""
|
"""Requirements with a voting requirement"""
|
||||||
|
|
||||||
tenant_config_file = 'config/requirements/main.yaml'
|
tenant_config_file = 'config/requirements/vote1/main.yaml'
|
||||||
|
|
||||||
@skip("Disabled for early v3 development")
|
|
||||||
def test_pipeline_require_approval_vote1(self):
|
def test_pipeline_require_approval_vote1(self):
|
||||||
"Test pipeline requirement: approval vote with one value"
|
"Test pipeline requirement: approval vote with one value"
|
||||||
return self._test_require_approval_vote1('org/project1',
|
return self._test_require_approval_vote1('org/project1',
|
||||||
'project1-pipeline')
|
'project1-job')
|
||||||
|
|
||||||
@skip("Disabled for early v3 development")
|
|
||||||
def test_trigger_require_approval_vote1(self):
|
def test_trigger_require_approval_vote1(self):
|
||||||
"Test trigger requirement: approval vote with one value"
|
"Test trigger requirement: approval vote with one value"
|
||||||
return self._test_require_approval_vote1('org/project2',
|
return self._test_require_approval_vote1('org/project2',
|
||||||
'project2-trigger')
|
'project2-job')
|
||||||
|
|
||||||
def _test_require_approval_vote1(self, project, job):
|
def _test_require_approval_vote1(self, project, job):
|
||||||
self.updateConfigLayout(
|
|
||||||
'tests/fixtures/layout-requirement-vote1.yaml')
|
|
||||||
self.sched.reconfigure(self.config)
|
|
||||||
self.registerJobs()
|
|
||||||
|
|
||||||
A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
|
A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
|
||||||
# A comment event that we will keep submitting to trigger
|
# 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.fake_gerrit.addEvent(comment)
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
# No approval from Jenkins so should not be enqueued
|
# No approval from Jenkins so should not be enqueued
|
||||||
self.assertEqual(len(self.history), 0)
|
self.assertEqual(len(self.history), 0)
|
||||||
|
|
||||||
# A -1 from jenkins should not cause it to be enqueued
|
# A -1 from jenkins should not cause it to be enqueued
|
||||||
A.addApproval('VRFY', -1, username='jenkins')
|
A.addApproval('verified', -1, username='jenkins')
|
||||||
self.fake_gerrit.addEvent(comment)
|
self.fake_gerrit.addEvent(comment)
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
self.assertEqual(len(self.history), 0)
|
self.assertEqual(len(self.history), 0)
|
||||||
|
|
||||||
# A +1 should allow it to be enqueued
|
# A +1 should allow it to be enqueued
|
||||||
A.addApproval('VRFY', 1, username='jenkins')
|
A.addApproval('verified', 1, username='jenkins')
|
||||||
self.fake_gerrit.addEvent(comment)
|
self.fake_gerrit.addEvent(comment)
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
self.assertEqual(len(self.history), 1)
|
self.assertEqual(len(self.history), 1)
|
||||||
self.assertEqual(self.history[0].name, job)
|
self.assertEqual(self.history[0].name, job)
|
||||||
|
|
||||||
@skip("Disabled for early v3 development")
|
|
||||||
|
class TestRequirementsVote2(ZuulTestCase):
|
||||||
|
"""Requirements with a voting requirement"""
|
||||||
|
|
||||||
|
tenant_config_file = 'config/requirements/vote2/main.yaml'
|
||||||
|
|
||||||
def test_pipeline_require_approval_vote2(self):
|
def test_pipeline_require_approval_vote2(self):
|
||||||
"Test pipeline requirement: approval vote with two values"
|
"Test pipeline requirement: approval vote with two values"
|
||||||
return self._test_require_approval_vote2('org/project1',
|
return self._test_require_approval_vote2('org/project1',
|
||||||
'project1-pipeline')
|
'project1-job')
|
||||||
|
|
||||||
@skip("Disabled for early v3 development")
|
|
||||||
def test_trigger_require_approval_vote2(self):
|
def test_trigger_require_approval_vote2(self):
|
||||||
"Test trigger requirement: approval vote with two values"
|
"Test trigger requirement: approval vote with two values"
|
||||||
return self._test_require_approval_vote2('org/project2',
|
return self._test_require_approval_vote2('org/project2',
|
||||||
'project2-trigger')
|
'project2-job')
|
||||||
|
|
||||||
def _test_require_approval_vote2(self, project, job):
|
def _test_require_approval_vote2(self, project, job):
|
||||||
self.updateConfigLayout(
|
|
||||||
'tests/fixtures/layout-requirement-vote2.yaml')
|
|
||||||
self.sched.reconfigure(self.config)
|
|
||||||
self.registerJobs()
|
|
||||||
|
|
||||||
A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
|
A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
|
||||||
# A comment event that we will keep submitting to trigger
|
# 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.fake_gerrit.addEvent(comment)
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
# No approval from Jenkins so should not be enqueued
|
# No approval from Jenkins so should not be enqueued
|
||||||
self.assertEqual(len(self.history), 0)
|
self.assertEqual(len(self.history), 0)
|
||||||
|
|
||||||
# A -1 from jenkins should not cause it to be enqueued
|
# A -1 from jenkins should not cause it to be enqueued
|
||||||
A.addApproval('VRFY', -1, username='jenkins')
|
A.addApproval('verified', -1, username='jenkins')
|
||||||
self.fake_gerrit.addEvent(comment)
|
self.fake_gerrit.addEvent(comment)
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
self.assertEqual(len(self.history), 0)
|
self.assertEqual(len(self.history), 0)
|
||||||
|
|
||||||
# A -2 from jenkins should not cause it to be enqueued
|
# A -2 from jenkins should not cause it to be enqueued
|
||||||
A.addApproval('VRFY', -2, username='jenkins')
|
A.addApproval('verified', -2, username='jenkins')
|
||||||
self.fake_gerrit.addEvent(comment)
|
self.fake_gerrit.addEvent(comment)
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
self.assertEqual(len(self.history), 0)
|
self.assertEqual(len(self.history), 0)
|
||||||
|
|
||||||
# A +1 from jenkins should allow it to be enqueued
|
# A +1 from jenkins should allow it to be enqueued
|
||||||
A.addApproval('VRFY', 1, username='jenkins')
|
A.addApproval('verified', 1, username='jenkins')
|
||||||
self.fake_gerrit.addEvent(comment)
|
self.fake_gerrit.addEvent(comment)
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
self.assertEqual(len(self.history), 1)
|
self.assertEqual(len(self.history), 1)
|
||||||
|
@ -260,17 +252,23 @@ class TestRequirements(ZuulTestCase):
|
||||||
# A +2 should allow it to be enqueued
|
# A +2 should allow it to be enqueued
|
||||||
B = self.fake_gerrit.addFakeChange(project, 'master', 'B')
|
B = self.fake_gerrit.addFakeChange(project, 'master', 'B')
|
||||||
# A comment event that we will keep submitting to trigger
|
# A comment event that we will keep submitting to trigger
|
||||||
comment = B.addApproval('CRVW', 2, username='nobody')
|
comment = B.addApproval('code-review', 2, username='nobody')
|
||||||
self.fake_gerrit.addEvent(comment)
|
self.fake_gerrit.addEvent(comment)
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
self.assertEqual(len(self.history), 1)
|
self.assertEqual(len(self.history), 1)
|
||||||
|
|
||||||
B.addApproval('VRFY', 2, username='jenkins')
|
B.addApproval('verified', 2, username='jenkins')
|
||||||
self.fake_gerrit.addEvent(comment)
|
self.fake_gerrit.addEvent(comment)
|
||||||
self.waitUntilSettled()
|
self.waitUntilSettled()
|
||||||
self.assertEqual(len(self.history), 2)
|
self.assertEqual(len(self.history), 2)
|
||||||
self.assertEqual(self.history[1].name, job)
|
self.assertEqual(self.history[1].name, job)
|
||||||
|
|
||||||
|
|
||||||
|
class TestRequirements(ZuulTestCase):
|
||||||
|
"""Test pipeline and trigger requirements"""
|
||||||
|
|
||||||
|
tenant_config_file = 'config/requirements/main.yaml'
|
||||||
|
|
||||||
@skip("Disabled for early v3 development")
|
@skip("Disabled for early v3 development")
|
||||||
def test_pipeline_require_current_patchset(self):
|
def test_pipeline_require_current_patchset(self):
|
||||||
"Test pipeline requirement: current-patchset"
|
"Test pipeline requirement: current-patchset"
|
||||||
|
|
Loading…
Reference in New Issue