#4965 fix-draw: Accessing response.content twice removes forgets read error.

This commit is contained in:
Белавин Денис
2019-05-13 17:18:42 +03:00
parent b18f765774
commit d91fe00983
2 changed files with 9 additions and 0 deletions
+1
View File
@@ -189,3 +189,4 @@ Patches and Suggestions
- Darren Dormer (`@ddormer <https://github.com/ddormer>`_)
- Rajiv Mayani (`@mayani <https://github.com/mayani>`_)
- Antti Kaihola (`@akaihola <https://github.com/akaihola>`_)
- Belavin Denis (`@luckydenis <https://github.com/luckydenis>`_)
+8
View File
@@ -640,6 +640,8 @@ class Response(object):
#: is a response.
self.request = None
self.error = None
def __enter__(self):
return self
@@ -750,10 +752,13 @@ class Response(object):
for chunk in self.raw.stream(chunk_size, decode_content=True):
yield chunk
except ProtocolError as e:
self._error = e
raise ChunkedEncodingError(e)
except DecodeError as e:
self._error = e
raise ContentDecodingError(e)
except ReadTimeoutError as e:
self._error = e
raise ConnectionError(e)
else:
# Standard file-like object.
@@ -827,6 +832,9 @@ class Response(object):
else:
self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
if self._error is not None:
raise self._error
self._content_consumed = True
# don't need to release the connection; that's been handled by urllib3
# since we exhausted the data.