From 38d18e9a61b5f213e4902ed180a4eca25df02d35 Mon Sep 17 00:00:00 2001 From: Thomas Kho Date: Mon, 6 Jul 2015 14:15:26 -0400 Subject: [PATCH] More permissive error response handling --- lob/api_requestor.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lob/api_requestor.py b/lob/api_requestor.py index ed8c64d..729b0bd 100644 --- a/lob/api_requestor.py +++ b/lob/api_requestor.py @@ -25,14 +25,16 @@ def parse_response(self, resp): payload = resp.json() if resp.status_code == 200: return payload - elif resp.status_code == 401: - raise error.AuthenticationError(payload['error']['message'], + + error_message = payload.get('error', {}).get('message') + if resp.status_code == 401: + raise error.AuthenticationError(error_message, resp.content, resp.status_code, resp) elif resp.status_code in [404, 422]: - raise error.InvalidRequestError(payload['error']['message'], + raise error.InvalidRequestError(error_message, resp.content, resp.status_code, resp) else: # pragma: no cover - raise error.APIError(payload['error']['message'], resp.content, resp.status_code, resp) + raise error.APIError(error_message, resp.content, resp.status_code, resp) def request(self, method, url, params=None):