From eca33d99806cbdbebcaba6887200104a090b4582 Mon Sep 17 00:00:00 2001 From: Prasoon Shukla Date: Fri, 4 Sep 2015 20:21:05 +0530 Subject: [PATCH] Added sanity check for parameter for CaptureBuildDuration. --- master/buildbot/statistics/capture.py | 6 ++++++ master/buildbot/test/unit/test_stats_service.py | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/master/buildbot/statistics/capture.py b/master/buildbot/statistics/capture.py index b6ee9ee2d1e..e71849339fe 100644 --- a/master/buildbot/statistics/capture.py +++ b/master/buildbot/statistics/capture.py @@ -19,6 +19,7 @@ from twisted.internet import defer from twisted.internet import threads +from buildbot import config from buildbot.errors import CaptureCallbackError @@ -266,6 +267,11 @@ class CaptureBuildDuration(CaptureBuildTimes): """ def __init__(self, builder_name, report_in='seconds', callback=None): + if report_in not in ['seconds', 'minutes', 'hours']: + config.error("Error during initialization of class %s." + " `report_in` parameter must be one of 'seconds', 'minutes' or 'hours'" + % (self.__class__.__name__)) + def default_callback(start_time, end_time): divisor = 1 # it's a closure diff --git a/master/buildbot/test/unit/test_stats_service.py b/master/buildbot/test/unit/test_stats_service.py index 0b09765a57f..dd865ccd755 100644 --- a/master/buildbot/test/unit/test_stats_service.py +++ b/master/buildbot/test/unit/test_stats_service.py @@ -361,6 +361,10 @@ def test_build_duration_capturing_hours(self): yield self.build_time_capture_helper('hours') self.assertEqual('duration', self.fake_storage_service.stored_data[0][0].keys()[0]) + def test_build_duration_report_in_error(self): + self.assertRaises(config.ConfigErrors, + lambda: capture.CaptureBuildDuration('builder1', report_in='foobar')) + @defer.inlineCallbacks def test_build_duration_capturing_alt_callback(self): def cb(*args, **kwargs):