@@ -505,8 +505,7 @@ def _parse_and_add_rule(self, rule_data: GherkinRule, feature: Feature) -> None:
505
505
rule .add_background (background )
506
506
507
507
# Parse and add scenarios under the rule
508
- for rule_scenario in self ._extract_rule_scenarios (rule_data ):
509
- scenario = self .parse_scenario (rule_scenario , feature , rule )
508
+ for scenario in self ._extract_rule_scenarios (rule_data , feature , rule ):
510
509
feature .scenarios [scenario .name ] = scenario
511
510
512
511
def _extract_rule_background (self , rule_data : GherkinRule ) -> Background | None :
@@ -516,12 +515,13 @@ def _extract_rule_background(self, rule_data: GherkinRule) -> Background | None:
516
515
return self .parse_background (child .background )
517
516
return None
518
517
519
- @staticmethod
520
- def _extract_rule_scenarios (rule_data : GherkinRule ) -> Generator [GherkinScenario ]:
521
- """Yield each scenario under a rule."""
518
+ def _extract_rule_scenarios (
519
+ self , rule_data : GherkinRule , feature : Feature , rule : Rule
520
+ ) -> Generator [ScenarioTemplate ]:
521
+ """Yield each parsed scenario under a rule."""
522
522
for child in rule_data .children :
523
523
if child .scenario :
524
- yield child .scenario
524
+ yield self . parse_scenario ( child .scenario , feature , rule )
525
525
526
526
def _parse_and_add_scenario (
527
527
self , scenario_data : GherkinScenario , feature : Feature , rule : Rule | None = None
0 commit comments