Test that custom functions are live-reloaded
Change-Id: Ie9cc0869729f3304b281e1700912f43d7e3ac70d
diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py
index faace9d..48baaef 100644
--- a/tests/test_scheduler.py
+++ b/tests/test_scheduler.py
@@ -2467,6 +2467,36 @@
self.assertEqual(A.data['status'], 'MERGED')
self.assertEqual(A.reported, 2)
+ def test_live_reconfiguration_functions(self):
+ "Test live reconfiguration with a custom function"
+ self.worker.registerFunction('build:node-project-test1:debian')
+ self.worker.registerFunction('build:node-project-test1:wheezy')
+ A = self.fake_gerrit.addFakeChange('org/node-project', 'master', 'A')
+ A.addApproval('CRVW', 2)
+ self.fake_gerrit.addEvent(A.addApproval('APRV', 1))
+ self.waitUntilSettled()
+
+ self.assertIsNone(self.getJobFromHistory('node-project-merge').node)
+ self.assertEqual(self.getJobFromHistory('node-project-test1').node,
+ 'debian')
+ self.assertIsNone(self.getJobFromHistory('node-project-test2').node)
+
+ self.config.set('zuul', 'layout_config',
+ 'tests/fixtures/layout-live-'
+ 'reconfiguration-functions.yaml')
+ self.sched.reconfigure(self.config)
+ self.worker.build_history = []
+
+ B = self.fake_gerrit.addFakeChange('org/node-project', 'master', 'B')
+ B.addApproval('CRVW', 2)
+ self.fake_gerrit.addEvent(B.addApproval('APRV', 1))
+ self.waitUntilSettled()
+
+ self.assertIsNone(self.getJobFromHistory('node-project-merge').node)
+ self.assertEqual(self.getJobFromHistory('node-project-test1').node,
+ 'wheezy')
+ self.assertIsNone(self.getJobFromHistory('node-project-test2').node)
+
def test_delayed_repo_init(self):
self.config.set('zuul', 'layout_config',
'tests/fixtures/layout-delayed-repo-init.yaml')