nodes: keep plugins which subclass Item, File working for a bit more

Fix #8435.
This commit is contained in:
Ran Benita 2021-11-08 09:17:46 +02:00
parent 86446edc86
commit 9f6cd8e916
2 changed files with 7 additions and 3 deletions

View File

@ -669,9 +669,13 @@ class Item(Node):
nodeid: Optional[str] = None, nodeid: Optional[str] = None,
**kw, **kw,
) -> None: ) -> None:
# The first two arguments are intentionally passed postionally,
# to keep plugins who define a node type which inherits from
# (pytest.Item, pytest.File) working (see issue #8435).
# They can be made kwargs when the deprecation above is done.
super().__init__( super().__init__(
name=name, name,
parent=parent, parent,
config=config, config=config,
session=session, session=session,
nodeid=nodeid, nodeid=nodeid,

View File

@ -71,7 +71,7 @@ def test_subclassing_both_item_and_collector_deprecated(
), ),
): ):
class SoWrong(nodes.File, nodes.Item): class SoWrong(nodes.Item, nodes.File):
def __init__(self, fspath, parent): def __init__(self, fspath, parent):
"""Legacy ctor with legacy call # don't wana see""" """Legacy ctor with legacy call # don't wana see"""
super().__init__(fspath, parent) super().__init__(fspath, parent)