From 1d6abace7de65a37ce21bb347eb569a197c24917 Mon Sep 17 00:00:00 2001 From: meeb Date: Sun, 28 Jul 2024 16:03:40 +1000 Subject: [PATCH] pass http status code downstream in exceptions, related to #34 --- whoisit/errors.py | 3 ++- whoisit/query.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/whoisit/errors.py b/whoisit/errors.py index 25df4c5..4482a51 100644 --- a/whoisit/errors.py +++ b/whoisit/errors.py @@ -15,8 +15,9 @@ class QueryError(WhoisItError): Raised when there are any issues with queries. """ - def __init__(self, message, response=''): + def __init__(self, message, status_code=0, response=''): super().__init__(message) + self.status_code = status_code self.response = response diff --git a/whoisit/query.py b/whoisit/query.py index 62d618e..a32c41c 100644 --- a/whoisit/query.py +++ b/whoisit/query.py @@ -250,11 +250,14 @@ def _process_response(self, response): if response.status_code in status_code_map: error_class, error_message = status_code_map[response.status_code] error_content = self._decode_content(response) - raise error_class(error_message, response=error_content) + raise error_class(error_message, + status_code=response.status_code, + response=error_content) elif response.status_code != 200: error_content = self._decode_content(response) raise QueryError(f'RDAP {self.method} request to {self.url} returned a ' f'non-200 status code of {response.status_code}', + status_code=response.status_code, response=error_content) try: return response.json()