From: Tom Christie Date: Tue, 31 Aug 2021 10:52:52 +0000 (+0100) Subject: Fix iter_bytes with empty content (#1827) X-Git-Tag: 1.0.0.beta0~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=10b60d47c71e352f06c418f31095f381ea36c6b8;p=thirdparty%2Fhttpx.git Fix iter_bytes with empty content (#1827) --- diff --git a/httpx/_models.py b/httpx/_models.py index c86d37d9..f8dd7731 100644 --- a/httpx/_models.py +++ b/httpx/_models.py @@ -1488,7 +1488,7 @@ class Response: """ if hasattr(self, "_content"): chunk_size = len(self._content) if chunk_size is None else chunk_size - for i in range(0, len(self._content), chunk_size): + for i in range(0, len(self._content), max(chunk_size, 1)): yield self._content[i : i + chunk_size] else: decoder = self._get_content_decoder() @@ -1586,7 +1586,7 @@ class Response: """ if hasattr(self, "_content"): chunk_size = len(self._content) if chunk_size is None else chunk_size - for i in range(0, len(self._content), chunk_size): + for i in range(0, len(self._content), max(chunk_size, 1)): yield self._content[i : i + chunk_size] else: decoder = self._get_content_decoder() diff --git a/tests/models/test_responses.py b/tests/models/test_responses.py index adcf2f65..6af06c3c 100644 --- a/tests/models/test_responses.py +++ b/tests/models/test_responses.py @@ -486,6 +486,12 @@ def test_iter_bytes_with_chunk_size(): assert parts == [b"Hello, world!"] +def test_iter_bytes_with_empty_response(): + response = httpx.Response(200, content=b"") + parts = [part for part in response.iter_bytes()] + assert parts == [] + + @pytest.mark.asyncio async def test_aiter_bytes(): response = httpx.Response(