Skip to content

Commit a51f9de

Browse files
committed
Implement trimming whitespace for named args in cucumber expression
1 parent 8272b12 commit a51f9de

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

python/cucumber_expressions/expression.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ def parse_parameter_name(
105105
) -> Tuple[Optional[str], Optional[ParameterType]]:
106106
"""Helper function to parse the parameter name and return group_name and parameter_type."""
107107
if ":" in name:
108-
group_name, parameter_type_name = name.split(":")
108+
group_name, parameter_type_name = [part.strip() for part in name.split(":")]
109109
parameter_type = self.parameter_type_registry.lookup_by_type_name(
110110
parameter_type_name
111111
)

python/tests/test_expression.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ def test_documents_match_arguments_with_names(self):
5555
values = match("I have {cuke_count:int} cuke(s)", "I have 7 cukes")
5656
assert values[0] == (7, "cuke_count")
5757

58+
def test_documents_match_arguments_with_names_and_spaces(self):
59+
values = match(
60+
"I have { cuke_count : int } cuke(s) and {gherkin_count: int} gherkin(s)",
61+
"I have 7 cukes and 4 gherkins",
62+
)
63+
assert values[0] == (7, "cuke_count")
64+
assert values[1] == (4, "gherkin_count")
65+
5866
def test_matches_float(self):
5967
assert match("{float}", "") is None
6068
assert match("{float}", ".") is None

0 commit comments

Comments
 (0)