bugfix: UnicodeDecodeError in Python2.7

This commit is contained in:
debugtalk
2018-07-26 11:46:46 +08:00
parent 62bc08dde6
commit e3d17d27d1
5 changed files with 17 additions and 7 deletions
+1 -1
View File
@@ -115,7 +115,7 @@ class HttpSession(requests.Session):
def log_print(request_response): def log_print(request_response):
msg = "\n================== {} details ==================\n".format(request_response) msg = "\n================== {} details ==================\n".format(request_response)
for key, value in self.meta_data[request_response].items(): 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) logger.log_debug(msg)
# record original request info # record original request info
+4
View File
@@ -261,6 +261,10 @@ class Context(object):
def validate(self, validators, resp_obj): def validate(self, validators, resp_obj):
""" make validations """ make validations
""" """
if not validators:
return
logger.log_info("start to validate.")
self.evaluated_validators = [] self.evaluated_validators = []
validate_pass = True validate_pass = True
+2 -2
View File
@@ -197,14 +197,14 @@ class Runner(object):
err_req_msg = "request: \n" err_req_msg = "request: \n"
err_req_msg += "headers: {}\n".format(parsed_request.pop("headers", {})) err_req_msg += "headers: {}\n".format(parsed_request.pop("headers", {}))
for k, v in parsed_request.items(): 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) logger.log_error(err_req_msg)
# log response # log response
err_resp_msg = "response: \n" err_resp_msg = "response: \n"
err_resp_msg += "status_code: {}\n".format(resp_obj.status_code) err_resp_msg += "status_code: {}\n".format(resp_obj.status_code)
err_resp_msg += "headers: {}\n".format(resp_obj.headers) 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) logger.log_error(err_resp_msg)
raise raise
+1 -1
View File
@@ -26,7 +26,7 @@ class TestCase(unittest.TestCase):
try: try:
self.test_runner.run_test(self.testcase_dict) self.test_runner.run_test(self.testcase_dict)
except exceptions.MyBaseFailure as ex: except exceptions.MyBaseFailure as ex:
self.fail(str(ex)) self.fail(repr(ex))
finally: finally:
if hasattr(self.test_runner.http_client_session, "meta_data"): if hasattr(self.test_runner.http_client_session, "meta_data"):
self.meta_data = self.test_runner.http_client_session.meta_data self.meta_data = self.test_runner.http_client_session.meta_data
+9 -3
View File
@@ -10,7 +10,8 @@ import random
import re import re
from httprunner import exceptions, logger, utils 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 from httprunner.utils import FileUtils
variable_regexp = r"\$([\w_]+)" variable_regexp = r"\$([\w_]+)"
@@ -627,7 +628,9 @@ def substitute_variables_with_mapping(content, mapping):
# content is a variable # content is a variable
content = value content = value
else: else:
content = content.replace(var, str(value)) if not isinstance(value, str):
value = builtin_str(value)
content = content.replace(var, value)
return content return content
@@ -850,9 +853,12 @@ class TestcaseParser(object):
content = variable_value content = variable_value
else: else:
# content contains one or several variables # content contains one or several variables
if not isinstance(variable_value, str):
variable_value = builtin_str(variable_value)
content = content.replace( content = content.replace(
"${}".format(variable_name), "${}".format(variable_name),
str(variable_value), 1 variable_value, 1
) )
return content return content