diff --git a/src/_pytest/config/__init__.py b/src/_pytest/config/__init__.py index 25f156f8b20..e9f7d3cf29c 100644 --- a/src/_pytest/config/__init__.py +++ b/src/_pytest/config/__init__.py @@ -998,6 +998,7 @@ def __init__( self.hook.pytest_addoption.call_historic( kwargs=dict(parser=self._parser, pluginmanager=self.pluginmanager) ) + self.args_source = Config.ArgsSource.ARGS if TYPE_CHECKING: from _pytest.cacheprovider import Cache @@ -1368,7 +1369,7 @@ def parse(self, args: List[str], addopts: bool = True) -> None: self.args = args self.args_source = source except PrintHelp: - pass + self.args = [] def issue_config_time_warning(self, warning: Warning, stacklevel: int) -> None: """Issue and handle a warning during the "configure" stage. diff --git a/src/_pytest/main.py b/src/_pytest/main.py index 8bbc1eec14b..61fb7eaa4e3 100644 --- a/src/_pytest/main.py +++ b/src/_pytest/main.py @@ -619,7 +619,7 @@ def perform_collect( # noqa: F811 and ``session.items`` is empty. """ if args is None: - args = self.config.args if hasattr(self.config, "args") else () + args = self.config.args self.trace("perform_collect", self, args) self.trace.root.indent += 1 diff --git a/src/_pytest/terminal.py b/src/_pytest/terminal.py index 34bc9719eee..d60ad7513fa 100644 --- a/src/_pytest/terminal.py +++ b/src/_pytest/terminal.py @@ -737,10 +737,7 @@ def pytest_report_header(self, config: Config) -> List[str]: if config.inipath: line += ", configfile: " + bestrelpath(config.rootpath, config.inipath) - if ( - hasattr(config, "args_source") - and config.args_source == Config.ArgsSource.TESTPATHS - ): + if config.args_source == Config.ArgsSource.TESTPATHS: testpaths: List[str] = config.getini("testpaths") line += ", testpaths: {}".format(", ".join(testpaths))