ensure variables are in mapping format.

This commit is contained in:
debugtalk
2018-11-14 16:15:04 +08:00
parent a9a82e52f3
commit 1578b78f54
4 changed files with 10 additions and 40 deletions

View File

@@ -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":

View File

@@ -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)

View File

@@ -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:

View File

@@ -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"])