Skip to content

Commit b44dd0e

Browse files
committed
Adapt to getfixturedefs change in pytest 8.1
The signature of this (private) function will change in the upcoming pytest 8.1 release: pytest-dev/pytest#11785
1 parent b098d82 commit b44dd0e

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/pytest_cases/plugin.py

+13-7
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,11 @@ class FixtureDefsCache(object):
8484
"""
8585
A 'cache' for fixture definitions obtained from the FixtureManager `fm`, for test node `nodeid`
8686
"""
87-
__slots__ = 'fm', 'nodeid', 'cached_fix_defs'
87+
__slots__ = 'fm', 'node', 'cached_fix_defs'
8888

89-
def __init__(self, fm, nodeid):
89+
def __init__(self, fm, node):
9090
self.fm = fm
91-
self.nodeid = nodeid
91+
self.node = node
9292
self.cached_fix_defs = dict()
9393

9494
def get_fixture_defs(self, fixname):
@@ -97,7 +97,10 @@ def get_fixture_defs(self, fixname):
9797
fixdefs = self.cached_fix_defs[fixname]
9898
except KeyError:
9999
# otherwise get it and store for next time
100-
fixdefs = self.fm.getfixturedefs(fixname, self.nodeid)
100+
if hasattr(pytest, "version_tuple") and pytest.version_tuple >= (8, 1):
101+
fixdefs = self.fm.getfixturedefs(fixname, self.node)
102+
else:
103+
fixdefs = self.fm.getfixturedefs(fixname, self.node.nodeid)
101104
self.cached_fix_defs[fixname] = fixdefs
102105

103106
return fixdefs
@@ -692,7 +695,7 @@ def insert(self, index, fixture_name):
692695
"""
693696
if index == 0:
694697
# build the closure associated with this new fixture name
695-
fixture_defs_mgr = FixtureDefsCache(self.tree.fixture_defs_mgr.fm, self.tree.fixture_defs_mgr.nodeid)
698+
fixture_defs_mgr = FixtureDefsCache(self.tree.fixture_defs_mgr.fm, self.tree.fixture_defs_mgr.node)
696699
closure_tree = FixtureClosureNode(fixture_defs_mgr=fixture_defs_mgr)
697700
closure_tree.build_closure((fixture_name,))
698701
if closure_tree.has_split():
@@ -805,7 +808,10 @@ def create_super_closure(fm,
805808
print("Creating closure for %s:" % parentid)
806809

807810
# -- auto-use fixtures
808-
_init_fixnames = list(fm._getautousenames(parentid)) # noqa
811+
if hasattr(pytest, "version_tuple") and pytest.version_tuple >= (8, 1):
812+
_init_fixnames = list(fm._getautousenames(parentnode)) # noqa
813+
else:
814+
_init_fixnames = list(fm._getautousenames(parentid)) # noqa
809815

810816
def _merge(new_items, into_list):
811817
""" Appends items from `new_items` into `into_list`, only if they are not already there. """
@@ -830,7 +836,7 @@ def _merge(new_items, into_list):
830836
_merge(fixturenames, _init_fixnames)
831837

832838
# Finally create the closure
833-
fixture_defs_mgr = FixtureDefsCache(fm, parentid)
839+
fixture_defs_mgr = FixtureDefsCache(fm, parentnode)
834840
closure_tree = FixtureClosureNode(fixture_defs_mgr=fixture_defs_mgr)
835841
closure_tree.build_closure(_init_fixnames, ignore_args=ignore_args)
836842
super_closure = SuperClosure(closure_tree)

0 commit comments

Comments
 (0)