Skip to content

Commit 6e5cad0

Browse files
committed
fix(detailed response): Update _to_dict function to support json array results
- Removed extra whitespace
1 parent a208ef2 commit 6e5cad0

File tree

4 files changed

+23
-4
lines changed

4 files changed

+23
-4
lines changed

ibm_cloud_sdk_core/base_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ def set_username_and_password(self, username, password):
198198
self.password = password
199199
self.jar = CookieJar()
200200

201-
def set_token_manager(self, iam_apikey=None, iam_access_token=None, iam_url=None,
201+
def set_token_manager(self, iam_apikey=None, iam_access_token=None, iam_url=None,
202202
iam_client_id=None, iam_client_secret=None):
203203
if has_bad_first_or_last_char(iam_apikey):
204204
raise ValueError('The credentials shouldn\'t start or end with curly brackets or quotes. '

ibm_cloud_sdk_core/detailed_response.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def get_status_code(self):
4141
def _to_dict(self):
4242
_dict = {}
4343
if hasattr(self, 'result') and self.result is not None:
44-
_dict['result'] = self.result if isinstance(self.result, dict) else 'HTTP response'
44+
_dict['result'] = self.result if isinstance(self.result, (dict, list)) else 'HTTP response'
4545
if hasattr(self, 'headers') and self.headers is not None:
4646
_dict['headers'] = self.headers
4747
if hasattr(self, 'status_code') and self.status_code is not None:

ibm_cloud_sdk_core/iam_token_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class IAMTokenManager(object):
2525
REQUEST_TOKEN_RESPONSE_TYPE = 'cloud_iam'
2626
REFRESH_TOKEN_GRANT_TYPE = 'refresh_token'
2727

28-
def __init__(self, iam_apikey=None, iam_access_token=None, iam_url=None,
28+
def __init__(self, iam_apikey=None, iam_access_token=None, iam_url=None,
2929
iam_client_id=None, iam_client_secret=None):
3030
self.iam_apikey = iam_apikey
3131
self.user_access_token = iam_access_token

test/test_detailed_response.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from ibm_cloud_sdk_core import DetailedResponse
66

77
@responses.activate
8-
def test_detailed_response():
8+
def test_detailed_response_dict():
99
responses.add(responses.GET,
1010
'https://test.com',
1111
status=200,
@@ -22,3 +22,22 @@ def test_detailed_response():
2222
dict_repr = detailed_response._to_dict()
2323
assert dict_repr['result'] == {'foobar': 'baz'}
2424
detailed_response.__str__()
25+
26+
@responses.activate
27+
def test_detailed_response_list():
28+
responses.add(responses.GET,
29+
'https://test.com',
30+
status=200,
31+
body=json.dumps(['foobar', 'baz']),
32+
content_type='application/json')
33+
34+
mock_response = requests.get('https://test.com')
35+
detailed_response = DetailedResponse(mock_response.json(), mock_response.headers, mock_response.status_code)
36+
assert detailed_response is not None
37+
assert detailed_response.get_result() == ['foobar', 'baz']
38+
assert detailed_response.get_headers() == {u'Content-Type': 'application/json'}
39+
assert detailed_response.get_status_code() == 200
40+
41+
dict_repr = detailed_response._to_dict()
42+
assert dict_repr['result'] == ['foobar', 'baz']
43+
detailed_response.__str__()

0 commit comments

Comments
 (0)