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()