def _process(self, curl, errno=None, reason=None, _pycurl=pycurl):
     info, curl.info = curl.info, None
     self._multi.remove_handle(curl)
     self._free_list.append(curl)
     buffer = info['buffer']
     if errno:
         code = 599
         error = HttpError(code, reason)
         error.errno = errno
         effective_url = None
         buffer.close()
         buffer = None
     else:
         error = None
         code = curl.getinfo(_pycurl.HTTP_CODE)
         effective_url = curl.getinfo(_pycurl.EFFECTIVE_URL)
         buffer.seek(0)
     # try:
     request = info['request']
     request.on_ready(
         self.Response(
             request=request,
             code=code,
             headers=info['headers'],
             buffer=buffer,
             effective_url=effective_url,
             error=error,
         ))
Exemple #2
0
 def _process(self, curl, errno=None, reason=None, _pycurl=pycurl):
     info, curl.info = curl.info, None
     self._multi.remove_handle(curl)
     self._free_list.append(curl)
     buffer = info['buffer']
     if errno:
         code = 599
         error = HttpError(code, reason)
         error.errno = errno
         effective_url = None
         buffer.close()
         buffer = None
     else:
         error = None
         code = curl.getinfo(_pycurl.HTTP_CODE)
         effective_url = curl.getinfo(_pycurl.EFFECTIVE_URL)
         buffer.seek(0)
     try:
         request = info['request']
         request.on_ready(self.Response(
             request=request, code=code, headers=info['headers'],
             buffer=buffer, effective_url=effective_url, error=error,
         ))
     except Exception as exc:
         raise
         self.hub.on_callback_error(request.on_ready, exc)
Exemple #3
0
    def test_with_error(self):
        r = Mock(name='response')
        r.error = HttpError(404, 'NotFound')
        x = AsyncHTTPResponse(r)
        assert x.reason == 'NotFound'

        r.error = None
        assert not x.reason
Exemple #4
0
    def test_with_error(self):
        r = Mock(name='response')
        r.error = HttpError(404, 'NotFound')
        x = AsyncHTTPResponse(r)
        self.assertEqual(x.reason, 'NotFound')

        r.error = None
        self.assertFalse(x.reason)
Exemple #5
0
def mock_response_get(*args, **kwargs):
    class MockResponse:
        def __init__(self, json_data, status_code, error=None):
            self.json_data = json_data
            self.status_code = status_code
            self.error = error

        def json(self):
            return self.json_data

        def raise_for_status(self):
            if self.error:
                raise self.error

    # Test silo URL
    if args[0] == 'http://www.silo.com/':
        return MockResponse({'key': 'value'}, 200)
    # Test logging URL
    elif args[0] == 'http://www.logging.com/health':
        return MockResponse(
            {
                'plugins': [{
                    'type': 'elasticsearch',
                    'buffer_queue_length': 0,
                    'buffer_total_queued_size': 0
                }]
            }, 200)
    elif args[0] == 'http://localhost':
        return MockResponse(
            {
                'plugins': [{
                    'type': 'elasticsearch',
                    'buffer_queue_length': 20,
                    'buffer_total_queued_size': 100000000000
                }]
            }, 200)
    elif args[0] == 'https://scale.io/social-auth/login/geoaxis/?=':
        return MockResponse({}, 200)
    elif args[0] == 'https://unauthorized/social-auth/login/geoaxis/?=':
        return MockResponse({}, 401, HttpError('Unauthorized'))
    elif args[0] == 'https://host-offline/social-auth/login/geoaxis/?=':
        return MockResponse({}, 503, HttpError('Service Unavailable'))

    return MockResponse({}, 404, HttpError('File not found'))
Exemple #6
0
    def __init__(self, request, code, headers=None, buffer=None,
                 effective_url=None, error=None, status=None):
        self.request = request
        self.code = code
        self.headers = headers if headers is not None else Headers()
        self.buffer = buffer
        self.effective_url = effective_url or request.url
        self._body = None

        self.status = status or responses.get(self.code, 'Unknown')
        self.error = error
        if self.error is None and (self.code < 200 or self.code > 299):
            self.error = HttpError(self.code, self.status, self)
Exemple #7
0
 def test_str(self) -> None:
     assert str(HttpError(200, 'msg', Mock(name='response')))