From f38b63d240b3f9bc12e9e26a4bb53260400ea720 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Wed, 20 Sep 2017 21:06:32 +0800 Subject: [PATCH] bugfix: keys that are not in 'request' of config shall not be lower cased --- ate/runner.py | 2 +- ate/utils.py | 13 ++++++++++++- tests/test_utils.py | 4 ++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ate/runner.py b/ate/runner.py index 35c5b43b..2aa7a554 100644 --- a/ate/runner.py +++ b/ate/runner.py @@ -51,7 +51,7 @@ class Runner(object): @param (str) context level, testcase or testset """ # convert keys in request headers to lowercase - config_dict = utils.lower_dict_key(config_dict) + config_dict = utils.lower_config_dict_key(config_dict) self.context.init_context(level) self.context.config_context(config_dict, level) diff --git a/ate/utils.py b/ate/utils.py index f8145757..aea20f3f 100644 --- a/ate/utils.py +++ b/ate/utils.py @@ -300,7 +300,7 @@ def lower_dict_key(origin_dict, depth=1): new_dict = {} for key, value in origin_dict.items(): - if depth > 2: + if depth >= 2: new_dict[key] = value continue @@ -311,6 +311,17 @@ def lower_dict_key(origin_dict, depth=1): return new_dict +def lower_config_dict_key(config_dict): + """ convert key in config dict to lower case, convertion will occur in two places: + 1, all keys in config dict; + 2, all keys in config["request"] + """ + config_dict = lower_dict_key(config_dict) + if "request" in config_dict and isinstance(config_dict["request"], dict): + config_dict["request"] = lower_dict_key(config_dict["request"]) + + return config_dict + def convert_to_order_dict(map_list): """ convert mapping in list to ordered dict @param (list) map_list diff --git a/tests/test_utils.py b/tests/test_utils.py index 8a591e22..37d7faa5 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -222,7 +222,7 @@ class TestUtils(ApiServerUnittest): self.assertFalse(utils.is_variable(("os", os))) self.assertFalse(utils.is_variable(("utils", utils))) - def test_lower_dict_key(self): + def test_handle_config_key_case(self): origin_dict = { "Name": "test", "Request": { @@ -234,7 +234,7 @@ class TestUtils(ApiServerUnittest): } } } - new_dict = utils.lower_dict_key(origin_dict) + new_dict = utils.lower_config_dict_key(origin_dict) self.assertIn("name", new_dict) self.assertIn("request", new_dict) self.assertIn("method", new_dict["request"])