From a9a8a4ba659134e2937aeea5b73507ddc91e5a97 Mon Sep 17 00:00:00 2001 From: Jason Allen Date: Sat, 8 Mar 2025 10:14:39 +0000 Subject: [PATCH] [Py] Handle case where line_tokens in Description AST node can be an empty list --- python/gherkin/ast_builder.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/python/gherkin/ast_builder.py b/python/gherkin/ast_builder.py index 15a50a55c..8f3ca0fe1 100644 --- a/python/gherkin/ast_builder.py +++ b/python/gherkin/ast_builder.py @@ -268,15 +268,13 @@ def transform_node( return self.get_table_rows(node) elif node.rule_type == "Description": line_tokens = node.get_tokens("Other") + tokens = list(line_tokens) + # Trim trailing empty lines - last_non_empty = next( - i for i, j in reversed(list(enumerate(line_tokens))) if j.matched_text - ) - description = "\n".join( - [token.matched_text for token in line_tokens[: last_non_empty + 1]] - ) + while tokens and not tokens[-1].matched_text: + tokens.pop() - return description + return "\n".join(token.matched_text for token in tokens) elif node.rule_type == "Rule": header = cast(Union[AstNode, None], node.get_single("RuleHeader")) if not header: