bugfix: make compatible with download api that response in bytes

This commit is contained in:
debugtalk
2018-05-14 17:14:44 +08:00
parent 6f6d0bdf5a
commit ca39577175
2 changed files with 12 additions and 9 deletions

View File

@@ -1,7 +1,7 @@
__title__ = 'HttpRunner'
__description__ = 'One-stop solution for HTTP(S) testing.'
__url__ = 'https://github.com/HttpRunner/HttpRunner'
__version__ = '1.4.3'
__version__ = '1.4.4'
__author__ = 'debugtalk'
__author_email__ = 'mail@debugtalk.com'
__license__ = 'MIT'

View File

@@ -118,14 +118,17 @@ def stringify_body(meta_data, request_or_response):
elif isinstance(body, bytes):
resp_content_type = headers.get("Content-Type", "")
if "image" in resp_content_type:
meta_data["response_data_type"] = "image"
body = "data:{};base64,{}".format(
resp_content_type,
b64encode(body).decode('utf-8')
)
else:
body = body.decode("utf-8")
try:
if "image" in resp_content_type:
meta_data["response_data_type"] = "image"
body = "data:{};base64,{}".format(
resp_content_type,
b64encode(body).decode('utf-8')
)
else:
body = body.decode("utf-8")
except UnicodeDecodeError:
pass
elif not isinstance(body, (basestring, numeric_types, Iterable)):
# class instance, e.g. MultipartEncoder()