fix #260: auto remove space in function args

This commit is contained in:
debugtalk
2018-06-02 22:32:07 +08:00
parent 227ea6c650
commit 50dfd40705
2 changed files with 16 additions and 2 deletions

View File

@@ -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))

View File

@@ -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 = {