Skip to content

Commit 5c02da2

Browse files
committed
Inline functin _find_step_function
1 parent e7c7f54 commit 5c02da2

File tree

1 file changed

+11
-20
lines changed

1 file changed

+11
-20
lines changed

pytest_bdd/scenario.py

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,16 @@
1212
"""
1313
from __future__ import annotations
1414

15-
import collections
1615
import os
1716
import re
1817
from typing import TYPE_CHECKING, Callable, cast
1918

2019
import pytest
21-
from _pytest.fixtures import FixtureLookupError, FixtureManager, FixtureRequest, call_fixture_func
20+
from _pytest.fixtures import FixtureManager, FixtureRequest, call_fixture_func
2221

2322
from . import exceptions
2423
from .feature import get_feature, get_features
25-
from .steps import StepFunctionContext, get_step_fixture_name, inject_fixture
24+
from .steps import StepFunctionContext, inject_fixture
2625
from .utils import CONFIG_STACK, get_args, get_caller_module_locals, get_caller_module_path
2726

2827
if TYPE_CHECKING:
@@ -54,18 +53,6 @@ def find_argumented_step_function(name: str, type_: str, fixturemanager: Fixture
5453
return None
5554

5655

57-
def _find_step_function(request: FixtureRequest, step: Step, scenario: Scenario) -> StepFunctionContext:
58-
"""Match the step defined by the parser."""
59-
# Could not find a fixture with the same name, let's see if there is a parser involved
60-
step_func_context = find_argumented_step_function(step.name, step.type, request._fixturemanager)
61-
if step_func_context is None:
62-
raise exceptions.StepDefinitionNotFoundError(
63-
f"Step definition is not found: {step}. "
64-
f'Line {step.line_number} in scenario "{scenario.name}" in the feature "{scenario.feature.filename}"'
65-
)
66-
return step_func_context
67-
68-
6956
def _execute_step_function(
7057
request: FixtureRequest, scenario: Scenario, step: Step, context: StepFunctionContext
7158
) -> None:
@@ -120,13 +107,17 @@ def _execute_scenario(feature: Feature, scenario: Scenario, request: FixtureRequ
120107
request.config.hook.pytest_bdd_before_scenario(request=request, feature=feature, scenario=scenario)
121108

122109
for step in scenario.steps:
123-
try:
124-
step_func_context = _find_step_function(request, step, scenario)
125-
except exceptions.StepDefinitionNotFoundError as exception:
110+
context = find_argumented_step_function(step.name, step.type, request._fixturemanager)
111+
if context is None:
112+
exc = exceptions.StepDefinitionNotFoundError(
113+
f"Step definition is not found: {step}. "
114+
f'Line {step.line_number} in scenario "{scenario.name}" in the feature "{scenario.feature.filename}"'
115+
)
126116
request.config.hook.pytest_bdd_step_func_lookup_error(
127-
request=request, feature=feature, scenario=scenario, step=step, exception=exception
117+
request=request, feature=feature, scenario=scenario, step=step, exception=exc
128118
)
129-
raise
119+
raise exc
120+
step_func_context = context
130121

131122
try:
132123
_execute_step_function(request, scenario, step, step_func_context)

0 commit comments

Comments
 (0)