From 90db90c60be2bfebf9792066d527c37036dce7a0 Mon Sep 17 00:00:00 2001 From: Hans Adema Date: Fri, 26 Oct 2018 13:23:40 +0200 Subject: [PATCH] Release HTTP response before raising status exception --- CHANGES/3364.bugfix | 1 + CONTRIBUTORS.txt | 1 + aiohttp/client_reqrep.py | 1 + tests/test_client_response.py | 1 + 4 files changed, 4 insertions(+) create mode 100644 CHANGES/3364.bugfix diff --git a/CHANGES/3364.bugfix b/CHANGES/3364.bugfix new file mode 100644 index 00000000000..a818e592312 --- /dev/null +++ b/CHANGES/3364.bugfix @@ -0,0 +1 @@ +Release HTTP response before raising status exception diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index e5d63bac572..238327c7fec 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -93,6 +93,7 @@ Gregory Haynes Gus Goulart Gustavo Carneiro Günther Jena +Hans Adema Harmon Y. Hu Bo Hugo Herter diff --git a/aiohttp/client_reqrep.py b/aiohttp/client_reqrep.py index 697b9c649f4..6a7fe810e0f 100644 --- a/aiohttp/client_reqrep.py +++ b/aiohttp/client_reqrep.py @@ -907,6 +907,7 @@ def release(self) -> Any: def raise_for_status(self) -> None: if 400 <= self.status: assert self.reason # always not None for started response + self.release() raise ClientResponseError( self.request_info, self.history, diff --git a/tests/test_client_response.py b/tests/test_client_response.py index 26bb40e87fd..c61998de8b7 100644 --- a/tests/test_client_response.py +++ b/tests/test_client_response.py @@ -665,6 +665,7 @@ def test_raise_for_status_4xx() -> None: response.raise_for_status() assert str(cm.value.status) == '409' assert str(cm.value.message) == "CONFLICT" + assert response.closed def test_resp_host() -> None: