Re-raise DecodeError
authordaftshady <daftonshady@gmail.com>
Thu, 19 Dec 2013 09:02:56 +0000 (18:02 +0900)
committerdaftshady <daftonshady@gmail.com>
Thu, 19 Dec 2013 09:02:56 +0000 (18:02 +0900)
requests/exceptions.py
requests/models.py

index bc42b5fff0845e1dad255988cd2734da9ca20880..7caf4db2a1c710c25212db1339d0d52e9dadacd5 100644 (file)
@@ -61,3 +61,7 @@ class InvalidURL(RequestException, ValueError):
 
 class ChunkedEncodingError(RequestException):
     """The server declared chunked encoding but sent an invalid chunk."""
+
+
+class ContentDecodingError(RequestException):
+    """Failed to decode response content"""
index e2a03d05ec3c2259e8dc05d30599bc94500055e3..1fdf43ab2c787cb6e3e875cc04bdc2061fb23bcc 100644 (file)
@@ -20,9 +20,10 @@ from .cookies import cookiejar_from_dict, get_cookie_header
 from .packages.urllib3.fields import RequestField
 from .packages.urllib3.filepost import encode_multipart_formdata
 from .packages.urllib3.util import parse_url
+from .packages.urllib3.exceptions import DecodeError
 from .exceptions import (
     HTTPError, RequestException, MissingSchema, InvalidURL,
-    ChunkedEncodingError)
+    ChunkedEncodingError, ContentDecodingError)
 from .utils import (
     guess_filename, get_auth_from_url, requote_uri,
     stream_decode_response_unicode, to_key_val_list, parse_header_links,
@@ -616,6 +617,8 @@ class Response(object):
                         yield chunk
                 except IncompleteRead as e:
                     raise ChunkedEncodingError(e)
+                except DecodeError as e:
+                    raise ContentDecodingError(e)
             except AttributeError:
                 # Standard file-like object.
                 while True: