return self._element_tree
def get_build_triggerurl(self):
- if not self.get_params_list():
+ if not self.has_params():
return "%s/build" % self.baseurl
return "%s/buildWithParameters" % self.baseurl
"""
Gets the list of parameter names for this job.
"""
- params = []
- for param in self.get_params():
- params.append(param['name'])
- return params
+ return [param['name'] for param in self.get_params()]
+
+ def has_params(self):
+ return len(self._data['actions']) > 0
def has_queued_build(self, build_params):
"""Returns True if a build with build_params is currently queued."""
self.jenkins.create_job(job_name, EMPTY_JOB)
self.assertJobIsPresent(job_name)
+ def test_create_job_through_jobs_dict(self):
+ job_name = 'create_%s' % random_string()
+ self.jenkins.jobs[job_name] = EMPTY_JOB
+ self.assertJobIsPresent(job_name)
+
def test_enable_disable_job(self):
job_name = 'create_%s' % random_string()
self.jenkins.create_job(job_name, EMPTY_JOB)
class TestJob(unittest.TestCase):
JOB_DATA = {
- "actions": [],
+ "actions": [{
+ "parameterDefinitions": [
+ {
+ "defaultParameterValue": {
+ "name": "param1",
+ "value": "test1"
+ },
+ "description": "",
+ "name": "param1",
+ "type": "StringParameterDefinition"
+ },
+ {
+ "defaultParameterValue": {
+ "name": "param2",
+ "value": ""
+ },
+ "description": "",
+ "name": "param2",
+ "type": "StringParameterDefinition"
+ }
+ ]
+ }],
"description": "test job",
"displayName": "foo",
"displayNameOrNull": None,
def test_get_build_triggerurl(self):
self.assertEquals(
- self.j.get_build_triggerurl(), 'http://halob:8080/job/foo/build')
+ self.j.get_build_triggerurl(), 'http://halob:8080/job/foo/buildWithParameters')
def test_wrong__mk_json_from_build_parameters(self):
with self.assertRaises(AssertionError) as ar:
j._add_missing_builds(data)
self.assertEquals(get_data.call_count, initial_call_count)
+ @mock.patch.object(JenkinsBase, 'get_data')
+ def test_get_params(self, get_data):
+ url = 'http://halob:8080/job/foo/%s' % config.JENKINS_API
+ get_data.return_value = TestJob.URL_DATA[url].copy()
+ j = Job('http://halob:8080/job/foo/', 'foo', self.J)
+ params = list(j.get_params())
+ self.assertEquals(len(params), 2)
+
+ @mock.patch.object(JenkinsBase, 'get_data')
+ def test_get_params_list(self, get_data):
+ url = 'http://halob:8080/job/foo/%s' % config.JENKINS_API
+ get_data.return_value = TestJob.URL_DATA[url].copy()
+ j = Job('http://halob:8080/job/foo/', 'foo', self.J)
+
+ params = j.get_params_list()
+
+ self.assertIsInstance(params, list)
+ self.assertEquals(len(params), 2)
+ self.assertEquals(params, ['param1', 'param2'])
+
if __name__ == '__main__':
unittest.main()