def test_job_no_build(self, mock_jenkins): unbuilt_job = { u'inQueue': False, u'queueItem': None, u'lastSuccessfulBuild': 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')
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, 'consecutive_failures': 1, 'status_code': 200 } self.assertEqual(status, expected)
def test_job_passing(self, mock_jenkins): mock_jenkins.return_value = self.mock_client status = cabot_jenkins.get_job_status(self.mock_config, 'foo') expected = { 'active': True, 'succeeded': True, 'job_number': 12, 'blocked_build_time': None, 'status_code': 200 } self.assertEqual(status, expected)
def test_job_unknown(self, mock_jenkins): self.mock_client.get_job_info.side_effect = jenkins.NotFoundException() mock_jenkins.return_value = self.mock_client status = cabot_jenkins.get_job_status(self.mock_config, 'unknown-job') expected = { 'active': None, 'succeeded': None, 'job_number': None, 'blocked_build_time': None, 'status_code': 404 } self.assertEqual(status, expected)
def test_job_failing(self, mock_jenkins): mock_jenkins.return_value = self.mock_client self.mock_build.is_good.return_value = False self.mock_job.is_queued.return_value = False status = jenkins.get_job_status(self.mock_config, 'foo') expected = { 'active': True, 'succeeded': False, 'job_number': 12, 'blocked_build_time': None, 'status_code': 200 } self.assertEqual(status, expected)
def test_job_failing(self, mock_jenkins): mock_jenkins.return_value = self.mock_client self.build[u'result'] = u'FAILURE' self.job[u'lastSuccessfulBuild'] = { u'number': 11, u'result': u'SUCCESS' } status = cabot_jenkins.get_job_status(self.mock_config, 'foo') expected = { 'active': True, 'succeeded': False, 'job_number': 12, 'blocked_build_time': None, 'consecutive_failures': 1, 'status_code': 200 } self.assertEqual(status, expected)
def test_job_queued(self, mock_jenkins): mock_jenkins.return_value = self.mock_client self.mock_build.is_good.return_value = True self.mock_job.is_queued.return_value = True self.mock_job._data = { 'queueItem': { 'inQueueSince': float(timezone.now().strftime('%s')) * 1000 } } with freeze_time(timezone.now() + timedelta(minutes=10)): status = jenkins.get_job_status(self.mock_config, 'foo') expected = { 'active': True, 'succeeded': True, 'job_number': 12, 'blocked_build_time': 600, 'status_code': 200 } self.assertEqual(status, expected)
def test_job_queued_last_failed(self, mock_jenkins): mock_jenkins.return_value = self.mock_client self.job[u'lastBuild'] = {u'number': 13} self.job[u'inQueue'] = True self.job['queueItem'] = { 'inQueueSince': float(timezone.now().strftime('%s')) * 1000 } self.build[u'result'] = u'FAILURE' with freeze_time(timezone.now() + timedelta(minutes=10)): status = cabot_jenkins.get_job_status(self.mock_config, 'foo') expected = { 'active': True, 'succeeded': False, 'job_number': 12, 'queued_job_number': 13, 'blocked_build_time': 600, 'status_code': 200 } self.assertEqual(status, expected)