blob: d503451bbb8abc9b15cf5e9752440036cb736e33 [file] [log] [blame]
James E. Blair9c17dbf2014-06-23 14:21:58 -07001#!/usr/bin/env python
2
3# Copyright 2012-2014 Hewlett-Packard Development Company, L.P.
4#
5# Licensed under the Apache License, Version 2.0 (the "License"); you may
6# not use this file except in compliance with the License. You may obtain
7# a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14# License for the specific language governing permissions and limitations
15# under the License.
16
17import logging
18import time
Jamie Lennoxff3e0b92016-11-23 10:38:25 +110019from unittest import skip
James E. Blair9c17dbf2014-06-23 14:21:58 -070020
21from tests.base import ZuulTestCase
22
23logging.basicConfig(level=logging.DEBUG,
24 format='%(asctime)s %(name)-32s '
25 '%(levelname)-8s %(message)s')
26
27
Jamie Lennoxb59a73f2016-11-23 14:27:18 +110028class TestRequirementsApprovalNewerThan(ZuulTestCase):
29 """Requirements with a newer-than comment requirement"""
James E. Blair9c17dbf2014-06-23 14:21:58 -070030
Jamie Lennoxb59a73f2016-11-23 14:27:18 +110031 tenant_config_file = 'config/requirements/newer-than/main.yaml'
32
James E. Blair9c17dbf2014-06-23 14:21:58 -070033 def test_pipeline_require_approval_newer_than(self):
34 "Test pipeline requirement: approval newer than"
35 return self._test_require_approval_newer_than('org/project1',
Jamie Lennoxb59a73f2016-11-23 14:27:18 +110036 'project1-job')
James E. Blair9c17dbf2014-06-23 14:21:58 -070037
38 def test_trigger_require_approval_newer_than(self):
39 "Test trigger requirement: approval newer than"
40 return self._test_require_approval_newer_than('org/project2',
Jamie Lennoxb59a73f2016-11-23 14:27:18 +110041 'project2-job')
James E. Blair9c17dbf2014-06-23 14:21:58 -070042
43 def _test_require_approval_newer_than(self, project, job):
James E. Blair9c17dbf2014-06-23 14:21:58 -070044 A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
45 # A comment event that we will keep submitting to trigger
Jamie Lennoxb59a73f2016-11-23 14:27:18 +110046 comment = A.addApproval('code-review', 2, username='nobody')
James E. Blair9c17dbf2014-06-23 14:21:58 -070047 self.fake_gerrit.addEvent(comment)
48 self.waitUntilSettled()
49 # No +1 from Jenkins so should not be enqueued
50 self.assertEqual(len(self.history), 0)
51
52 # Add a too-old +1, should not be enqueued
Jamie Lennoxb59a73f2016-11-23 14:27:18 +110053 A.addApproval('verified', 1, username='jenkins',
Joshua Hesketh642824b2014-07-01 17:54:59 +100054 granted_on=time.time() - 72 * 60 * 60)
James E. Blair9c17dbf2014-06-23 14:21:58 -070055 self.fake_gerrit.addEvent(comment)
56 self.waitUntilSettled()
57 self.assertEqual(len(self.history), 0)
58
59 # Add a recent +1
Jamie Lennoxb59a73f2016-11-23 14:27:18 +110060 self.fake_gerrit.addEvent(A.addApproval('verified', 1,
61 username='jenkins'))
James E. Blair9c17dbf2014-06-23 14:21:58 -070062 self.fake_gerrit.addEvent(comment)
63 self.waitUntilSettled()
64 self.assertEqual(len(self.history), 1)
65 self.assertEqual(self.history[0].name, job)
66
Jamie Lennoxb59a73f2016-11-23 14:27:18 +110067
Jamie Lennox8faa71e2016-11-23 14:33:52 +110068class TestRequirementsApprovalOlderThan(ZuulTestCase):
69 """Requirements with a older-than comment requirement"""
Jamie Lennoxb59a73f2016-11-23 14:27:18 +110070
Jamie Lennox8faa71e2016-11-23 14:33:52 +110071 tenant_config_file = 'config/requirements/older-than/main.yaml'
Jamie Lennoxb59a73f2016-11-23 14:27:18 +110072
James E. Blair9c17dbf2014-06-23 14:21:58 -070073 def test_pipeline_require_approval_older_than(self):
74 "Test pipeline requirement: approval older than"
75 return self._test_require_approval_older_than('org/project1',
Jamie Lennox8faa71e2016-11-23 14:33:52 +110076 'project1-job')
James E. Blair9c17dbf2014-06-23 14:21:58 -070077
78 def test_trigger_require_approval_older_than(self):
79 "Test trigger requirement: approval older than"
80 return self._test_require_approval_older_than('org/project2',
Jamie Lennox8faa71e2016-11-23 14:33:52 +110081 'project2-job')
James E. Blair9c17dbf2014-06-23 14:21:58 -070082
83 def _test_require_approval_older_than(self, project, job):
James E. Blair9c17dbf2014-06-23 14:21:58 -070084 A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
85 # A comment event that we will keep submitting to trigger
Jamie Lennox8faa71e2016-11-23 14:33:52 +110086 comment = A.addApproval('code-review', 2, username='nobody')
James E. Blair9c17dbf2014-06-23 14:21:58 -070087 self.fake_gerrit.addEvent(comment)
88 self.waitUntilSettled()
89 # No +1 from Jenkins so should not be enqueued
90 self.assertEqual(len(self.history), 0)
91
92 # Add a recent +1 which should not be enqueued
Jamie Lennox8faa71e2016-11-23 14:33:52 +110093 A.addApproval('verified', 1)
James E. Blair9c17dbf2014-06-23 14:21:58 -070094 self.fake_gerrit.addEvent(comment)
95 self.waitUntilSettled()
96 self.assertEqual(len(self.history), 0)
97
98 # Add an old +1 which should be enqueued
Jamie Lennox8faa71e2016-11-23 14:33:52 +110099 A.addApproval('verified', 1, username='jenkins',
Joshua Hesketh642824b2014-07-01 17:54:59 +1000100 granted_on=time.time() - 72 * 60 * 60)
James E. Blair9c17dbf2014-06-23 14:21:58 -0700101 self.fake_gerrit.addEvent(comment)
102 self.waitUntilSettled()
103 self.assertEqual(len(self.history), 1)
104 self.assertEqual(self.history[0].name, job)
105
Jamie Lennox8faa71e2016-11-23 14:33:52 +1100106
107class TestRequirements(ZuulTestCase):
108 """Test pipeline and trigger requirements"""
109
110 tenant_config_file = 'config/requirements/main.yaml'
111
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100112 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700113 def test_pipeline_require_approval_username(self):
114 "Test pipeline requirement: approval username"
115 return self._test_require_approval_username('org/project1',
116 'project1-pipeline')
117
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100118 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700119 def test_trigger_require_approval_username(self):
120 "Test trigger requirement: approval username"
121 return self._test_require_approval_username('org/project2',
122 'project2-trigger')
123
124 def _test_require_approval_username(self, project, job):
James E. Blairf84026c2015-12-08 16:11:46 -0800125 self.updateConfigLayout(
126 'tests/fixtures/layout-requirement-username.yaml')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700127 self.sched.reconfigure(self.config)
128 self.registerJobs()
129
130 A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
131 # A comment event that we will keep submitting to trigger
132 comment = A.addApproval('CRVW', 2, username='nobody')
133 self.fake_gerrit.addEvent(comment)
134 self.waitUntilSettled()
135 # No approval from Jenkins so should not be enqueued
136 self.assertEqual(len(self.history), 0)
137
138 # Add an approval from Jenkins
Joshua Hesketh642824b2014-07-01 17:54:59 +1000139 A.addApproval('VRFY', 1, username='jenkins')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700140 self.fake_gerrit.addEvent(comment)
141 self.waitUntilSettled()
142 self.assertEqual(len(self.history), 1)
143 self.assertEqual(self.history[0].name, job)
144
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100145 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700146 def test_pipeline_require_approval_email(self):
147 "Test pipeline requirement: approval email"
148 return self._test_require_approval_email('org/project1',
149 'project1-pipeline')
150
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100151 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700152 def test_trigger_require_approval_email(self):
153 "Test trigger requirement: approval email"
154 return self._test_require_approval_email('org/project2',
155 'project2-trigger')
156
157 def _test_require_approval_email(self, project, job):
James E. Blairf84026c2015-12-08 16:11:46 -0800158 self.updateConfigLayout(
159 'tests/fixtures/layout-requirement-email.yaml')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700160 self.sched.reconfigure(self.config)
161 self.registerJobs()
162
163 A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
164 # A comment event that we will keep submitting to trigger
165 comment = A.addApproval('CRVW', 2, username='nobody')
166 self.fake_gerrit.addEvent(comment)
167 self.waitUntilSettled()
168 # No approval from Jenkins so should not be enqueued
169 self.assertEqual(len(self.history), 0)
170
171 # Add an approval from Jenkins
Joshua Hesketh642824b2014-07-01 17:54:59 +1000172 A.addApproval('VRFY', 1, username='jenkins')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700173 self.fake_gerrit.addEvent(comment)
174 self.waitUntilSettled()
175 self.assertEqual(len(self.history), 1)
176 self.assertEqual(self.history[0].name, job)
177
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100178 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700179 def test_pipeline_require_approval_vote1(self):
180 "Test pipeline requirement: approval vote with one value"
181 return self._test_require_approval_vote1('org/project1',
182 'project1-pipeline')
183
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100184 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700185 def test_trigger_require_approval_vote1(self):
186 "Test trigger requirement: approval vote with one value"
187 return self._test_require_approval_vote1('org/project2',
188 'project2-trigger')
189
190 def _test_require_approval_vote1(self, project, job):
James E. Blairf84026c2015-12-08 16:11:46 -0800191 self.updateConfigLayout(
192 'tests/fixtures/layout-requirement-vote1.yaml')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700193 self.sched.reconfigure(self.config)
194 self.registerJobs()
195
196 A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
197 # A comment event that we will keep submitting to trigger
198 comment = A.addApproval('CRVW', 2, username='nobody')
199 self.fake_gerrit.addEvent(comment)
200 self.waitUntilSettled()
201 # No approval from Jenkins so should not be enqueued
202 self.assertEqual(len(self.history), 0)
203
204 # A -1 from jenkins should not cause it to be enqueued
Joshua Hesketh642824b2014-07-01 17:54:59 +1000205 A.addApproval('VRFY', -1, username='jenkins')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700206 self.fake_gerrit.addEvent(comment)
207 self.waitUntilSettled()
208 self.assertEqual(len(self.history), 0)
209
210 # A +1 should allow it to be enqueued
Joshua Hesketh642824b2014-07-01 17:54:59 +1000211 A.addApproval('VRFY', 1, username='jenkins')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700212 self.fake_gerrit.addEvent(comment)
213 self.waitUntilSettled()
214 self.assertEqual(len(self.history), 1)
215 self.assertEqual(self.history[0].name, job)
216
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100217 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700218 def test_pipeline_require_approval_vote2(self):
219 "Test pipeline requirement: approval vote with two values"
220 return self._test_require_approval_vote2('org/project1',
221 'project1-pipeline')
222
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100223 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700224 def test_trigger_require_approval_vote2(self):
225 "Test trigger requirement: approval vote with two values"
226 return self._test_require_approval_vote2('org/project2',
227 'project2-trigger')
228
229 def _test_require_approval_vote2(self, project, job):
James E. Blairf84026c2015-12-08 16:11:46 -0800230 self.updateConfigLayout(
231 'tests/fixtures/layout-requirement-vote2.yaml')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700232 self.sched.reconfigure(self.config)
233 self.registerJobs()
234
235 A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
236 # A comment event that we will keep submitting to trigger
237 comment = A.addApproval('CRVW', 2, username='nobody')
238 self.fake_gerrit.addEvent(comment)
239 self.waitUntilSettled()
240 # No approval from Jenkins so should not be enqueued
241 self.assertEqual(len(self.history), 0)
242
243 # A -1 from jenkins should not cause it to be enqueued
Joshua Hesketh642824b2014-07-01 17:54:59 +1000244 A.addApproval('VRFY', -1, username='jenkins')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700245 self.fake_gerrit.addEvent(comment)
246 self.waitUntilSettled()
247 self.assertEqual(len(self.history), 0)
248
249 # A -2 from jenkins should not cause it to be enqueued
Joshua Hesketh642824b2014-07-01 17:54:59 +1000250 A.addApproval('VRFY', -2, username='jenkins')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700251 self.fake_gerrit.addEvent(comment)
252 self.waitUntilSettled()
253 self.assertEqual(len(self.history), 0)
254
Joshua Hesketh642824b2014-07-01 17:54:59 +1000255 # A +1 from jenkins should allow it to be enqueued
256 A.addApproval('VRFY', 1, username='jenkins')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700257 self.fake_gerrit.addEvent(comment)
258 self.waitUntilSettled()
259 self.assertEqual(len(self.history), 1)
260 self.assertEqual(self.history[0].name, job)
261
262 # A +2 should allow it to be enqueued
263 B = self.fake_gerrit.addFakeChange(project, 'master', 'B')
264 # A comment event that we will keep submitting to trigger
265 comment = B.addApproval('CRVW', 2, username='nobody')
266 self.fake_gerrit.addEvent(comment)
267 self.waitUntilSettled()
268 self.assertEqual(len(self.history), 1)
269
Joshua Hesketh642824b2014-07-01 17:54:59 +1000270 B.addApproval('VRFY', 2, username='jenkins')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700271 self.fake_gerrit.addEvent(comment)
272 self.waitUntilSettled()
273 self.assertEqual(len(self.history), 2)
274 self.assertEqual(self.history[1].name, job)
275
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100276 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700277 def test_pipeline_require_current_patchset(self):
278 "Test pipeline requirement: current-patchset"
James E. Blairf84026c2015-12-08 16:11:46 -0800279 self.updateConfigLayout(
280 'tests/fixtures/layout-requirement-current-patchset.yaml')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700281 self.sched.reconfigure(self.config)
282 self.registerJobs()
283 # Create two patchsets and let their tests settle out. Then
284 # comment on first patchset and check that no additional
285 # jobs are run.
286 A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
287 self.fake_gerrit.addEvent(A.addApproval('CRVW', 1))
288 self.waitUntilSettled()
289 A.addPatchset()
290 self.fake_gerrit.addEvent(A.addApproval('CRVW', 1))
291 self.waitUntilSettled()
292
293 self.assertEqual(len(self.history), 2) # one job for each ps
294 self.fake_gerrit.addEvent(A.getChangeCommentEvent(1))
295 self.waitUntilSettled()
296
297 # Assert no new jobs ran after event for old patchset.
298 self.assertEqual(len(self.history), 2)
299
300 # Make sure the same event on a new PS will trigger
301 self.fake_gerrit.addEvent(A.getChangeCommentEvent(2))
302 self.waitUntilSettled()
303 self.assertEqual(len(self.history), 3)
304
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100305 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700306 def test_pipeline_require_open(self):
307 "Test pipeline requirement: open"
James E. Blairf84026c2015-12-08 16:11:46 -0800308 self.updateConfigLayout(
309 'tests/fixtures/layout-requirement-open.yaml')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700310 self.sched.reconfigure(self.config)
311 self.registerJobs()
312
313 A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A',
314 status='MERGED')
315 self.fake_gerrit.addEvent(A.addApproval('CRVW', 2))
316 self.waitUntilSettled()
317 self.assertEqual(len(self.history), 0)
318
319 B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B')
320 self.fake_gerrit.addEvent(B.addApproval('CRVW', 2))
321 self.waitUntilSettled()
322 self.assertEqual(len(self.history), 1)
323
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100324 @skip("Disabled for early v3 development")
James E. Blair9c17dbf2014-06-23 14:21:58 -0700325 def test_pipeline_require_status(self):
326 "Test pipeline requirement: status"
James E. Blairf84026c2015-12-08 16:11:46 -0800327 self.updateConfigLayout(
328 'tests/fixtures/layout-requirement-status.yaml')
James E. Blair9c17dbf2014-06-23 14:21:58 -0700329 self.sched.reconfigure(self.config)
330 self.registerJobs()
331
332 A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A',
333 status='MERGED')
334 self.fake_gerrit.addEvent(A.addApproval('CRVW', 2))
335 self.waitUntilSettled()
336 self.assertEqual(len(self.history), 0)
337
338 B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B')
339 self.fake_gerrit.addEvent(B.addApproval('CRVW', 2))
340 self.waitUntilSettled()
341 self.assertEqual(len(self.history), 1)
Joshua Hesketh66c8e522014-06-26 15:30:08 +1000342
343 def _test_require_reject_username(self, project, job):
344 "Test negative username's match"
345 # Should only trigger if Jenkins hasn't voted.
James E. Blairf84026c2015-12-08 16:11:46 -0800346 self.updateConfigLayout(
Joshua Hesketh66c8e522014-06-26 15:30:08 +1000347 'tests/fixtures/layout-requirement-reject-username.yaml')
348 self.sched.reconfigure(self.config)
349 self.registerJobs()
350
351 # add in a change with no comments
352 A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
353 self.waitUntilSettled()
354 self.assertEqual(len(self.history), 0)
355
356 # add in a comment that will trigger
357 self.fake_gerrit.addEvent(A.addApproval('CRVW', 1,
358 username='reviewer'))
359 self.waitUntilSettled()
360 self.assertEqual(len(self.history), 1)
361 self.assertEqual(self.history[0].name, job)
362
363 # add in a comment from jenkins user which shouldn't trigger
364 self.fake_gerrit.addEvent(A.addApproval('VRFY', 1, username='jenkins'))
365 self.waitUntilSettled()
366 self.assertEqual(len(self.history), 1)
367
368 # Check future reviews also won't trigger as a 'jenkins' user has
369 # commented previously
370 self.fake_gerrit.addEvent(A.addApproval('CRVW', 1,
371 username='reviewer'))
372 self.waitUntilSettled()
373 self.assertEqual(len(self.history), 1)
374
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100375 @skip("Disabled for early v3 development")
Joshua Hesketh66c8e522014-06-26 15:30:08 +1000376 def test_pipeline_reject_username(self):
377 "Test negative pipeline requirement: no comment from jenkins"
378 return self._test_require_reject_username('org/project1',
379 'project1-pipeline')
380
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100381 @skip("Disabled for early v3 development")
Joshua Hesketh66c8e522014-06-26 15:30:08 +1000382 def test_trigger_reject_username(self):
383 "Test negative trigger requirement: no comment from jenkins"
384 return self._test_require_reject_username('org/project2',
385 'project2-trigger')
386
387 def _test_require_reject(self, project, job):
388 "Test no approval matches a reject param"
James E. Blairf84026c2015-12-08 16:11:46 -0800389 self.updateConfigLayout(
Joshua Hesketh66c8e522014-06-26 15:30:08 +1000390 'tests/fixtures/layout-requirement-reject.yaml')
391 self.sched.reconfigure(self.config)
392 self.registerJobs()
393
394 A = self.fake_gerrit.addFakeChange(project, 'master', 'A')
395 self.waitUntilSettled()
396 self.assertEqual(len(self.history), 0)
397
398 # First positive vote should not queue until jenkins has +1'd
399 comment = A.addApproval('VRFY', 1, username='reviewer_a')
400 self.fake_gerrit.addEvent(comment)
401 self.waitUntilSettled()
402 self.assertEqual(len(self.history), 0)
403
404 # Jenkins should put in a +1 which will also queue
405 comment = A.addApproval('VRFY', 1, username='jenkins')
406 self.fake_gerrit.addEvent(comment)
407 self.waitUntilSettled()
408 self.assertEqual(len(self.history), 1)
409 self.assertEqual(self.history[0].name, job)
410
411 # Negative vote should not queue
412 comment = A.addApproval('VRFY', -1, username='reviewer_b')
413 self.fake_gerrit.addEvent(comment)
414 self.waitUntilSettled()
415 self.assertEqual(len(self.history), 1)
416
417 # Future approvals should do nothing
418 comment = A.addApproval('VRFY', 1, username='reviewer_c')
419 self.fake_gerrit.addEvent(comment)
420 self.waitUntilSettled()
421 self.assertEqual(len(self.history), 1)
422
423 # Change/update negative vote should queue
424 comment = A.addApproval('VRFY', 1, username='reviewer_b')
425 self.fake_gerrit.addEvent(comment)
426 self.waitUntilSettled()
427 self.assertEqual(len(self.history), 2)
428 self.assertEqual(self.history[1].name, job)
429
430 # Future approvals should also queue
431 comment = A.addApproval('VRFY', 1, username='reviewer_d')
432 self.fake_gerrit.addEvent(comment)
433 self.waitUntilSettled()
434 self.assertEqual(len(self.history), 3)
435 self.assertEqual(self.history[2].name, job)
436
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100437 @skip("Disabled for early v3 development")
Joshua Hesketh66c8e522014-06-26 15:30:08 +1000438 def test_pipeline_require_reject(self):
439 "Test pipeline requirement: rejections absent"
440 return self._test_require_reject('org/project1', 'project1-pipeline')
441
Jamie Lennoxff3e0b92016-11-23 10:38:25 +1100442 @skip("Disabled for early v3 development")
Joshua Hesketh66c8e522014-06-26 15:30:08 +1000443 def test_trigger_require_reject(self):
444 "Test trigger requirement: rejections absent"
445 return self._test_require_reject('org/project2', 'project2-trigger')