Skip to content

Commit 2359b39

Browse files
committed
fix(client): raise ReponseError directly for response not from TensorBay
Resolve the issue that `JSONDecodeError` occurs when the content type of the response is not json. Issue Closed: #562
1 parent d33a810 commit 2359b39

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

tensorbay/client/requests.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,11 @@ def request( # type: ignore[override] # pylint: disable=signature-differs
160160
logger.error(
161161
"Unexpected status code(%d)!%s", response.status_code, ResponseLogging(response)
162162
)
163-
error_code = response.json()["code"]
164-
raise ResponseErrorDistributor.get(error_code, ResponseError)(response)
163+
if "tensorbay-open-api" in response.url:
164+
error_code = response.json()["code"]
165+
raise ResponseErrorDistributor.get(error_code, ResponseError)(response)
166+
raise ResponseError(response)
167+
165168
logger.debug(ResponseLogging(response))
166169
return response
167170

tensorbay/exception.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def __init_subclass__(cls) -> None:
120120
def __str__(self) -> str:
121121
return (
122122
f"Unexpected status code({self.response.status_code})! {self.response.url}!"
123-
f"\n{self._INDENT} {self.response.json()['message']}"
123+
f"\n{self._INDENT} {self.response.text}"
124124
)
125125

126126

0 commit comments

Comments
 (0)