mirror of
https://github.com/httprunner/httprunner.git
synced 2026-08-15 18:44:43 +08:00
make variables in testcase template compatible with mapping style:
new mapping style:
"variables": {
"a": 1,
"b": 2
}
Also, the former list style is still valid:
"variables": [
{"a": 1},
{"b": 2}
]
This commit is contained in:
@@ -9,7 +9,7 @@ import sys
|
||||
|
||||
import yaml
|
||||
from httprunner import exceptions, logger, parser, utils, validator
|
||||
from httprunner.compat import OrderedDict
|
||||
|
||||
|
||||
###############################################################################
|
||||
## file loader
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
import ast
|
||||
import os
|
||||
import re
|
||||
from collections import OrderedDict
|
||||
|
||||
from httprunner import exceptions, utils
|
||||
from httprunner.compat import basestring, builtin_str, numeric_types, str
|
||||
@@ -524,7 +523,7 @@ def parse_data(content, variables_mapping=None, functions_mapping=None):
|
||||
for item in content
|
||||
]
|
||||
|
||||
if isinstance(content, (dict, OrderedDict)):
|
||||
if isinstance(content, dict):
|
||||
parsed_content = {}
|
||||
for key, value in content.items():
|
||||
parsed_key = parse_data(key, variables_mapping, functions_mapping)
|
||||
|
||||
@@ -11,7 +11,7 @@ import string
|
||||
from datetime import datetime
|
||||
|
||||
from httprunner import exceptions, logger
|
||||
from httprunner.compat import OrderedDict, basestring, is_py2
|
||||
from httprunner.compat import basestring, is_py2
|
||||
from httprunner.exceptions import ParamsError
|
||||
|
||||
absolute_http_url_regexp = re.compile(r"^https?://", re.I)
|
||||
@@ -265,10 +265,10 @@ def ensure_mapping_format(variables):
|
||||
""" ensure variables are in mapping format.
|
||||
|
||||
Args:
|
||||
variables (list/dict/OrderedDict): original variables
|
||||
variables (list/dict): original variables
|
||||
|
||||
Returns:
|
||||
OrderedDict: ensured variables in OrderedDict
|
||||
dict: ensured variables in dict format
|
||||
|
||||
Examples:
|
||||
>>> variables = [
|
||||
@@ -276,19 +276,17 @@ def ensure_mapping_format(variables):
|
||||
{"b": 2}
|
||||
]
|
||||
>>> print(ensure_mapping_format(variables))
|
||||
OrderDict(
|
||||
{
|
||||
"a": 1,
|
||||
"b": 2
|
||||
}
|
||||
)
|
||||
{
|
||||
"a": 1,
|
||||
"b": 2
|
||||
}
|
||||
|
||||
"""
|
||||
if isinstance(variables, list):
|
||||
variables_ordered_dict = OrderedDict()
|
||||
variables_ordered_dict = {}
|
||||
for map_dict in variables:
|
||||
variables_ordered_dict.update(map_dict)
|
||||
elif isinstance(variables, (OrderedDict, dict)):
|
||||
elif isinstance(variables, dict):
|
||||
variables_ordered_dict = variables
|
||||
else:
|
||||
raise exceptions.ParamsError("variables format error!")
|
||||
@@ -377,17 +375,17 @@ def extend_variables(raw_variables, override_variables):
|
||||
override_variables (list):
|
||||
|
||||
Returns:
|
||||
OrderedDict: extended variables mapping
|
||||
dict: extended variables mapping
|
||||
|
||||
Examples:
|
||||
>>> raw_variables = [{"var1": "val1"}, {"var2": "val2"}]
|
||||
>>> override_variables = [{"var1": "val111"}, {"var3": "val3"}]
|
||||
>>> extend_variables(raw_variables, override_variables)
|
||||
OrderedDict([
|
||||
('var1', 'val111'),
|
||||
('var2', 'val2'),
|
||||
('var3', 'val3')
|
||||
])
|
||||
{
|
||||
'var1', 'val111',
|
||||
'var2', 'val2',
|
||||
'var3', 'val3'
|
||||
}
|
||||
|
||||
"""
|
||||
if not raw_variables:
|
||||
|
||||
Reference in New Issue
Block a user