diff --git a/httprunner/testcase.py b/httprunner/testcase.py index 9b21615e..46ec1c19 100644 --- a/httprunner/testcase.py +++ b/httprunner/testcase.py @@ -85,15 +85,16 @@ def parse_function(content): "kwargs": {} } - args_str = matched.group(2).replace(" ", "") + args_str = matched.group(2).strip() if args_str == "": return function_meta args_list = args_str.split(',') for arg in args_list: + arg = arg.strip() if '=' in arg: key, value = arg.split('=') - function_meta["kwargs"][key] = parse_string_value(value) + function_meta["kwargs"][key.strip()] = parse_string_value(value.strip()) else: function_meta["args"].append(parse_string_value(arg)) diff --git a/tests/test_testcase.py b/tests/test_testcase.py index b1cf356e..95221193 100644 --- a/tests/test_testcase.py +++ b/tests/test_testcase.py @@ -458,6 +458,19 @@ class TestcaseParserUnittest(unittest.TestCase): testcase.parse_function("func($request, 123)"), {'func_name': 'func', 'args': ["$request", 123], 'kwargs': {}} ) + self.assertEqual( + testcase.parse_function("func( )"), + {'func_name': 'func', 'args': [], 'kwargs': {}} + ) + self.assertEqual( + testcase.parse_function("func(hello world, a=3, b=4)"), + {'func_name': 'func', 'args': ["hello world"], 'kwargs': {'a': 3, 'b': 4}} + ) + self.assertEqual( + testcase.parse_function("func($request, 12 3)"), + {'func_name': 'func', 'args': ["$request", '12 3'], 'kwargs': {}} + ) + def test_parse_content_with_bindings_variables(self): variables = {