Cleanup approval requirement testing
On further inspection, trigger requirements will still be required
for parts of the kind of pipeline construction that we are using in
OpenStack; the idea that they could be completely replaced by
pipeline requirements is incorrect. To that end, un-deprecate
trigger requirements and cleanup the testing of both of them so that
each requirement is tested (relatively) independently. A small
amount of requirement composition is also tested, though all possible
combinations (a lot!) are not.
Move this testing into a new file for organizational purposes.
Also, support multiple vote values (eg, "+1" or "+2") when requiring
an approval.
Change-Id: I683c9a574ced0e27ced59e62b8059fef2dfd8b20
diff --git a/tests/fixtures/layout-pipeline-requirements.yaml b/tests/fixtures/layout-pipeline-requirements.yaml
deleted file mode 100644
index 1826d88..0000000
--- a/tests/fixtures/layout-pipeline-requirements.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-includes:
- - python-file: custom_functions.py
-
-pipelines:
- - name: check
- manager: IndependentPipelineManager
- require:
- approval:
- - email-filter: jenkins@example.com
- older-than: 48h
- open: True
- trigger:
- gerrit:
- - event: patchset-created
- - event: comment-added
- success:
- gerrit:
- verified: 1
- failure:
- gerrit:
- verified: -1
-
- - name: gate
- manager: DependentPipelineManager
- failure-message: Build failed. For information on how to proceed, see http://wiki.example.org/Test_Failures
- require:
- status:
- - NEW
- approval:
- - verified: 1
- username: jenkins
- newer-than: 48h
- trigger:
- gerrit:
- - event: comment-added
- approval:
- - approved: 1
- - event: comment-added
- approval:
- - verified: 1
- success:
- gerrit:
- verified: 2
- submit: true
- failure:
- gerrit:
- verified: -2
- start:
- gerrit:
- verified: 0
- precedence: high
-
-projects:
- - name: org/project
- merge-mode: cherry-pick
- check:
- - project-check
- gate:
- - project-gate
diff --git a/tests/fixtures/layout-require-approval.yaml b/tests/fixtures/layout-require-approval.yaml
deleted file mode 100644
index 18eee99..0000000
--- a/tests/fixtures/layout-require-approval.yaml
+++ /dev/null
@@ -1,58 +0,0 @@
-includes:
- - python-file: custom_functions.py
-
-pipelines:
- - name: check
- manager: IndependentPipelineManager
- trigger:
- gerrit:
- - event: patchset-created
- - event: comment-added
- require-approval:
- - email-filter: jenkins@example.com
- older-than: 48h
- success:
- gerrit:
- verified: 1
- failure:
- gerrit:
- verified: -1
-
- - name: gate
- manager: DependentPipelineManager
- failure-message: Build failed. For information on how to proceed, see http://wiki.example.org/Test_Failures
- trigger:
- gerrit:
- - event: comment-added
- require-approval:
- - verified: 1
- username: jenkins
- newer-than: 48h
- approval:
- - approved: 1
- - event: comment-added
- require-approval:
- - verified: 1
- username: jenkins
- newer-than: 48h
- approval:
- - verified: 1
- success:
- gerrit:
- verified: 2
- submit: true
- failure:
- gerrit:
- verified: -2
- start:
- gerrit:
- verified: 0
- precedence: high
-
-projects:
- - name: org/project
- merge-mode: cherry-pick
- check:
- - project-check
- gate:
- - project-gate
diff --git a/tests/fixtures/layout-current-patchset.yaml b/tests/fixtures/layout-requirement-current-patchset.yaml
similarity index 82%
rename from tests/fixtures/layout-current-patchset.yaml
rename to tests/fixtures/layout-requirement-current-patchset.yaml
index dc8f768..405077e 100644
--- a/tests/fixtures/layout-current-patchset.yaml
+++ b/tests/fixtures/layout-requirement-current-patchset.yaml
@@ -1,6 +1,3 @@
-includes:
- - python-file: custom_functions.py
-
pipelines:
- name: check
manager: IndependentPipelineManager
@@ -19,6 +16,5 @@
projects:
- name: org/project
- merge-mode: cherry-pick
check:
- project-check
diff --git a/tests/fixtures/layout-requirement-email.yaml b/tests/fixtures/layout-requirement-email.yaml
new file mode 100644
index 0000000..6ed7603
--- /dev/null
+++ b/tests/fixtures/layout-requirement-email.yaml
@@ -0,0 +1,37 @@
+pipelines:
+ - name: pipeline
+ manager: IndependentPipelineManager
+ require:
+ approval:
+ - email-filter: jenkins@example.com
+ trigger:
+ gerrit:
+ - event: comment-added
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+ - name: trigger
+ manager: IndependentPipelineManager
+ trigger:
+ gerrit:
+ - event: comment-added
+ require-approval:
+ - email-filter: jenkins@example.com
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+projects:
+ - name: org/project1
+ pipeline:
+ - project1-pipeline
+ - name: org/project2
+ trigger:
+ - project2-trigger
diff --git a/tests/fixtures/layout-requirement-newer-than.yaml b/tests/fixtures/layout-requirement-newer-than.yaml
new file mode 100644
index 0000000..b6beb35
--- /dev/null
+++ b/tests/fixtures/layout-requirement-newer-than.yaml
@@ -0,0 +1,39 @@
+pipelines:
+ - name: pipeline
+ manager: IndependentPipelineManager
+ require:
+ approval:
+ - username: jenkins
+ newer-than: 48h
+ trigger:
+ gerrit:
+ - event: comment-added
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+ - name: trigger
+ manager: IndependentPipelineManager
+ trigger:
+ gerrit:
+ - event: comment-added
+ require-approval:
+ - username: jenkins
+ newer-than: 48h
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+projects:
+ - name: org/project1
+ pipeline:
+ - project1-pipeline
+ - name: org/project2
+ trigger:
+ - project2-trigger
diff --git a/tests/fixtures/layout-requirement-older-than.yaml b/tests/fixtures/layout-requirement-older-than.yaml
new file mode 100644
index 0000000..2edf9df
--- /dev/null
+++ b/tests/fixtures/layout-requirement-older-than.yaml
@@ -0,0 +1,39 @@
+pipelines:
+ - name: pipeline
+ manager: IndependentPipelineManager
+ require:
+ approval:
+ - username: jenkins
+ older-than: 48h
+ trigger:
+ gerrit:
+ - event: comment-added
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+ - name: trigger
+ manager: IndependentPipelineManager
+ trigger:
+ gerrit:
+ - event: comment-added
+ require-approval:
+ - username: jenkins
+ older-than: 48h
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+projects:
+ - name: org/project1
+ pipeline:
+ - project1-pipeline
+ - name: org/project2
+ trigger:
+ - project2-trigger
diff --git a/tests/fixtures/layout-current-patchset.yaml b/tests/fixtures/layout-requirement-open.yaml
similarity index 75%
copy from tests/fixtures/layout-current-patchset.yaml
copy to tests/fixtures/layout-requirement-open.yaml
index dc8f768..e62719d 100644
--- a/tests/fixtures/layout-current-patchset.yaml
+++ b/tests/fixtures/layout-requirement-open.yaml
@@ -1,11 +1,8 @@
-includes:
- - python-file: custom_functions.py
-
pipelines:
- name: check
manager: IndependentPipelineManager
require:
- current-patchset: True
+ open: True
trigger:
gerrit:
- event: patchset-created
@@ -19,6 +16,5 @@
projects:
- name: org/project
- merge-mode: cherry-pick
check:
- project-check
diff --git a/tests/fixtures/layout-current-patchset.yaml b/tests/fixtures/layout-requirement-status.yaml
similarity index 75%
copy from tests/fixtures/layout-current-patchset.yaml
copy to tests/fixtures/layout-requirement-status.yaml
index dc8f768..af33468 100644
--- a/tests/fixtures/layout-current-patchset.yaml
+++ b/tests/fixtures/layout-requirement-status.yaml
@@ -1,11 +1,8 @@
-includes:
- - python-file: custom_functions.py
-
pipelines:
- name: check
manager: IndependentPipelineManager
require:
- current-patchset: True
+ status: NEW
trigger:
gerrit:
- event: patchset-created
@@ -19,6 +16,5 @@
projects:
- name: org/project
- merge-mode: cherry-pick
check:
- project-check
diff --git a/tests/fixtures/layout-requirement-username.yaml b/tests/fixtures/layout-requirement-username.yaml
new file mode 100644
index 0000000..7a549f0
--- /dev/null
+++ b/tests/fixtures/layout-requirement-username.yaml
@@ -0,0 +1,37 @@
+pipelines:
+ - name: pipeline
+ manager: IndependentPipelineManager
+ require:
+ approval:
+ - username: jenkins
+ trigger:
+ gerrit:
+ - event: comment-added
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+ - name: trigger
+ manager: IndependentPipelineManager
+ trigger:
+ gerrit:
+ - event: comment-added
+ require-approval:
+ - username: jenkins
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+projects:
+ - name: org/project1
+ pipeline:
+ - project1-pipeline
+ - name: org/project2
+ trigger:
+ - project2-trigger
diff --git a/tests/fixtures/layout-requirement-vote.yaml b/tests/fixtures/layout-requirement-vote.yaml
new file mode 100644
index 0000000..7ccadff
--- /dev/null
+++ b/tests/fixtures/layout-requirement-vote.yaml
@@ -0,0 +1,39 @@
+pipelines:
+ - name: pipeline
+ manager: IndependentPipelineManager
+ require:
+ approval:
+ - username: jenkins
+ verified: 1
+ trigger:
+ gerrit:
+ - event: comment-added
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+ - name: trigger
+ manager: IndependentPipelineManager
+ trigger:
+ gerrit:
+ - event: comment-added
+ require-approval:
+ - username: jenkins
+ verified: 1
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+projects:
+ - name: org/project1
+ pipeline:
+ - project1-pipeline
+ - name: org/project2
+ trigger:
+ - project2-trigger
diff --git a/tests/fixtures/layout-requirement-vote1.yaml b/tests/fixtures/layout-requirement-vote1.yaml
new file mode 100644
index 0000000..7ccadff
--- /dev/null
+++ b/tests/fixtures/layout-requirement-vote1.yaml
@@ -0,0 +1,39 @@
+pipelines:
+ - name: pipeline
+ manager: IndependentPipelineManager
+ require:
+ approval:
+ - username: jenkins
+ verified: 1
+ trigger:
+ gerrit:
+ - event: comment-added
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+ - name: trigger
+ manager: IndependentPipelineManager
+ trigger:
+ gerrit:
+ - event: comment-added
+ require-approval:
+ - username: jenkins
+ verified: 1
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+projects:
+ - name: org/project1
+ pipeline:
+ - project1-pipeline
+ - name: org/project2
+ trigger:
+ - project2-trigger
diff --git a/tests/fixtures/layout-requirement-vote2.yaml b/tests/fixtures/layout-requirement-vote2.yaml
new file mode 100644
index 0000000..33d84d1
--- /dev/null
+++ b/tests/fixtures/layout-requirement-vote2.yaml
@@ -0,0 +1,39 @@
+pipelines:
+ - name: pipeline
+ manager: IndependentPipelineManager
+ require:
+ approval:
+ - username: jenkins
+ verified: [1, 2]
+ trigger:
+ gerrit:
+ - event: comment-added
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+ - name: trigger
+ manager: IndependentPipelineManager
+ trigger:
+ gerrit:
+ - event: comment-added
+ require-approval:
+ - username: jenkins
+ verified: [1, 2]
+ success:
+ gerrit:
+ verified: 1
+ failure:
+ gerrit:
+ verified: -1
+
+projects:
+ - name: org/project1
+ pipeline:
+ - project1-pipeline
+ - name: org/project2
+ trigger:
+ - project2-trigger