Skip to content

Commit 544c81f

Browse files
committed
Fixing latest pytest compatibility
1 parent 5361602 commit 544c81f

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

pytest_bdd/scenario.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616
import re
1717

1818
import pytest
19-
from _pytest import python
19+
try:
20+
from _pytest import fixtures as pytest_fixtures
21+
except ImportError:
22+
from _pytest import python as pytest_fixtures
2023
import six
2124

2225
from . import exceptions
@@ -69,7 +72,7 @@ def find_argumented_step_fixture_name(name, type_, fixturemanager, request=None)
6972
if request:
7073
try:
7174
request.getfuncargvalue(parser_name)
72-
except python.FixtureLookupError:
75+
except pytest_fixtures.FixtureLookupError:
7376
continue
7477
return parser_name
7578

@@ -87,13 +90,13 @@ def _find_step_function(request, step, scenario, encoding):
8790
name = step.name
8891
try:
8992
return request.getfuncargvalue(get_step_fixture_name(name, step.type, encoding))
90-
except python.FixtureLookupError:
93+
except pytest_fixtures.FixtureLookupError:
9194
try:
9295
name = find_argumented_step_fixture_name(name, step.type, request._fixturemanager, request)
9396
if name:
9497
return request.getfuncargvalue(name)
9598
raise
96-
except python.FixtureLookupError:
99+
except pytest_fixtures.FixtureLookupError:
97100
raise exceptions.StepDefinitionNotFoundError(
98101
u"""Step definition is not found: {step}."""
99102
""" Line {step.line_number} in scenario "{scenario.name}" in the feature "{feature.filename}""".format(
@@ -234,7 +237,7 @@ def _get_scenario_decorator(feature, feature_name, scenario, scenario_name, call
234237
scenario_name = force_encode(scenario_name, encoding)
235238

236239
def decorator(_pytestbdd_function):
237-
if isinstance(_pytestbdd_function, python.FixtureRequest):
240+
if isinstance(_pytestbdd_function, pytest_fixtures.FixtureRequest):
238241
raise exceptions.ScenarioIsDecoratorOnly(
239242
"scenario function can only be used as a decorator. Refer to the documentation.",
240243
)

pytest_bdd/steps.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ def article(author):
3737
import sys
3838

3939
import pytest
40-
from _pytest import python
40+
try:
41+
from _pytest import fixtures as pytest_fixtures
42+
except ImportError:
43+
from _pytest import python as pytest_fixtures
4144
import six
4245

4346
from .feature import parse_line, force_encode
@@ -293,10 +296,10 @@ def inject_fixture(request, arg, value):
293296
'params': None,
294297
}
295298

296-
if 'yieldctx' in get_args(python.FixtureDef.__init__):
299+
if 'yieldctx' in get_args(pytest_fixtures.FixtureDef.__init__):
297300
fd_kwargs['yieldctx'] = False
298301

299-
fd = python.FixtureDef(**fd_kwargs)
302+
fd = pytest_fixtures.FixtureDef(**fd_kwargs)
300303
fd.cached_result = (value, 0, None)
301304

302305
old_fd = getattr(request, "_fixturedefs", {}).get(arg)

0 commit comments

Comments
 (0)