mirror of
https://github.com/httprunner/httprunner.git
synced 2026-08-21 16:22:17 +08:00
update lower_dict_keys, avoid mistakes in OrderDict
This commit is contained in:
31
ate/utils.py
31
ate/utils.py
@@ -287,31 +287,28 @@ def search_conf_item(start_path, item_type, item_name):
|
|||||||
|
|
||||||
return search_conf_item(dir_path, item_type, item_name)
|
return search_conf_item(dir_path, item_type, item_name)
|
||||||
|
|
||||||
def lower_dict_key(origin_dict, depth=1):
|
def lower_dict_keys(origin_dict):
|
||||||
""" convert dict key to lower case, with depth control supported.
|
""" convert keys in dict to lower case
|
||||||
|
e.g.
|
||||||
|
Name => name, Request => request
|
||||||
|
URL => url, METHOD => method, Headers => headers, Data => data
|
||||||
"""
|
"""
|
||||||
new_dict = {}
|
if not origin_dict or not isinstance(origin_dict, dict):
|
||||||
|
return origin_dict
|
||||||
|
|
||||||
for key, value in origin_dict.items():
|
return {
|
||||||
if depth >= 2:
|
key.lower(): value
|
||||||
new_dict[key] = value
|
for key, value in origin_dict.items()
|
||||||
continue
|
}
|
||||||
|
|
||||||
if isinstance(value, dict):
|
|
||||||
value = lower_dict_key(value, depth+1)
|
|
||||||
|
|
||||||
new_dict[key.lower()] = value
|
|
||||||
|
|
||||||
return new_dict
|
|
||||||
|
|
||||||
def lower_config_dict_key(config_dict):
|
def lower_config_dict_key(config_dict):
|
||||||
""" convert key in config dict to lower case, convertion will occur in two places:
|
""" convert key in config dict to lower case, convertion will occur in two places:
|
||||||
1, all keys in config dict;
|
1, all keys in config dict;
|
||||||
2, all keys in config["request"]
|
2, all keys in config["request"]
|
||||||
"""
|
"""
|
||||||
config_dict = lower_dict_key(config_dict)
|
config_dict = lower_dict_keys(config_dict)
|
||||||
if "request" in config_dict and isinstance(config_dict["request"], dict):
|
if "request" in config_dict:
|
||||||
config_dict["request"] = lower_dict_key(config_dict["request"])
|
config_dict["request"] = lower_dict_keys(config_dict["request"])
|
||||||
|
|
||||||
return config_dict
|
return config_dict
|
||||||
|
|
||||||
|
|||||||
@@ -245,6 +245,29 @@ class TestUtils(ApiServerUnittest):
|
|||||||
new_dict = utils.lower_config_dict_key(origin_dict)
|
new_dict = utils.lower_config_dict_key(origin_dict)
|
||||||
self.assertIn("$default_request", new_dict["request"])
|
self.assertIn("$default_request", new_dict["request"])
|
||||||
|
|
||||||
|
def test_lower_dict_keys(self):
|
||||||
|
request_dict = {
|
||||||
|
"url": "http://127.0.0.1:5000",
|
||||||
|
"METHOD": "POST",
|
||||||
|
"Headers": {
|
||||||
|
"Accept": "application/json",
|
||||||
|
"User-Agent": "ios/9.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
new_request_dict = utils.lower_dict_keys(request_dict)
|
||||||
|
self.assertIn("method", new_request_dict)
|
||||||
|
self.assertIn("headers", new_request_dict)
|
||||||
|
self.assertIn("Accept", new_request_dict["headers"])
|
||||||
|
self.assertIn("User-Agent", new_request_dict["headers"])
|
||||||
|
|
||||||
|
request_dict = "$default_request"
|
||||||
|
new_request_dict = utils.lower_dict_keys(request_dict)
|
||||||
|
self.assertEqual("$default_request", request_dict)
|
||||||
|
|
||||||
|
request_dict = None
|
||||||
|
new_request_dict = utils.lower_dict_keys(request_dict)
|
||||||
|
self.assertEqual(None, request_dict)
|
||||||
|
|
||||||
def test_convert_to_order_dict(self):
|
def test_convert_to_order_dict(self):
|
||||||
map_list = [
|
map_list = [
|
||||||
{"a": 1},
|
{"a": 1},
|
||||||
|
|||||||
Reference in New Issue
Block a user