blob: 77300158024f46f3484b9c316821873a0b2514fa [file] [log] [blame]
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
from dashboard import buildbucket_job
from dashboard import testing_common
class BuildbucketJobTest(testing_common.TestCase):
def setUp(self):
super(BuildbucketJobTest, self).setUp()
self._args_base = {
'try_job_id': 1,
'bisect_director': 'linux_perf_bisector',
'recipe_tester_name': 'linux_perf_bisect',
'good_revision': '1',
'bad_revision': '2',
'test_command': 'tools/perf/dummy_command',
'metric': 'dummy_metric',
'repeats': '5',
'timeout_minutes': '10',
'bug_id': None,
'gs_bucket': 'dummy_bucket',
'builder_host': None,
'builder_port': None,
}
def testCreateJob(self):
job = buildbucket_job.BisectJob(**self._args_base)
params = job.GetBuildParameters()
assert isinstance(params, dict)
self.assertIn('builder_name', params)
properties = params['properties']
assert isinstance(properties, dict)
bisect_config = properties['bisect_config']
assert isinstance(bisect_config, dict)
self.assertIn('test_type', bisect_config)
self.assertIn('command', bisect_config)
self.assertIn('src', bisect_config['command'])
self.assertIn('metric', bisect_config)
self.assertIn('good_revision', bisect_config)
self.assertIn('bad_revision', bisect_config)
self.assertIn('repeat_count', bisect_config)
self.assertIn('max_time_minutes', bisect_config)
def testMissingRequiredArgs(self):
self._args_base['test_command'] = None
with self.assertRaises(ValueError):
job = buildbucket_job.BisectJob(**self._args_base)
_ = job.GetBuildParameters()
if __name__ == '__main__':
unittest.main()