Skip to content

Commit 0802953

Browse files
sarahbxNorthover
authored andcommitted
Raise ValueError on invalid response body (#119)
* Raise ValueError on empty response body * Add log messaage on json decode ValueError * Remove unused import from dev * Use class logger object
1 parent 0a70d2d commit 0802953

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

dyn/core.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,20 @@ def _handle_response(self, response, uri, method, raw_args, final):
287287
if self.poll_incomplete:
288288
response, body = self.poll_response(response, body)
289289
self._last_response = response
290-
ret_val = json.loads(body.decode('UTF-8'))
290+
291+
if not body:
292+
err_msg_fmt = "Received Empty Response: {!r} status: {!r} {!r}"
293+
error_message = err_msg_fmt.format(body, response.status, uri)
294+
self.logger.error(error_message)
295+
raise ValueError(error_message)
296+
297+
json_err_fmt = "Decode Error on Response Body: {!r} status: {!r} {!r}"
298+
try:
299+
ret_val = json.loads(body.decode('UTF-8'))
300+
except ValueError:
301+
self.logger.error(json_err_fmt.format(body, response.status, uri))
302+
raise
303+
291304
if self.__call_cache is not None:
292305
self.__call_cache.append((uri, method, clean_args(raw_args),
293306
ret_val['status']))

0 commit comments

Comments
 (0)