mirror of
https://github.com/httprunner/httprunner.git
synced 2026-08-28 19:47:14 +08:00
fix: handle the case when variable_binds is OrderedDict or some other data structure
This commit is contained in:
+8
-1
@@ -366,8 +366,15 @@ def update_ordered_dict(ordered_dict, override_mapping):
|
|||||||
def override_variables_binds(variable_binds, new_mapping):
|
def override_variables_binds(variable_binds, new_mapping):
|
||||||
""" convert variable_binds in testcase to ordered mapping, with new_mapping overrided
|
""" convert variable_binds in testcase to ordered mapping, with new_mapping overrided
|
||||||
"""
|
"""
|
||||||
|
if isinstance(variable_binds, list):
|
||||||
|
variable_binds_ordered_dict = convert_to_order_dict(variable_binds)
|
||||||
|
elif isinstance(variable_binds, OrderedDict):
|
||||||
|
variable_binds_ordered_dict = variable_binds
|
||||||
|
else:
|
||||||
|
raise exception.ParamsError("variable_binds error!")
|
||||||
|
|
||||||
return update_ordered_dict(
|
return update_ordered_dict(
|
||||||
convert_to_order_dict(variable_binds),
|
variable_binds_ordered_dict,
|
||||||
new_mapping
|
new_mapping
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+20
-2
@@ -1,8 +1,10 @@
|
|||||||
import os
|
import os
|
||||||
from ate import utils
|
from collections import OrderedDict
|
||||||
from ate import exception
|
|
||||||
|
from ate import exception, utils
|
||||||
from tests.base import ApiServerUnittest
|
from tests.base import ApiServerUnittest
|
||||||
|
|
||||||
|
|
||||||
class TestUtils(ApiServerUnittest):
|
class TestUtils(ApiServerUnittest):
|
||||||
|
|
||||||
def test_load_testcases_bad_filepath(self):
|
def test_load_testcases_bad_filepath(self):
|
||||||
@@ -278,3 +280,19 @@ class TestUtils(ApiServerUnittest):
|
|||||||
new_dict = utils.override_variables_binds(map_list, override_mapping)
|
new_dict = utils.override_variables_binds(map_list, override_mapping)
|
||||||
self.assertEqual(3, new_dict["a"])
|
self.assertEqual(3, new_dict["a"])
|
||||||
self.assertEqual(4, new_dict["c"])
|
self.assertEqual(4, new_dict["c"])
|
||||||
|
|
||||||
|
map_list = OrderedDict(
|
||||||
|
{
|
||||||
|
"a": 1,
|
||||||
|
"b": 2
|
||||||
|
}
|
||||||
|
)
|
||||||
|
override_mapping = {"a": 3, "c": 4}
|
||||||
|
new_dict = utils.override_variables_binds(map_list, override_mapping)
|
||||||
|
self.assertEqual(3, new_dict["a"])
|
||||||
|
self.assertEqual(4, new_dict["c"])
|
||||||
|
|
||||||
|
map_list = "invalid"
|
||||||
|
override_mapping = {"a": 3, "c": 4}
|
||||||
|
with self.assertRaises(exception.ParamsError):
|
||||||
|
utils.override_variables_binds(map_list, override_mapping)
|
||||||
|
|||||||
Reference in New Issue
Block a user