From dac050bf403749524e025b1cae697a61dc592217 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sun, 23 Oct 2011 16:36:53 -0400 Subject: [PATCH] New status_code-based errors --- requests/models.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/requests/models.py b/requests/models.py index 1fac1a8..a77e871 100644 --- a/requests/models.py +++ b/requests/models.py @@ -22,7 +22,7 @@ from .packages.poster.encode import multipart_encode from .packages.poster.streaminghttp import register_openers, get_handlers from .utils import (dict_from_cookiejar, get_unicode_from_response, stream_decode_response_unicode, decode_gzip, stream_decode_gzip) from .status_codes import codes -from .exceptions import Timeout, URLRequired, TooManyRedirects +from .exceptions import Timeout, URLRequired, TooManyRedirects, RequestException from .monkeys import Request as _Request from .monkeys import HTTPRedirectHandler @@ -514,6 +514,17 @@ class Response(object): def raise_for_status(self): """Raises stored :class:`HTTPError` or :class:`URLError`, if one occurred.""" + if self.error: raise self.error + if (self.status_code >= 300) and (self.status_code < 400): + raise RequestException('%s Redirection' % self.status_code) + + elif (self.status_code >= 400) and (self.status_code < 500): + raise RequestException('%s Client Error' % self.status_code) + + elif (self.status_code >= 500) and (self.status_code < 600): + raise RequestException('%s Server Error' % self.status_code) + + -- 2.7.4