From f05aba1284b0518ec8f8f8e119b432ec7405a88a Mon Sep 17 00:00:00 2001 From: Valeriy Mukhtarulin Date: Mon, 14 Mar 2022 11:58:36 -0300 Subject: [PATCH 1/2] Pass 404 and other errors --- NEWS.md | 4 ++++ tests/test_errors.py | 15 +++++++++++++++ veryfi/errors.py | 18 ++++++------------ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/NEWS.md b/NEWS.md index 0b5d227..db3a346 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,10 @@ CHANGES ======= +3.0.0 +----- +* Return proper 404 error + 3.0.0 ----- * Use v8 by default, lower timeout diff --git a/tests/test_errors.py b/tests/test_errors.py index a0e6dc7..1bd22c7 100644 --- a/tests/test_errors.py +++ b/tests/test_errors.py @@ -19,3 +19,18 @@ def test_bad_request(): with pytest.raises(BadRequest, match="400, Bad or missing parameters") as e: raise VeryfiClientError.from_response(response) + + +@responses.activate +def test_not_found(): + url = f"{Client.BASE_URL}v7/partner/documents" + responses.add( + responses.PUT, + url, + json={"status": "fail", "error": "Document not found"}, + status=404, + ) + response = requests.put(url) + + with pytest.raises(VeryfiClientError, match="404, Document not found") as e: + raise VeryfiClientError.from_response(response) diff --git a/veryfi/errors.py b/veryfi/errors.py index 189c514..6e8c3b3 100644 --- a/veryfi/errors.py +++ b/veryfi/errors.py @@ -20,18 +20,8 @@ def from_response(raw_response): 'error': 'Human readable error description.' } """ - json_response = raw_response.json() - # TODO Add Error Codes to API response - # code = error_info.get("code", "") - - try: - error_cls = _error_map[raw_response.status_code] - except KeyError: - raise NotImplementedError( - "Unknown error Please contact customer support at support@veryfi.com." - ) - else: - return error_cls(raw_response, **raw_response.json()) + error_cls = _error_map.get(raw_response.status_code) or VeryfiClientError + return error_cls(raw_response, **raw_response.json()) class UnauthorizedAccessToken(VeryfiClientError): @@ -54,6 +44,10 @@ class InternalError(VeryfiClientError): pass +class InternalError(VeryfiClientError): + pass + + _error_map = { 400: BadRequest, 401: UnauthorizedAccessToken, From cc0fb01f28f4abe69519b7ab37554e2c91b1067e Mon Sep 17 00:00:00 2001 From: Valeriy Mukhtarulin Date: Mon, 14 Mar 2022 12:01:15 -0300 Subject: [PATCH 2/2] Clean duplicate --- NEWS.md | 2 +- veryfi/errors.py | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/NEWS.md b/NEWS.md index db3a346..b905c80 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,7 +3,7 @@ CHANGES 3.0.0 ----- -* Return proper 404 error +* Return proper 404 and other errors 3.0.0 ----- diff --git a/veryfi/errors.py b/veryfi/errors.py index 6e8c3b3..e1340db 100644 --- a/veryfi/errors.py +++ b/veryfi/errors.py @@ -44,10 +44,6 @@ class InternalError(VeryfiClientError): pass -class InternalError(VeryfiClientError): - pass - - _error_map = { 400: BadRequest, 401: UnauthorizedAccessToken,