mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-11 18:11:21 +08:00
ensure variables are in mapping format.
This commit is contained in:
@@ -15,12 +15,7 @@ class Context(object):
|
||||
"""
|
||||
# testcase level context
|
||||
## TESTCASE_SHARED_VARIABLES_MAPPING and TESTCASE_SHARED_FUNCTIONS_MAPPING are unchangeable.
|
||||
if isinstance(variables, list):
|
||||
self.TESTCASE_SHARED_VARIABLES_MAPPING = utils.convert_mappinglist_to_orderdict(variables)
|
||||
else:
|
||||
# dict
|
||||
self.TESTCASE_SHARED_VARIABLES_MAPPING = variables or OrderedDict()
|
||||
|
||||
self.TESTCASE_SHARED_VARIABLES_MAPPING = utils.ensure_mapping_format(variables)
|
||||
self.TESTCASE_SHARED_FUNCTIONS_MAPPING = functions or OrderedDict()
|
||||
|
||||
# testcase level request, will not change
|
||||
@@ -65,10 +60,9 @@ class Context(object):
|
||||
level (enum): "testcase" or "teststep"
|
||||
|
||||
"""
|
||||
if isinstance(variables, list):
|
||||
variables = utils.convert_mappinglist_to_orderdict(variables)
|
||||
variables_mapping = utils.ensure_mapping_format(variables)
|
||||
|
||||
for variable_name, variable_value in variables.items():
|
||||
for variable_name, variable_value in variables_mapping.items():
|
||||
variable_eval_value = self.eval_content(variable_value)
|
||||
|
||||
if level == "testcase":
|
||||
|
||||
@@ -221,7 +221,7 @@ class ResponseObject(object):
|
||||
|
||||
logger.log_info("start to extract from response object.")
|
||||
extracted_variables_mapping = OrderedDict()
|
||||
extract_binds_order_dict = utils.convert_mappinglist_to_orderdict(extractors)
|
||||
extract_binds_order_dict = utils.ensure_mapping_format(extractors)
|
||||
|
||||
for key, field in extract_binds_order_dict.items():
|
||||
extracted_variables_mapping[key] = self.extract_field(field)
|
||||
|
||||
@@ -177,32 +177,6 @@ def lower_test_dict_keys(test_dict):
|
||||
|
||||
return test_dict
|
||||
|
||||
def convert_mappinglist_to_orderdict(mapping_list):
|
||||
""" convert mapping list to ordered dict
|
||||
|
||||
Args:
|
||||
mapping_list (list):
|
||||
[
|
||||
{"a": 1},
|
||||
{"b": 2}
|
||||
]
|
||||
|
||||
Returns:
|
||||
OrderedDict: converted mapping in OrderedDict
|
||||
OrderDict(
|
||||
{
|
||||
"a": 1,
|
||||
"b": 2
|
||||
}
|
||||
)
|
||||
|
||||
"""
|
||||
ordered_dict = OrderedDict()
|
||||
for map_dict in mapping_list:
|
||||
ordered_dict.update(map_dict)
|
||||
|
||||
return ordered_dict
|
||||
|
||||
|
||||
def deepcopy_dict(data):
|
||||
""" deepcopy dict data, ignore file object (_io.BufferedReader)
|
||||
@@ -288,7 +262,9 @@ def ensure_mapping_format(variables):
|
||||
|
||||
"""
|
||||
if isinstance(variables, list):
|
||||
variables_ordered_dict = convert_mappinglist_to_orderdict(variables)
|
||||
variables_ordered_dict = OrderedDict()
|
||||
for map_dict in variables:
|
||||
variables_ordered_dict.update(map_dict)
|
||||
elif isinstance(variables, (OrderedDict, dict)):
|
||||
variables_ordered_dict = variables
|
||||
else:
|
||||
|
||||
@@ -206,12 +206,12 @@ class TestUtils(ApiServerUnittest):
|
||||
new_request_dict = utils.lower_dict_keys(request_dict)
|
||||
self.assertEqual(None, request_dict)
|
||||
|
||||
def test_convert_to_order_dict(self):
|
||||
def test_ensure_mapping_format(self):
|
||||
map_list = [
|
||||
{"a": 1},
|
||||
{"b": 2}
|
||||
]
|
||||
ordered_dict = utils.convert_mappinglist_to_orderdict(map_list)
|
||||
ordered_dict = utils.ensure_mapping_format(map_list)
|
||||
self.assertIsInstance(ordered_dict, dict)
|
||||
self.assertIn("a", ordered_dict)
|
||||
|
||||
@@ -240,7 +240,7 @@ class TestUtils(ApiServerUnittest):
|
||||
{"a": 1},
|
||||
{"b": 2}
|
||||
]
|
||||
ordered_dict = utils.convert_mappinglist_to_orderdict(map_list)
|
||||
ordered_dict = utils.ensure_mapping_format(map_list)
|
||||
override_mapping = {"a": 3, "c": 4}
|
||||
new_dict = utils.update_ordered_dict(ordered_dict, override_mapping)
|
||||
self.assertEqual(3, new_dict["a"])
|
||||
|
||||
Reference in New Issue
Block a user