Fix json.load() compatility issue in different python version
1. The issue: Traceback (most recent call last): 2020-01-15 06:49:03.578487 | controller | File "/opt/stack/tempest/.tox/tempest/lib/python3.6/site-packages/freezer_tempest_plugin/ tests/freezer/agent/test_metadata_checksum.py", line 68, in test_freezer_fs_backup_bad_checksum 2020-01-15 06:49:03.578502 | controller | metadata = base.load_metadata(metadata_path) 2020-01-15 06:49:03.578516 | controller | File "/opt/stack/tempest/.tox/tempest/lib/python3.6/site-packages/freezer_tempest_plugin/ tests/freezer/agent/base.py", line 99, in load_metadata 2020-01-15 06:49:03.578543 | controller | return json.load(f) 2020-01-15 06:49:03.578574 | controller | File "/opt/stack/tempest/.tox/tempest/lib/python3.6/site-packages/oslo_serialization/ jsonutils.py", line 276, in load 2020-01-15 06:49:03.578590 | controller | return json.load(codecs.getreader(encoding)(fp), **kwargs) 2020-01-15 06:49:03.578603 | controller | File "/usr/lib/python3.6/json/__init__.py", line 296, in load 2020-01-15 06:49:03.578616 | controller | return loads(fp.read(), 2020-01-15 06:49:03.578630 | controller | File "/opt/stack/tempest/.tox/tempest/lib/python3.6/codecs.py", line 499, in read 2020-01-15 06:49:03.578643 | controller | data = self.bytebuffer + newdata 2020-01-15 06:49:03.578656 | controller | TypeError: can't concat str to bytes 2020-01-15 06:49:03.578669 | controller | 2. Solve: 2.1 Ref:https://docs.python.org/3/library/json.html json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw) Changed in version 3.6: fp can now be a binary file. The input encoding should be UTF-8, UTF-16 or UTF-32. 2.2 Use open(path,'rb') to replace open(path,'r') 'b' : binary mode 't' : text mode (default) Change-Id: I07d855a75b66bc5de987aed80d8722f653154924
This commit is contained in:
parent
eceef09870
commit
9c55a840cb
|
@ -95,7 +95,7 @@ def load_metadata(path):
|
|||
:param path: the path to load
|
||||
:return: a metadata dict
|
||||
"""
|
||||
with open(path, 'r') as f:
|
||||
with open(path, 'rb') as f:
|
||||
return json.load(f)
|
||||
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ class TestFreezerCompressGzip(base.BaseFreezerTest):
|
|||
|
||||
def _metadata(self):
|
||||
path = os.path.join(self.storage_tree.path, 'metadata.json')
|
||||
with open(path, 'r') as f:
|
||||
with open(path, 'rb') as f:
|
||||
return json.load(f)
|
||||
|
||||
def _file_get_mimetype(self, metadata):
|
||||
|
|
Loading…
Reference in New Issue