Merge ~matiasb/snapstore-client:api-v2-errors into snapstore-client:master

Proposed by Matias Bordese
Status: Merged
Approved by: Matias Bordese
Approved revision: d4e516eb399f8a9b1d1175bcc8e164847c11ed95
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~matiasb/snapstore-client:api-v2-errors
Merge into: snapstore-client:master
Diff against target: 42 lines (+6/-3)
3 files modified
snapstore_client/tests/factory.py (+1/-1)
snapstore_client/tests/test_webservices.py (+2/-1)
snapstore_client/webservices.py (+3/-1)
Reviewer Review Type Date Requested Status
Adam Collard (community) Approve
Review via email: mp+339356@code.launchpad.net

Commit message

Updated error logging for v2 responses.

To post a comment you must log in.
Revision history for this message
Adam Collard (adam-collard) wrote :

+1, thanks

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/snapstore_client/tests/factory.py b/snapstore_client/tests/factory.py
2index 4dd524d..b7f77c6 100644
3--- a/snapstore_client/tests/factory.py
4+++ b/snapstore_client/tests/factory.py
5@@ -78,7 +78,7 @@ class APIError(Exception):
6 return len(self._error_list) > 0
7
8 def to_dict(self):
9- return {'error_list': [{'message': m} for m in self._error_list]}
10+ return {'error-list': [{'message': m} for m in self._error_list]}
11
12 @classmethod
13 def single(cls, message):
14diff --git a/snapstore_client/tests/test_webservices.py b/snapstore_client/tests/test_webservices.py
15index 81ca041..c9c743c 100644
16--- a/snapstore_client/tests/test_webservices.py
17+++ b/snapstore_client/tests/test_webservices.py
18@@ -116,7 +116,8 @@ class WebservicesTests(TestCase):
19 discharge_url = urljoin(sso_url, '/api/v2/tokens/discharge')
20 responses.add(
21 'POST', discharge_url, status=400,
22- json=factory.APIError.single('Something went wrong').to_dict())
23+ json={'error_list': [{'code': 'invalid-request',
24+ 'message': 'Something went wrong'}]})
25
26 e = self.assertRaises(
27 exceptions.StoreAuthenticationError, webservices.get_sso_discharge,
28diff --git a/snapstore_client/webservices.py b/snapstore_client/webservices.py
29index fb1927a..8a15fb9 100644
30--- a/snapstore_client/webservices.py
31+++ b/snapstore_client/webservices.py
32@@ -145,7 +145,9 @@ def _print_error_message(action, response):
33 else:
34 try:
35 json_document = response.json()
36- for error in json_document['error_list']:
37+ error_list = json_document.get(
38+ 'error-list', json_document.get('error_list', []))
39+ for error in error_list:
40 logger.error(error['message'])
41 except json.JSONDecodeError:
42 logger.error('=' * 20)

Subscribers

People subscribed via source and target branches

to all changes: