Add unit tests for Jenkins

Add unit tests covering
- when there is no build of the job at all
- when there is no good build (ie, only failing builds)
This commit is contained in:
Jean-Fred Berthelot 2018-03-09 20:11:38 +00:00 committed by Frank Hamand
parent cbb3be5093
commit 337e359130

View File

@ -133,3 +133,46 @@ class TestGetStatus(unittest.TestCase):
'status_code': 404
}
self.assertEqual(status, expected)
@patch("cabot.cabotapp.jenkins._get_jenkins_client")
def test_job_no_build(self, mock_jenkins):
unbuilt_job = {
u'inQueue': False,
u'queueItem': None,
u'lastCompletedBuild': None,
u'lastBuild': None,
u'color': u'notbuilt'
}
self.mock_client.get_job_info.return_value = unbuilt_job
mock_jenkins.return_value = self.mock_client
with self.assertRaises(Exception):
cabot_jenkins.get_job_status(self.mock_config, 'job-unbuilt')
@patch("cabot.cabotapp.jenkins._get_jenkins_client")
def test_job_no_good_build(self, mock_jenkins):
self.mock_client.get_job_info.return_value = {
u'inQueue': False,
u'queueItem': None,
u'lastSuccessfulBuild': None,
u'lastCompletedBuild': {
u'number': 1,
},
u'lastBuild': {
u'number': 1,
},
u'color': u'red'
}
self.mock_client.get_build_info.return_value = {
u'number': 1,
u'result': u'FAILURE'
}
mock_jenkins.return_value = self.mock_client
status = cabot_jenkins.get_job_status(self.mock_config, 'job-no-good-build')
expected = {
'active': True,
'succeeded': False,
'job_number': 1,
'blocked_build_time': None,
'status_code': 200
}
self.assertEqual(status, expected)