Skip to content

Commit 4fcacde

Browse files
fix #6341 - disallow session/config in Node.from_parent
1 parent 466bbbf commit 4fcacde

File tree

6 files changed

+11
-7
lines changed

6 files changed

+11
-7
lines changed

changelog/6341.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Disallow passing session/config to Node.from_parent.

changelog/6387.feature.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Enable the usage of super().from_parent for Node subclasses.

src/_pytest/doctest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ def __init__(self, name, parent, runner=None, dtest=None):
217217

218218
@classmethod
219219
def from_parent(cls, parent, *, name, runner, dtest):
220-
return cls._create(name=name, parent=parent, runner=runner, dtest=dtest)
220+
return super().from_parent(name=name, parent=parent, runner=runner, dtest=dtest)
221221

222222
def setup(self):
223223
if self.dtest is not None:

src/_pytest/nodes.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,10 @@ def __init__(
144144
self._nodeid += "::" + self.name
145145

146146
@classmethod
147-
def from_parent(cls, parent, *, name):
148-
return cls._create(parent=parent, name=name)
147+
def from_parent(cls, parent, **kw):
148+
assert "config" not in kw
149+
assert "session" not in kw
150+
return cls._create(parent=parent, **kw)
149151

150152
@property
151153
def ihook(self):
@@ -434,7 +436,7 @@ def __init__(
434436

435437
@classmethod
436438
def from_parent(cls, parent, *, fspath):
437-
return cls._create(parent=parent, fspath=fspath)
439+
return super().from_parent(parent=parent, fspath=fspath)
438440

439441

440442
class File(FSCollector):

src/_pytest/python.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -679,7 +679,7 @@ class Class(PyCollector):
679679

680680
@classmethod
681681
def from_parent(cls, parent, *, name, obj=None):
682-
return cls._create(name=name, parent=parent)
682+
return super().from_parent(name=name, parent=parent)
683683

684684
def collect(self):
685685
if not safe_getattr(self.obj, "__test__", True):
@@ -1459,7 +1459,7 @@ def __init__(
14591459

14601460
@classmethod
14611461
def from_parent(cls, parent, **kw):
1462-
return cls._create(parent=parent, **kw)
1462+
return super().from_parent(parent=parent, **kw)
14631463

14641464
def _initrequest(self):
14651465
self.funcargs = {}

testing/python/collect.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ def make_function(testdir, **kwargs):
284284
session = testdir.Session.from_config(config)
285285
session._fixturemanager = FixtureManager(session)
286286

287-
return pytest.Function.from_parent(config=config, parent=session, **kwargs)
287+
return pytest.Function.from_parent(parent=session, **kwargs)
288288

289289
def test_function_equality(self, testdir, tmpdir):
290290
def func1():

0 commit comments

Comments
 (0)