- Johnny Goodnow <j.goodnow29@gmail.com>
- Denis Ryzhkov <denisr@denisr.com>
- Wilfred Hughes <me@wilfred.me.uk> @dontYetKnow
+- Dmitry Medvinsky <me@dmedvinsky.name>
class HTTPError(RequestException):
"""An HTTP error occurred."""
- response = None
+
+ def __init__(self, *args, **kwargs):
+ """ Initializes HTTPError with optional `response` object. """
+ self.response = kwargs.pop('response', None)
+ super(HTTPError, self).__init__(*args, **kwargs)
class ConnectionError(RequestException):
http_error_msg = '%s Server Error: %s' % (self.status_code, self.reason)
if http_error_msg:
- http_error = HTTPError(http_error_msg)
- http_error.response = self
- raise http_error
+ raise HTTPError(http_error_msg, response=self)
def close(self):
return self.raw.release_conn()
# undo monkey patch
HTTPConnectionPool.urlopen = old_urlopen
-
+
+ def test_http_error(self):
+ error = requests.exceptions.HTTPError()
+ self.assertEqual(error.response, None)
+ response = requests.Response()
+ error = requests.exceptions.HTTPError(response=response)
+ self.assertEqual(error.response, response)
+ error = requests.exceptions.HTTPError('message', response=response)
+ self.assertEqual(str(error), 'message')
+ self.assertEqual(error.response, response)
+
if __name__ == '__main__':
unittest.main()