From 952808a566b724e1d006386eb677c167fc0cd194 Mon Sep 17 00:00:00 2001 From: ytinyui <43673200+ytinyui@users.noreply.github.com> Date: Sun, 25 May 2025 14:14:55 +0800 Subject: [PATCH 1/2] Add response and request attributes to HTTPError --- tls_requests/exceptions.py | 7 ++++++- tls_requests/models/response.py | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/tls_requests/exceptions.py b/tls_requests/exceptions.py index 8402a91..7338301 100644 --- a/tls_requests/exceptions.py +++ b/tls_requests/exceptions.py @@ -21,8 +21,13 @@ class HTTPError(Exception): """HTTP Error""" - def __init__(self, message: str) -> None: + def __init__(self, message: str, **kwargs) -> None: self.message = message + response = kwargs.pop("response", None) + self.response = response + self.request = kwargs.pop("request", None) + if response is not None and not self.request and hasattr(response, "request"): + self.request = self.response.request class ProtocolError(HTTPError): diff --git a/tls_requests/models/response.py b/tls_requests/models/response.py index baf5f67..1adbeef 100644 --- a/tls_requests/models/response.py +++ b/tls_requests/models/response.py @@ -197,7 +197,8 @@ def raise_for_status(self) -> "Response": else StatusCodes.get_reason(self.status_code) ), self.url, - ) + ), + response=self, ) return self From 7fb2f1dbb331fe6b71742a6551b65fe425eb7cce Mon Sep 17 00:00:00 2001 From: ytinyui <43673200+ytinyui@users.noreply.github.com> Date: Tue, 27 May 2025 09:53:56 +0800 Subject: [PATCH 2/2] Add super().__init__() to HTTPError --- tls_requests/exceptions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tls_requests/exceptions.py b/tls_requests/exceptions.py index 7338301..3938d3a 100644 --- a/tls_requests/exceptions.py +++ b/tls_requests/exceptions.py @@ -28,6 +28,7 @@ def __init__(self, message: str, **kwargs) -> None: self.request = kwargs.pop("request", None) if response is not None and not self.request and hasattr(response, "request"): self.request = self.response.request + super().__init__(message, **kwargs) class ProtocolError(HTTPError):