예제 #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_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)
예제 #3
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])