コード例 #1
0
    def test_get_jobs(self):
        """Test get_jobs API call"""

        # Set up a mock HTTP server
        body = read_file('data/jenkins/jenkins_jobs.json')
        httpretty.register_uri(httpretty.GET, JOBS_URL, body=body, status=200)

        client = JenkinsClient(SERVER_URL)
        response = client.get_jobs(client.base_url)

        self.assertEqual(response, body)
コード例 #2
0
    def test_get_builds(self):
        """Test get_builds API call"""

        # Set up a mock HTTP server
        body = read_file('data/jenkins_job_builds.json')
        httpretty.register_uri(httpretty.GET,
                               JENKINS_JOB_BUILDS_URL_1,
                               body=body, status=200)

        client = JenkinsClient(JENKINS_SERVER_URL)
        response = client.get_builds(JENKINS_JOB_BUILDS_1)

        self.assertEqual(response, body)
コード例 #3
0
    def test_http_retry_requests(self):
        """Test whether failed requests are properly handled"""

        httpretty.register_uri(httpretty.GET, JOBS_URL, body="", status=408)

        client = JenkinsClient(SERVER_URL, sleep_time=0.1)

        before = float(time.time())
        expected = before + (client.sleep_time * JenkinsClient.MAX_RETRIES)

        with self.assertRaises(requests.exceptions.RetryError):
            _ = client.get_jobs(client.base_url)

        after = float(time.time())
        self.assertTrue(expected <= after)
コード例 #4
0
    def test_init(self):
        """Test initialization"""

        target_sleep_time = 0.1

        client = JenkinsClient(SERVER_URL, sleep_time=target_sleep_time)

        self.assertEqual(client.base_url, SERVER_URL)
        self.assertEqual(client.blacklist_jobs, None)
        self.assertEqual(client.sleep_time, target_sleep_time)
        self.assertIsNone(client.auth)

        client = JenkinsClient(SERVER_URL, user=USER, api_token=TOKEN)

        self.assertEqual(client.base_url, SERVER_URL)
        self.assertEqual(client.blacklist_jobs, None)
        self.assertEqual(client.auth, (USER, TOKEN))
コード例 #5
0
    def test_get_jobs_auth_api_token(self):
        """Test get_jobs API call with username and API token"""

        # Set up a mock HTTP server
        body = read_file('data/jenkins/jenkins_jobs.json')
        httpretty.register_uri(httpretty.GET, JOBS_URL, body=body, status=200)

        client = JenkinsClient(SERVER_URL, user=USER, api_token=TOKEN)
        response = client.get_jobs(client.base_url)

        req = httpretty.last_request()
        self.assertEqual(response, body)

        authorization = [
            h for h in req.headers._headers if h[0] == 'Authorization'
        ][0]
        self.assertEqual(req.method, 'GET')
        self.assertIn('Basic', authorization[1])
コード例 #6
0
    def test_connection_error(self):
        """Test that HTTP connection error is correctly handled"""

        # Set up a mock HTTP server
        body = read_file('data/jenkins/jenkins_job_builds.json')
        httpretty.register_uri(httpretty.GET,
                               JENKINS_JOB_BUILDS_URL_1_DEPTH_1,
                               body=body, status=408)

        client = JenkinsClient(JENKINS_SERVER_URL, sleep_time=0.1)

        start = float(time.time())
        expected = start + (sum([i * client.sleep_time for i in range(client.MAX_RETRIES)]))

        with self.assertRaises(requests.exceptions.RequestException):
            _ = client.get_builds(JENKINS_JOB_BUILDS_1)

        end = float(time.time())
        self.assertGreater(end, expected)
コード例 #7
0
    def test_init(self):
        """Test initialization"""

        target_sleep_time = 0.1

        client = JenkinsClient(JENKINS_SERVER_URL, sleep_time=target_sleep_time)

        self.assertEqual(client.base_url, JENKINS_SERVER_URL)
        self.assertEqual(client.blacklist_jobs, None)
        self.assertEqual(client.sleep_time, target_sleep_time)
コード例 #8
0
ファイル: test_jenkins.py プロジェクト: celan/perceval
 def test_init(self):
     """Test initialization"""
     client = JenkinsClient(JENKINS_SERVER_URL)