コード例 #1
0
    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()
コード例 #2
0
    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)
コード例 #3
0
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)