mirror of
https://github.com/httprunner/httprunner.git
synced 2026-07-12 16:01:27 +08:00
update parse_data docstring
This commit is contained in:
@@ -200,24 +200,32 @@ def parse_validator(validator):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def parse_data(content, mapping):
|
def parse_data(content, variables_mapping=None):
|
||||||
""" substitute variables in content with mapping
|
""" parse content with variables mapping
|
||||||
e.g.
|
|
||||||
@params
|
Args:
|
||||||
content = {
|
content (str/dict/list/numeric/bool/type): content to be parsed
|
||||||
'request': {
|
variables_mapping (dict): variables mapping
|
||||||
'url': '/api/users/$uid',
|
|
||||||
'headers': {'token': '$token'}
|
Returns:
|
||||||
|
parsed content.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
>>> content = {
|
||||||
|
'request': {
|
||||||
|
'url': '/api/users/$uid',
|
||||||
|
'headers': {'token': '$token'}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
>>> variables_mapping = {"$uid": 1000}
|
||||||
mapping = {"$uid": 1000}
|
>>> parse_data(content, variables_mapping)
|
||||||
@return
|
{
|
||||||
{
|
'request': {
|
||||||
'request': {
|
'url': '/api/users/1000',
|
||||||
'url': '/api/users/1000',
|
'headers': {'token': '$token'}
|
||||||
'headers': {'token': '$token'}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
"""
|
"""
|
||||||
# TODO: refactor type check
|
# TODO: refactor type check
|
||||||
# TODO: combine this with TestcaseParser
|
# TODO: combine this with TestcaseParser
|
||||||
@@ -226,21 +234,22 @@ def parse_data(content, mapping):
|
|||||||
|
|
||||||
if isinstance(content, (list, set, tuple)):
|
if isinstance(content, (list, set, tuple)):
|
||||||
return [
|
return [
|
||||||
parse_data(item, mapping)
|
parse_data(item, variables_mapping)
|
||||||
for item in content
|
for item in content
|
||||||
]
|
]
|
||||||
|
|
||||||
if isinstance(content, dict):
|
if isinstance(content, dict):
|
||||||
substituted_data = {}
|
parsed_data = {}
|
||||||
for key, value in content.items():
|
for key, value in content.items():
|
||||||
eval_key = parse_data(key, mapping)
|
eval_key = parse_data(key, variables_mapping)
|
||||||
eval_value = parse_data(value, mapping)
|
eval_value = parse_data(value, variables_mapping)
|
||||||
substituted_data[eval_key] = eval_value
|
parsed_data[eval_key] = eval_value
|
||||||
|
|
||||||
return substituted_data
|
return parsed_data
|
||||||
|
|
||||||
# content is in string format here
|
# content is in string format here
|
||||||
for var, value in mapping.items():
|
variables_mapping = variables_mapping or {}
|
||||||
|
for var, value in variables_mapping.items():
|
||||||
if content == var:
|
if content == var:
|
||||||
# content is a variable
|
# content is a variable
|
||||||
content = value
|
content = value
|
||||||
|
|||||||
Reference in New Issue
Block a user