Merge of maxcountryman
authorKenneth Reitz <me@kennethreitz.com>
Fri, 9 Mar 2012 16:51:03 +0000 (08:51 -0800)
committerKenneth Reitz <me@kennethreitz.com>
Fri, 9 Mar 2012 16:51:03 +0000 (08:51 -0800)
AUTHORS.rst
requests/exceptions.py
requests/models.py

index 0e6e7ef..9cfa7db 100644 (file)
@@ -87,3 +87,4 @@ Patches and Suggestions
 - Brendan Maguire <maguire.brendan@gmail.com>
 - Chris Dary
 - Danver Braganza <danverbraganza@gmail.com>
+- Max Countryman
index 94860a8..d5b2ab1 100644 (file)
@@ -14,6 +14,7 @@ class RequestException(RuntimeError):
 
 class HTTPError(RequestException):
     """An HTTP error occurred."""
+    response = None
 
 class ConnectionError(RequestException):
     """A Connection error occurred."""
index a354eb2..753e83a 100644 (file)
@@ -800,10 +800,17 @@ class Response(object):
             raise self.error
 
         if (self.status_code >= 300) and (self.status_code < 400) and not allow_redirects:
-            raise HTTPError('%s Redirection' % self.status_code)
+            http_error = HTTPError('%s Redirection' % self.status_code)
+            http_error.response = self
+            raise http_error
 
         elif (self.status_code >= 400) and (self.status_code < 500):
-            raise HTTPError('%s Client Error' % self.status_code)
+            http_error = HTTPError('%s Client Error' % self.status_code)
+            http_error.response = self
+            raise http_error
+
 
         elif (self.status_code >= 500) and (self.status_code < 600):
-            raise HTTPError('%s Server Error' % self.status_code)
+            http_error = HTTPError('%s Server Error' % self.status_code)
+            http_error.response = self
+            raise http_error