diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d3a2770..8c1cea41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,11 @@ ## 1.25.0 [unreleased] +### Bug Fixes +1. [#375](https://github.com/influxdata/influxdb-client-python/pull/375): Construct `InfluxDBError` without HTTP response + ### CI -1. [#54](https://github.com/influxdata/influxdb-client-python/pull/370): Add Python 3.10 to CI builds +1. [#370](https://github.com/influxdata/influxdb-client-python/pull/370): Add Python 3.10 to CI builds + ## 1.24.0 [2021-11-26] ### Features diff --git a/influxdb_client/client/exceptions.py b/influxdb_client/client/exceptions.py index 5a1b3c1d..5d77b541 100644 --- a/influxdb_client/client/exceptions.py +++ b/influxdb_client/client/exceptions.py @@ -12,9 +12,14 @@ class InfluxDBError(Exception): def __init__(self, response: HTTPResponse): """Initialize the InfluxDBError handler.""" - self.response = response - self.message = self._get_message(response) - self.retry_after = response.getheader('Retry-After') + if response is not None: + self.response = response + self.message = self._get_message(response) + self.retry_after = response.getheader('Retry-After') + else: + self.response = None + self.message = 'no response' + self.retry_after = None super().__init__(self.message) def _get_message(self, response): diff --git a/tests/test_InfluxDBError.py b/tests/test_InfluxDBError.py index b864c3d0..4eb68353 100644 --- a/tests/test_InfluxDBError.py +++ b/tests/test_InfluxDBError.py @@ -46,3 +46,9 @@ def test_message_get_retry_after(self): influx_db_error = InfluxDBError(response=HTTPResponse(reason="too many requests")) self.assertEqual("too many requests", str(influx_db_error)) self.assertEqual(None, influx_db_error.retry_after) + + def test_no_response(self): + influx_db_error = InfluxDBError(response=None) + self.assertEqual("no response", str(influx_db_error)) + self.assertIsNone(influx_db_error.response) + self.assertIsNone(influx_db_error.retry_after)