mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 02:21:29 +08:00
bugfix: UnicodeDecodeError in Python2.7
This commit is contained in:
@@ -115,7 +115,7 @@ class HttpSession(requests.Session):
|
||||
def log_print(request_response):
|
||||
msg = "\n================== {} details ==================\n".format(request_response)
|
||||
for key, value in self.meta_data[request_response].items():
|
||||
msg += "{:<16} : {}\n".format(key, value)
|
||||
msg += "{:<16} : {}\n".format(key, repr(value))
|
||||
logger.log_debug(msg)
|
||||
|
||||
# record original request info
|
||||
|
||||
@@ -261,6 +261,10 @@ class Context(object):
|
||||
def validate(self, validators, resp_obj):
|
||||
""" make validations
|
||||
"""
|
||||
if not validators:
|
||||
return
|
||||
|
||||
logger.log_info("start to validate.")
|
||||
self.evaluated_validators = []
|
||||
validate_pass = True
|
||||
|
||||
|
||||
@@ -197,14 +197,14 @@ class Runner(object):
|
||||
err_req_msg = "request: \n"
|
||||
err_req_msg += "headers: {}\n".format(parsed_request.pop("headers", {}))
|
||||
for k, v in parsed_request.items():
|
||||
err_req_msg += "{}: {}\n".format(k, v)
|
||||
err_req_msg += "{}: {}\n".format(k, repr(v))
|
||||
logger.log_error(err_req_msg)
|
||||
|
||||
# log response
|
||||
err_resp_msg = "response: \n"
|
||||
err_resp_msg += "status_code: {}\n".format(resp_obj.status_code)
|
||||
err_resp_msg += "headers: {}\n".format(resp_obj.headers)
|
||||
err_resp_msg += "content: {}\n".format(resp_obj.content)
|
||||
err_resp_msg += "content: {}\n".format(repr(resp_obj.text))
|
||||
logger.log_error(err_resp_msg)
|
||||
|
||||
raise
|
||||
|
||||
@@ -26,7 +26,7 @@ class TestCase(unittest.TestCase):
|
||||
try:
|
||||
self.test_runner.run_test(self.testcase_dict)
|
||||
except exceptions.MyBaseFailure as ex:
|
||||
self.fail(str(ex))
|
||||
self.fail(repr(ex))
|
||||
finally:
|
||||
if hasattr(self.test_runner.http_client_session, "meta_data"):
|
||||
self.meta_data = self.test_runner.http_client_session.meta_data
|
||||
|
||||
@@ -10,7 +10,8 @@ import random
|
||||
import re
|
||||
|
||||
from httprunner import exceptions, logger, utils
|
||||
from httprunner.compat import OrderedDict, basestring, numeric_types
|
||||
from httprunner.compat import (OrderedDict, basestring, builtin_str,
|
||||
numeric_types, str)
|
||||
from httprunner.utils import FileUtils
|
||||
|
||||
variable_regexp = r"\$([\w_]+)"
|
||||
@@ -627,7 +628,9 @@ def substitute_variables_with_mapping(content, mapping):
|
||||
# content is a variable
|
||||
content = value
|
||||
else:
|
||||
content = content.replace(var, str(value))
|
||||
if not isinstance(value, str):
|
||||
value = builtin_str(value)
|
||||
content = content.replace(var, value)
|
||||
|
||||
return content
|
||||
|
||||
@@ -850,9 +853,12 @@ class TestcaseParser(object):
|
||||
content = variable_value
|
||||
else:
|
||||
# content contains one or several variables
|
||||
if not isinstance(variable_value, str):
|
||||
variable_value = builtin_str(variable_value)
|
||||
|
||||
content = content.replace(
|
||||
"${}".format(variable_name),
|
||||
str(variable_value), 1
|
||||
variable_value, 1
|
||||
)
|
||||
|
||||
return content
|
||||
|
||||
Reference in New Issue
Block a user