From d568059ffccf03b7feaba1cca365732567a919e9 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 28 Dec 2018 14:29:38 +0800 Subject: [PATCH] bugfix: extend_variables --- httprunner/utils.py | 6 ++++-- tests/test_parser.py | 2 +- tests/test_utils.py | 6 ++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/httprunner/utils.py b/httprunner/utils.py index 9dd39618..4cfe6d2a 100644 --- a/httprunner/utils.py +++ b/httprunner/utils.py @@ -418,10 +418,12 @@ def extend_variables(raw_variables, override_variables): """ if not raw_variables: - return override_variables + override_variables_mapping = ensure_mapping_format(override_variables) + return override_variables_mapping elif not override_variables: - return raw_variables + raw_variables_mapping = ensure_mapping_format(raw_variables) + return raw_variables_mapping else: raw_variables_mapping = ensure_mapping_format(raw_variables) diff --git a/tests/test_parser.py b/tests/test_parser.py index 9f64dce4..c039f141 100644 --- a/tests/test_parser.py +++ b/tests/test_parser.py @@ -787,7 +787,7 @@ class TestParser(unittest.TestCase): extended_block = parser._extend_with_api(test_block, api_def_dict) self.assertEqual(extended_block["base_url"], "https://debugtalk.com") self.assertEqual(extended_block["name"], "override block") - self.assertIn({'var': 123}, extended_block["variables"]) + self.assertEqual({'var': 123}, extended_block["variables"]) self.assertIn({'check': 'status_code', 'expect': 201, 'comparator': 'eq'}, extended_block["validate"]) self.assertIn({'check': 'content.token', 'comparator': 'len_eq', 'expect': 32}, extended_block["validate"]) self.assertEqual(extended_block["times"], 3) diff --git a/tests/test_utils.py b/tests/test_utils.py index d21d9842..354a906a 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -268,6 +268,12 @@ class TestUtils(ApiServerUnittest): self.assertEqual(extended_variables_mapping["var2"], "val2") self.assertEqual(extended_variables_mapping["var3"], "val3") + def test_extend_variables_fix(self): + raw_variables = [{"var1": "val1"}, {"var2": "val2"}] + override_variables = {} + extended_variables_mapping = utils.extend_variables(raw_variables, override_variables) + self.assertEqual(extended_variables_mapping["var1"], "val1") + def test_deepcopy_dict(self): data = { 'a': 1,