From 9b5d91db5cf7e193098ba72033fe3677761984a4 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Tue, 4 Sep 2018 16:47:19 +0800 Subject: [PATCH 1/3] update docstring --- httprunner/utils.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/httprunner/utils.py b/httprunner/utils.py index d0ffda9d..4af1189b 100644 --- a/httprunner/utils.py +++ b/httprunner/utils.py @@ -127,9 +127,32 @@ def deep_update_dict(origin_dict, override_dict): def lower_dict_keys(origin_dict): """ convert keys in dict to lower case - e.g. - Name => name, Request => request - URL => url, METHOD => method, Headers => headers, Data => data + + Args: + origin_dict (dict): mapping data structure + + Returns: + dict: mapping with all keys lowered. + + Examples: + >>> origin_dict = { + "Name": "", + "Request": "", + "URL": "", + "METHOD": "", + "Headers": "", + "Data": "" + } + >>> lower_dict_keys(origin_dict) + { + "name": "", + "request": "", + "url": "", + "method": "", + "headers": "", + "data": "" + } + """ if not origin_dict or not isinstance(origin_dict, dict): return origin_dict From a442b5279ed0edc95b48a9101bb02771e9bb9c04 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Tue, 4 Sep 2018 16:52:52 +0800 Subject: [PATCH 2/3] fix #373: do not lower request headers --- httprunner/utils.py | 5 ----- tests/test_utils.py | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/httprunner/utils.py b/httprunner/utils.py index 4af1189b..febb71c6 100644 --- a/httprunner/utils.py +++ b/httprunner/utils.py @@ -166,7 +166,6 @@ def lower_config_dict_key(config_dict): """ convert key in config dict to lower case, convertion will occur in three places: 1, all keys in config dict; 2, all keys in config["request"] - 3, all keys in config["request"]["headers"] """ # convert keys in config dict config_dict = lower_dict_keys(config_dict) @@ -175,10 +174,6 @@ def lower_config_dict_key(config_dict): # convert keys in config["request"] config_dict["request"] = lower_dict_keys(config_dict["request"]) - # convert keys in config["request"]["headers"] - if "headers" in config_dict["request"]: - config_dict["request"]["headers"] = lower_dict_keys(config_dict["request"]["headers"]) - return config_dict def convert_mappinglist_to_orderdict(mapping_list): diff --git a/tests/test_utils.py b/tests/test_utils.py index 5d6fbad8..d0984519 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -172,8 +172,8 @@ class TestUtils(ApiServerUnittest): self.assertIn("request", new_dict) self.assertIn("method", new_dict["request"]) self.assertIn("headers", new_dict["request"]) - self.assertIn("accept", new_dict["request"]["headers"]) - self.assertIn("user-agent", new_dict["request"]["headers"]) + self.assertIn("Accept", new_dict["request"]["headers"]) + self.assertIn("User-Agent", new_dict["request"]["headers"]) origin_dict = { "Name": "test", From 903005bc84a137ea1be3f4289263ab4be47857f4 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Tue, 4 Sep 2018 17:14:54 +0800 Subject: [PATCH 3/3] refactor function and variable name --- httprunner/runner.py | 17 ++++++++--------- httprunner/utils.py | 20 ++++++++++---------- tests/test_runner.py | 6 +++--- tests/test_utils.py | 4 ++-- 4 files changed, 23 insertions(+), 24 deletions(-) diff --git a/httprunner/runner.py b/httprunner/runner.py index 50c6220c..89fb657f 100644 --- a/httprunner/runner.py +++ b/httprunner/runner.py @@ -27,7 +27,7 @@ class Runner(object): self.testcase_teardown_hooks = config_dict.pop("teardown_hooks", []) self.context = Context(config_variables, config_functions) - self.init_config(config_dict, "testcase") + self.init_test(config_dict, "testcase") if testcase_setup_hooks: self.do_hook_actions(testcase_setup_hooks) @@ -36,11 +36,11 @@ class Runner(object): if self.testcase_teardown_hooks: self.do_hook_actions(self.testcase_teardown_hooks) - def init_config(self, config_dict, level): + def init_test(self, test_dict, level): """ create/update context variables binds Args: - config_dict (dict): + test_dict (dict): level (enum): "testcase" or "teststep" testcase: { @@ -73,15 +73,14 @@ class Runner(object): dict: parsed request dict """ - # convert keys in request headers to lowercase - config_dict = utils.lower_config_dict_key(config_dict) + test_dict = utils.lower_test_dict_keys(test_dict) self.context.init_context_variables(level) - variables = config_dict.get('variables') \ - or config_dict.get('variable_binds', OrderedDict()) + variables = test_dict.get('variables') \ + or test_dict.get('variable_binds', OrderedDict()) self.context.update_context_variables(variables, level) - request_config = config_dict.get('request', {}) + request_config = test_dict.get('request', {}) parsed_request = self.context.get_parsed_request(request_config, level) base_url = parsed_request.pop("base_url", None) @@ -165,7 +164,7 @@ class Runner(object): # prepare extractors = teststep_dict.get("extract", []) or teststep_dict.get("extractors", []) validators = teststep_dict.get("validate", []) or teststep_dict.get("validators", []) - parsed_request = self.init_config(teststep_dict, level="teststep") + parsed_request = self.init_test(teststep_dict, level="teststep") self.context.update_teststep_variables_mapping("request", parsed_request) # setup hooks diff --git a/httprunner/utils.py b/httprunner/utils.py index febb71c6..83ca7c4d 100644 --- a/httprunner/utils.py +++ b/httprunner/utils.py @@ -162,19 +162,19 @@ def lower_dict_keys(origin_dict): for key, value in origin_dict.items() } -def lower_config_dict_key(config_dict): - """ convert key in config dict to lower case, convertion will occur in three places: - 1, all keys in config dict; - 2, all keys in config["request"] +def lower_test_dict_keys(test_dict): + """ convert keys in test_dict to lower case, convertion will occur in two places: + 1, all keys in test_dict; + 2, all keys in test_dict["request"] """ - # convert keys in config dict - config_dict = lower_dict_keys(config_dict) + # convert keys in test_dict + test_dict = lower_dict_keys(test_dict) - if "request" in config_dict: - # convert keys in config["request"] - config_dict["request"] = lower_dict_keys(config_dict["request"]) + if "request" in test_dict: + # convert keys in test_dict["request"] + test_dict["request"] = lower_dict_keys(test_dict["request"]) - return config_dict + return test_dict def convert_mappinglist_to_orderdict(mapping_list): """ convert mapping list to ordered dict diff --git a/tests/test_runner.py b/tests/test_runner.py index 5a5ff67f..ec57ee99 100644 --- a/tests/test_runner.py +++ b/tests/test_runner.py @@ -184,7 +184,7 @@ class TestRunner(ApiServerUnittest): "teardown_hooks": ["${teardown_hook_sleep_N_secs($response, 2)}"] } config_dict = {} - self.test_runner.init_config(config_dict, "testcase") + self.test_runner.init_test(config_dict, "testcase") start_time = time.time() self.test_runner.run_test(test) @@ -215,7 +215,7 @@ class TestRunner(ApiServerUnittest): "teardown_hooks": ["${teardown_hook_sleep_N_secs($response, 2)}"] } config_dict = {} - self.test_runner.init_config(config_dict, "testcase") + self.test_runner.init_test(config_dict, "testcase") start_time = time.time() self.test_runner.run_test(test) @@ -241,7 +241,7 @@ class TestRunner(ApiServerUnittest): os.getcwd(), 'tests/data/test_bugfix.yml') testcases = loader.load_file(testcase_file_path) config_dict = {} - self.test_runner.init_config(config_dict, "testcase") + self.test_runner.init_test(config_dict, "testcase") test = testcases[2]["test"] self.test_runner.run_test(test) diff --git a/tests/test_utils.py b/tests/test_utils.py index d0984519..ce7dede0 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -167,7 +167,7 @@ class TestUtils(ApiServerUnittest): } } } - new_dict = utils.lower_config_dict_key(origin_dict) + new_dict = utils.lower_test_dict_keys(origin_dict) self.assertIn("name", new_dict) self.assertIn("request", new_dict) self.assertIn("method", new_dict["request"]) @@ -179,7 +179,7 @@ class TestUtils(ApiServerUnittest): "Name": "test", "Request": "$default_request" } - new_dict = utils.lower_config_dict_key(origin_dict) + new_dict = utils.lower_test_dict_keys(origin_dict) self.assertIn("$default_request", new_dict["request"]) def test_lower_dict_keys(self):