def setUp(self): patcher1 = patch('charlesbot_rundeck.rundeck_job.http_get_request') self.addCleanup(patcher1.stop) self.mock_http_get_request = patcher1.start() from charlesbot_rundeck.rundeck_job import RundeckJob self.rd_job = RundeckJob()
def load_rundeck_jobs(self): """ Read the rd_jobs_raw_list array and load the information about all those jobs into the `rundeck_jobs` list. """ for job in self.rd_jobs_raw_list: rd_job = RundeckJob(friendly_name=job['friendly_name']) job_loaded_successfully = yield from rd_job.retrieve_rundeck_job_info( # NOQA self.rundeck_token, self.rundeck_url, job['project'], job['name'] ) if not job_loaded_successfully: self.log.warning("Could not retrieve job info for: %s" % job['friendly_name']) # NOQA continue self.log.info("Retrieved Rundeck info for job: %s" % job['friendly_name']) # NOQA self.rundeck_jobs.append(rd_job)
class TestRundeckJob(asynctest.TestCase): def setUp(self): patcher1 = patch('charlesbot_rundeck.rundeck_job.http_get_request') self.addCleanup(patcher1.stop) self.mock_http_get_request = patcher1.start() from charlesbot_rundeck.rundeck_job import RundeckJob self.rd_job = RundeckJob() def test_invalid_rundeck_json_response(self): self.mock_http_get_request.side_effect = ["{}"] success = yield from self.rd_job.retrieve_rundeck_job_info( "token", "baseurl", "project name", "job name" ) self.assertFalse(success) def test_empty_rundeck_response(self): self.mock_http_get_request.side_effect = ["[]"] success = yield from self.rd_job.retrieve_rundeck_job_info( "token", "baseurl", "project name", "job name" ) self.assertFalse(success) def test_single_rundeck_response(self): response = [ { "id": "rd1", "name": "rundeckone", } ] self.mock_http_get_request.side_effect = [json.dumps(response)] success = yield from self.rd_job.retrieve_rundeck_job_info( "token", "baseurl", "project name", "job name" ) self.assertTrue(success) self.assertEqual(self.rd_job.id, "rd1") self.assertEqual(self.rd_job.name, "rundeckone") self.assertEqual(self.rd_job.friendly_name, "") def test_multiple_rundeck_responses(self): response = [ { "id": "rd1", "name": "rundeckone", }, { "id": "rd2", "name": "rundecktwo", } ] self.mock_http_get_request.side_effect = [json.dumps(response)] success = yield from self.rd_job.retrieve_rundeck_job_info( "token", "baseurl", "project name", "job name" ) self.assertFalse(success)