Fix config test interaction with report_times.
In a config test, the scheduler is created without a config object.
Handle that case gracefully in the pipeline constructor.
Add a test that runs the configtest.
Change-Id: Id59b3194aff7b5347fa04fe1cc29b1069d2a3f7f
Reviewed-on: https://review.openstack.org/27585
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py
index 5578099..37526f4 100644
--- a/tests/test_scheduler.py
+++ b/tests/test_scheduler.py
@@ -2071,3 +2071,8 @@
assert B.data['status'] == 'MERGED'
assert B.reported == 2
self.assertEmptyQueues()
+
+ def test_test_config(self):
+ "Test that we can test the config"
+ sched = zuul.scheduler.Scheduler()
+ sched.testConfig(CONFIG.get('zuul', 'layout_config'))
diff --git a/zuul/scheduler.py b/zuul/scheduler.py
index 7abb803..0904f37 100644
--- a/zuul/scheduler.py
+++ b/zuul/scheduler.py
@@ -45,6 +45,7 @@
self._stopped = False
self.launcher = None
self.trigger = None
+ self.config = None
self.trigger_event_queue = Queue.Queue()
self.result_event_queue = Queue.Queue()
@@ -508,7 +509,8 @@
self.success_action = {}
self.failure_action = {}
self.start_action = {}
- if self.sched.config.has_option('zuul', 'report_times'):
+ if self.sched.config and self.sched.config.has_option(
+ 'zuul', 'report_times'):
self.report_times = self.sched.config.getboolean(
'zuul', 'report_times')
else: