From 337e35913098751afd1f7edddfc40ad7df161cf4 Mon Sep 17 00:00:00 2001 From: Jean-Fred Berthelot Date: Fri, 9 Mar 2018 20:11:38 +0000 Subject: [PATCH] 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) --- cabot/cabotapp/tests/tests_jenkins.py | 43 +++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/cabot/cabotapp/tests/tests_jenkins.py b/cabot/cabotapp/tests/tests_jenkins.py index cdb042b..516c70b 100644 --- a/cabot/cabotapp/tests/tests_jenkins.py +++ b/cabot/cabotapp/tests/tests_jenkins.py @@ -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)