Skip to content

Commit 9947869

Browse files
committed
Improve JSON decoding error logging
1 parent 650b25d commit 9947869

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

reportportal_client/core/rp_responses.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import logging
2222
from json import JSONDecodeError
23-
from typing import Any, Optional, Generator, Mapping, Tuple
23+
from typing import Any, Optional, Generator, Mapping, Tuple, Union
2424

2525
from aiohttp import ClientResponse
2626
from requests import Response
@@ -41,6 +41,12 @@ def _iter_json_messages(json: Any) -> Generator[str, None, None]:
4141
yield message
4242

4343

44+
def _get_json_decode_error_message(response: Union[Response, ClientResponse]) -> str:
45+
status = getattr(response, 'status', getattr(response, 'status_code'))
46+
return f'Unable to decode JSON response, got {"passed" if response.ok else "failed"} ' \
47+
f'response with code "{status}" please check your endpoint configuration or API key'
48+
49+
4450
class RPResponse:
4551
"""Class representing ReportPortal API response."""
4652

@@ -83,8 +89,7 @@ def json(self) -> Any:
8389
try:
8490
self.__json = self._resp.json()
8591
except (JSONDecodeError, TypeError) as exc:
86-
logger.warning('Unable to decode JSON response, please check your endpoint configuration or API '
87-
'key', exc_info=exc)
92+
logger.warning(_get_json_decode_error_message(self._resp), exc_info=exc)
8893
self.__json = None
8994
return self.__json
9095

@@ -152,8 +157,7 @@ async def json(self) -> Any:
152157
try:
153158
self.__json = await self._resp.json()
154159
except (JSONDecodeError, TypeError) as exc:
155-
logger.warning('Unable to decode JSON response, please check your endpoint configuration or API '
156-
'key', exc_info=exc)
160+
logger.warning(_get_json_decode_error_message(self._resp), exc_info=exc)
157161
self.__json = None
158162
return self.__json
159163

0 commit comments

Comments
 (0)