feat: config variables support parsing from function

This commit is contained in:
debugtalk
2019-09-19 00:22:18 +08:00
parent 2e6880fb6f
commit d65f3860b1
7 changed files with 78 additions and 6 deletions

View File

@@ -871,10 +871,23 @@ def __prepare_config(config, project_mapping, session_variables_set=None):
"""
# get config variables
raw_config_variables = config.pop("variables", {})
raw_config_variables_mapping = utils.ensure_mapping_format(raw_config_variables)
override_variables = utils.deepcopy_dict(project_mapping.get("variables", {}))
functions = project_mapping.get("functions", {})
if isinstance(raw_config_variables, basestring) and function_regex_compile.match(raw_config_variables):
# config variables are generated by calling function
# e.g.
# "config": {
# "name": "basic test with httpbin",
# "variables": "${gen_variables()}"
# }
raw_config_variables_mapping = parse_lazy_data(
prepare_lazy_data(raw_config_variables, functions_mapping=functions)
)
else:
raw_config_variables_mapping = utils.ensure_mapping_format(raw_config_variables)
# override config variables with passed in variables
raw_config_variables_mapping.update(override_variables)