23
23
from typing_extensions import ParamSpec
24
24
25
25
from . import exceptions
26
+ from .compat import getfixturedefs
26
27
from .feature import get_feature , get_features
27
28
from .steps import StepFunctionContext , get_step_fixture_name , inject_fixture
28
29
from .utils import CONFIG_STACK , get_args , get_caller_module_locals , get_caller_module_path
29
30
30
31
if TYPE_CHECKING :
31
32
from _pytest .mark .structures import ParameterSet
33
+ from _pytest .nodes import Node
32
34
33
35
from .parser import Feature , Scenario , ScenarioTemplate , Step
34
36
42
44
ALPHA_REGEX = re .compile (r"^\d+_*" )
43
45
44
46
45
- def find_fixturedefs_for_step (step : Step , fixturemanager : FixtureManager , node ) -> Iterable [FixtureDef [Any ]]:
47
+ def find_fixturedefs_for_step (step : Step , fixturemanager : FixtureManager , node : Node ) -> Iterable [FixtureDef [Any ]]:
46
48
"""Find the fixture defs that can parse a step."""
47
49
# happens to be that _arg2fixturedefs is changed during the iteration so we use a copy
48
50
fixture_def_by_name = list (fixturemanager ._arg2fixturedefs .items ())
@@ -59,10 +61,7 @@ def find_fixturedefs_for_step(step: Step, fixturemanager: FixtureManager, node)
59
61
if not match :
60
62
continue
61
63
62
- if hasattr (pytest , "version_tuple" ) and pytest .version_tuple >= (8 , 1 ):
63
- fixturedefs = fixturemanager .getfixturedefs (fixturename , node )
64
- else :
65
- fixturedefs = fixturemanager .getfixturedefs (fixturename , node .nodeid )
64
+ fixturedefs = getfixturedefs (fixturemanager , fixturename , node )
66
65
if fixturedef not in (fixturedefs or []):
67
66
continue
68
67
@@ -117,7 +116,7 @@ def iterparentnodeids(nodeid: str) -> Iterator[str]:
117
116
118
117
119
118
@contextlib .contextmanager
120
- def inject_fixturedefs_for_step (step : Step , fixturemanager : FixtureManager , node ) -> Iterator [None ]:
119
+ def inject_fixturedefs_for_step (step : Step , fixturemanager : FixtureManager , node : Node ) -> Iterator [None ]:
121
120
"""Inject fixture definitions that can parse a step.
122
121
123
122
We fist iterate over all the fixturedefs that can parse the step.
0 commit comments