summaryrefslogtreecommitdiff
path: root/tests/test_scheduler.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-05-07 21:28:31 +0000
committerGerrit Code Review <review@openstack.org>2015-05-07 21:28:31 +0000
commit13bb14d4fd766b523d50a1ebbc92719fa797cbad (patch)
tree5a15cd10c6cca93ab8897dfaec153be2a74a1668 /tests/test_scheduler.py
parent3dfcefb494c13da48548e6ec13bf400a5504145a (diff)
parent7b78b311b87bb134db0decf8c8608385ad3fdc15 (diff)
downloadzuul-13bb14d4fd766b523d50a1ebbc92719fa797cbad.tar.gz
Merge "Fix timer jobs getting aborted from abandoning a change"
Diffstat (limited to 'tests/test_scheduler.py')
-rwxr-xr-xtests/test_scheduler.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py
index c872b23d9..c35fb58d3 100755
--- a/tests/test_scheduler.py
+++ b/tests/test_scheduler.py
@@ -1710,6 +1710,41 @@ class TestScheduler(ZuulTestCase):
self.assertEqual(A.reported, 0, "Abandoned change should not report")
self.assertEqual(B.reported, 1, "Change should report")
+ def test_abandoned_not_timer(self):
+ "Test that an abandoned change does not cancel timer jobs"
+
+ self.worker.hold_jobs_in_build = True
+
+ # Start timer trigger - also org/project
+ self.config.set('zuul', 'layout_config',
+ 'tests/fixtures/layout-idle.yaml')
+ self.sched.reconfigure(self.config)
+ self.registerJobs()
+ # The pipeline triggers every second, so we should have seen
+ # several by now.
+ time.sleep(5)
+ self.waitUntilSettled()
+ # Stop queuing timer triggered jobs so that the assertions
+ # below don't race against more jobs being queued.
+ self.config.set('zuul', 'layout_config',
+ 'tests/fixtures/layout-no-timer.yaml')
+ self.sched.reconfigure(self.config)
+ self.registerJobs()
+ self.assertEqual(len(self.builds), 2, "Two timer jobs")
+
+ A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A')
+ self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1))
+ self.waitUntilSettled()
+ self.assertEqual(len(self.builds), 3, "One change plus two timer jobs")
+
+ self.fake_gerrit.addEvent(A.getChangeAbandonedEvent())
+ self.waitUntilSettled()
+
+ self.assertEqual(len(self.builds), 2, "Two timer jobs remain")
+
+ self.worker.release()
+ self.waitUntilSettled()
+
def test_zuul_url_return(self):
"Test if ZUUL_URL is returning when zuul_url is set in zuul.conf"
self.assertTrue(self.sched.config.has_option('merger', 'zuul_url'))