diff --git c/src/_pytest/nodes.py i/src/_pytest/nodes.py
index 4d12f07a2..00d501543 100644
--- c/src/_pytest/nodes.py
+++ i/src/_pytest/nodes.py
@@ -4,7 +4,6 @@
from pathlib import Path
from typing import Any
from typing import Callable
-from typing import cast
from typing import Iterable
from typing import Iterator
from typing import List
@@ -555,39 +554,26 @@ def _check_initialpaths_for_relpath(session: "Session", path: Path) -> Optional[
class FSCollector(Collector):
def __init__(
self,
- fspath: Optional[LEGACY_PATH] = None,
- path_or_parent: Optional[Union[Path, Node]] = None,
- path: Optional[Path] = None,
- name: Optional[str] = None,
- parent: Optional[Node] = None,
+ fspath: Optional[LEGACY_PATH],
+ path: Optional[Path],
+ parent=None,
config: Optional[Config] = None,
session: Optional["Session"] = None,
nodeid: Optional[str] = None,
) -> None:
- if path_or_parent:
- if isinstance(path_or_parent, Node):
- assert parent is None
- parent = cast(FSCollector, path_or_parent)
- elif isinstance(path_or_parent, Path):
- assert path is None
- path = path_or_parent
-
path, fspath = _imply_path(path, fspath=fspath)
- if name is None:
- name = path.name
- if parent is not None and parent.path != path:
- try:
- rel = path.relative_to(parent.path)
- except ValueError:
- pass
- else:
- name = str(rel)
- name = name.replace(os.sep, SEP)
+ name = path.name
+ if parent is not None and parent.path != path:
+ try:
+ rel = path.relative_to(parent.path)
+ except ValueError:
+ pass
+ else:
+ name = str(rel)
+ name = name.replace(os.sep, SEP)
self.path = path
- if session is None:
- assert parent is not None
- session = parent.session
+ session = session or parent.session
if nodeid is None:
try:
@@ -599,12 +585,7 @@ def __init__(
nodeid = nodeid.replace(os.sep, SEP)
super().__init__(
- name=name,
- parent=parent,
- config=config,
- session=session,
- nodeid=nodeid,
- path=path,
+ name, parent, config, session, nodeid=nodeid, fspath=fspath, path=path
)
@classmethod
@@ -665,16 +646,8 @@ def __init__(
config: Optional[Config] = None,
session: Optional["Session"] = None,
nodeid: Optional[str] = None,
- **kw,
) -> None:
- super().__init__(
- name=name,
- parent=parent,
- config=config,
- session=session,
- nodeid=nodeid,
- **kw,
- )
+ super().__init__(name, parent, config, session, nodeid=nodeid)
self._report_sections: List[Tuple[str, str, str]] = []
#: A list of tuples (name, value) that holds user defined properties
{"text":"text","html5":"html","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"lua","bash":"sh","erlang":"erlang","go":"golang","c":"c_cpp","cpp":"c_cpp","diff":"diff","latex":"latex","sql":"sql","xml":"xml","0":"text","abap":"abap","actionscript":"actionscript","actionscript3":"actionscript","ada":"ada","apache":"apache_conf","applescript":"applescript","asm":"assembly_x86","autohotkey":"autohotkey","closure":"closure","cobol":"cobol","coffeescript":"coffee","cpp-winapi":"c_cpp","c_loadrunner":"c_cpp","c_mac":"c_cpp","c_winapi":"c_cpp","csharp":"csharp","d":"d","dart":"dart","dot":"dot","eiffel":"eiffel","fortran":"fortran","groovy":"groovy","haskell":"haskell","haxe":"haxe","ini":"ini","io":"io","java":"java","java5":"java","make":"makefile","matlab":"matlab","mysql":"mysql","objc":"objectivec","ocaml":"ocaml","pascal":"pascal","perl":"perl","perl6":"perl","postgresql":"pgsql","powershell":"powershell","prolog":"prolog","properties":"properties","rails":"ruby","rust":"rust","scala":"scala","scheme":"scheme","smarty":"smarty","tcl":"tcl","vala":"vala","vb":"vbscript","verilog":"verilog","vhdl":"vhdl","yaml":"yaml"}