mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 11:29:48 +08:00
bugfix: when the bind value of variable is not in string type, it should be converted to string first, or it will raise TypeError in replace function
This commit is contained in:
14
ate/utils.py
14
ate/utils.py
@@ -151,10 +151,16 @@ def parse_variables(content, variable_mapping):
|
||||
raise ParamsError(
|
||||
"%s is not defined in bind variables!" % variable_name)
|
||||
|
||||
content = content.replace(
|
||||
"${}".format(variable_name),
|
||||
variable_value
|
||||
)
|
||||
if "${}".format(variable_name) == content:
|
||||
# content is a variable
|
||||
content = variable_value
|
||||
else:
|
||||
# content contains one or many variables
|
||||
content = content.replace(
|
||||
"${}".format(variable_name),
|
||||
str(variable_value)
|
||||
)
|
||||
|
||||
return content
|
||||
|
||||
def is_functon(content):
|
||||
|
||||
@@ -164,7 +164,10 @@ class TestUtils(ApiServerUnittest):
|
||||
def test_parse_variables(self):
|
||||
variable_mapping = {
|
||||
"var_1": "abc",
|
||||
"var_2": "def"
|
||||
"var_2": "def",
|
||||
"var_3": 123,
|
||||
"var_4": {"a": 1},
|
||||
"var_5": True
|
||||
}
|
||||
self.assertEqual(
|
||||
utils.parse_variables("$var_1", variable_mapping),
|
||||
@@ -190,6 +193,26 @@ class TestUtils(ApiServerUnittest):
|
||||
utils.parse_variables("${func($var_1, $var_2, xyz)}", variable_mapping),
|
||||
"${func(abc, def, xyz)}"
|
||||
)
|
||||
self.assertEqual(
|
||||
utils.parse_variables("$var_3", variable_mapping),
|
||||
123
|
||||
)
|
||||
self.assertEqual(
|
||||
utils.parse_variables("$var_4", variable_mapping),
|
||||
{"a": 1}
|
||||
)
|
||||
self.assertEqual(
|
||||
utils.parse_variables("$var_5", variable_mapping),
|
||||
True
|
||||
)
|
||||
self.assertEqual(
|
||||
utils.parse_variables("abc$var_5", variable_mapping),
|
||||
"abcTrue"
|
||||
)
|
||||
self.assertEqual(
|
||||
utils.parse_variables("abc$var_4", variable_mapping),
|
||||
"abc{'a': 1}"
|
||||
)
|
||||
|
||||
def test_is_functon(self):
|
||||
content = "${func()}"
|
||||
|
||||
Reference in New Issue
Block a user