def testReadHttpResponse_ClientError(self): conn = mock.Mock(req_params={'uri': 'uri', 'method': 'method'}) conn.request.return_value = (mock.Mock(status=404), b'') with self.assertRaises(gerrit_util.GerritError) as cm: gerrit_util.ReadHttpResponse(conn) self.assertEqual(404, cm.exception.http_status)
def testReadHttpResponse_Expected404(self): conn = mock.Mock() conn.req_params = {'uri': 'uri', 'method': 'method'} conn.request.return_value = (mock.Mock(status=404), b'content\xe2\x9c\x94') content = gerrit_util.ReadHttpResponse(conn, (404, )) self.assertEqual('', content.getvalue())
def testReadHttpResponse_200(self): conn = mock.Mock() conn.req_params = {'uri': 'uri', 'method': 'method'} conn.request.return_value = (mock.Mock(status=200), b'content\xe2\x9c\x94') content = gerrit_util.ReadHttpResponse(conn) self.assertEqual('content✔', content.getvalue()) metrics.collector.add_repeated.assert_called_once_with( 'http_requests', 'http_metrics')
def testReadHttpResponse_ServerErrorAndSuccess(self): conn = mock.Mock(req_params={'uri': 'uri', 'method': 'method'}) conn.request.side_effect = [ (mock.Mock(status=500), b''), (mock.Mock(status=200), b'content\xe2\x9c\x94'), ] self.assertEqual('content✔', gerrit_util.ReadHttpResponse(conn).getvalue()) self.assertEqual(2, len(conn.request.mock_calls)) gerrit_util.time_sleep.assert_called_once_with(10.0)
def readHttpResponse_ServerErrorHelper(self, status): conn = mock.Mock(req_params={'uri': 'uri', 'method': 'method'}) conn.request.return_value = (mock.Mock(status=status), b'') with self.assertRaises(gerrit_util.GerritError) as cm: gerrit_util.ReadHttpResponse(conn) self.assertEqual(status, cm.exception.http_status) self.assertEqual(gerrit_util.TRY_LIMIT, len(conn.request.mock_calls)) last_call = gerrit_util.time_sleep.mock_calls[-1] self.assertLessEqual(last_call, mock.call(422.0))
def testReadHttpResponse_ServerError(self): conn = mock.Mock(req_params={'uri': 'uri', 'method': 'method'}) conn.request.return_value = (mock.Mock(status=500), b'') with self.assertRaises(gerrit_util.GerritError) as cm: gerrit_util.ReadHttpResponse(conn) self.assertEqual(500, cm.exception.http_status) self.assertEqual(gerrit_util.TRY_LIMIT, len(conn.request.mock_calls)) self.assertEqual([mock.call(1.5), mock.call(3)], gerrit_util.time_sleep.mock_calls)
def testReadHttpResponse_AuthenticationIssue(self): for status in (302, 401, 403): response = mock.Mock(status=status) response.get.return_value = None conn = mock.Mock(req_params={'uri': 'uri', 'method': 'method'}) conn.request.return_value = (response, b'') with mock.patch('sys.stdout', StringIO()): with self.assertRaises(gerrit_util.GerritError) as cm: gerrit_util.ReadHttpResponse(conn) self.assertEqual(status, cm.exception.http_status) self.assertIn('Your Gerrit credentials might be misconfigured', sys.stdout.getvalue())