Decode bytes data to string
json in python3.5 requires that json object must be a string, not byte object. In python2.7 or 3.6 it doesn't matter, it accepts both. Depends-On: https://review.opendev.org/#/c/702448/ Change-Id: I10a2805b599767cbd1f5553c1640f68c25e85522
This commit is contained in:
parent
2188ec07e1
commit
9f9ed67d30
@ -65,7 +65,7 @@ class Service(object):
|
||||
if r.status >= 400:
|
||||
raise ServiceError("Request on service '%s' with url '%s' failed"
|
||||
" with code %d" % (self.s_type, url, r.status))
|
||||
return r.data
|
||||
return r.data.decode('utf-8')
|
||||
|
||||
def set_extensions(self):
|
||||
self.extensions = []
|
||||
|
@ -88,7 +88,8 @@ class IdentityService(VersionedService):
|
||||
headers={'Accept': 'application/json-home'})
|
||||
|
||||
ext_h = 'https://docs.openstack.org/api/openstack-identity/3/ext/'
|
||||
res = [x for x in json.loads(r.content)['resources'].keys()]
|
||||
content = r.content.decode('utf-8')
|
||||
res = [x for x in json.loads(content)['resources'].keys()]
|
||||
ext = [ex for ex in res if 'ext' in ex]
|
||||
ext = [str(e).replace(ext_h, '').split('/')[0] for e in ext]
|
||||
self.extensions_v3 = list(set(ext))
|
||||
|
@ -270,8 +270,10 @@ class BaseServiceTest(base.BaseTestCase):
|
||||
}
|
||||
)
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, bytes_content=False):
|
||||
self.content = json.dumps(self.FAKE_V3_EXTENSIONS)
|
||||
if bytes_content:
|
||||
self.content = self.content.encode('utf-8')
|
||||
|
||||
class FakeServiceClient(object):
|
||||
def __init__(self, services=None):
|
||||
|
@ -34,7 +34,7 @@ class TestService(BaseServiceTest):
|
||||
expected_resp = mock_http.request('GET',
|
||||
self.FAKE_URL,
|
||||
self.FAKE_HEADERS)
|
||||
return expected_resp.data
|
||||
return expected_resp.data.decode('utf-8')
|
||||
|
||||
@mock.patch('config_tempest.services.base.urllib3')
|
||||
def test_do_get(self, mock_urllib3):
|
||||
|
@ -50,7 +50,7 @@ class TestIdentityService(BaseServiceTest):
|
||||
def test_set_identity_v3_extensions(self):
|
||||
expected_resp = ['OS-INHERIT', 'OS-OAUTH1',
|
||||
'OS-SIMPLE-CERT', 'OS-EP-FILTER']
|
||||
fake_resp = self.FakeRequestResponse()
|
||||
fake_resp = self.FakeRequestResponse(bytes_content=True)
|
||||
mocked_requests = mock.Mock()
|
||||
mocked_requests.return_value = fake_resp
|
||||
self.useFixture(MonkeyPatch('requests.get', mocked_requests))
|
||||
|
Loading…
x
Reference in New Issue
Block a user