From 02dc81377903e5da214a307bad697dba75ac0975 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Thu, 3 Aug 2017 12:02:37 +0800 Subject: [PATCH] bugfix: when a variable binds to None, it should not raise exception --- ate/testcase.py | 4 ++-- tests/test_testcase.py | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ate/testcase.py b/ate/testcase.py index 305da840..fc807891 100644 --- a/ate/testcase.py +++ b/ate/testcase.py @@ -37,11 +37,11 @@ def parse_variables(content, variable_mapping): """ variable_name_list = get_contain_variables(content) for variable_name in variable_name_list: - variable_value = variable_mapping.get(variable_name) - if variable_value is None: + if variable_name not in variable_mapping: raise ParamsError( "%s is not defined in bind variables!" % variable_name) + variable_value = variable_mapping.get(variable_name) if "${}".format(variable_name) == content: # content is a variable content = variable_value diff --git a/tests/test_testcase.py b/tests/test_testcase.py index 44ef2678..137d2527 100644 --- a/tests/test_testcase.py +++ b/tests/test_testcase.py @@ -58,7 +58,8 @@ class TestcaseParserUnittest(unittest.TestCase): "var_2": "def", "var_3": 123, "var_4": {"a": 1}, - "var_5": True + "var_5": True, + "var_6": None } self.assertEqual( testcase.parse_variables("$var_1", variable_mapping), @@ -104,6 +105,10 @@ class TestcaseParserUnittest(unittest.TestCase): testcase.parse_variables("abc$var_4", variable_mapping), "abc{'a': 1}" ) + self.assertEqual( + testcase.parse_variables("$var_6", variable_mapping), + None + ) def test_is_functon(self): self.assertTrue(testcase.is_functon("${func()}"))