From 5693314a37ff8815c3c6a4bb7b9ebd5ef1abb5b9 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 13 Aug 2011 13:01:44 -0400 Subject: [PATCH] response error handling rework --- requests/models.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/requests/models.py b/requests/models.py index 51954310..b90a2bda 100644 --- a/requests/models.py +++ b/requests/models.py @@ -158,7 +158,7 @@ class Request(object): return opener.open - def _build_response(self, resp): + def _build_response(self, resp, is_error=False): """Build internal :class:`Response ` object from given response.""" def build(resp): @@ -173,6 +173,9 @@ class Request(object): except AttributeError: pass + if is_error: + response.error = resp + response.url = getattr(resp, 'url', None) return response @@ -312,9 +315,8 @@ class Request(object): if isinstance(why.reason, socket.timeout): why = Timeout(why) - self._build_response(why) - if not self.redirect: - self.response.error = why + self._build_response(why, is_error=True) + else: self._build_response(resp)