Merge pull request #11043 from bluetech/confcutdir-rootpath
config: fallback confcutdir to rootpath if inipath is not set
This commit is contained in:
commit
24534cdd29
|
@ -0,0 +1,3 @@
|
|||
When `--confcutdir` is not specified, and there is no config file present, the conftest cutoff directory (`--confcutdir`) is now set to the :ref:`rootdir`.
|
||||
Previously in such cases, `conftest.py` files would be probed all the way to the root directory of the filesystem.
|
||||
If you are badly affected by this change, consider adding an empty config file to your desired cutoff directory, or explicitly set `--confcutdir`.
|
|
@ -1261,8 +1261,11 @@ class Config:
|
|||
_pytest.deprecated.STRICT_OPTION, stacklevel=2
|
||||
)
|
||||
|
||||
if self.known_args_namespace.confcutdir is None and self.inipath is not None:
|
||||
confcutdir = str(self.inipath.parent)
|
||||
if self.known_args_namespace.confcutdir is None:
|
||||
if self.inipath is not None:
|
||||
confcutdir = str(self.inipath.parent)
|
||||
else:
|
||||
confcutdir = str(self.rootpath)
|
||||
self.known_args_namespace.confcutdir = confcutdir
|
||||
try:
|
||||
self.hook.pytest_load_initial_conftests(
|
||||
|
|
|
@ -179,6 +179,23 @@ class TestParseIni:
|
|||
assert result.ret != 0
|
||||
result.stderr.fnmatch_lines("ERROR: *pyproject.toml: Invalid statement*")
|
||||
|
||||
def test_confcutdir_default_without_configfile(self, pytester: Pytester) -> None:
|
||||
# If --confcutdir is not specified, and there is no configfile, default
|
||||
# to the roothpath.
|
||||
sub = pytester.mkdir("sub")
|
||||
os.chdir(sub)
|
||||
config = pytester.parseconfigure()
|
||||
assert config.pluginmanager._confcutdir == sub
|
||||
|
||||
def test_confcutdir_default_with_configfile(self, pytester: Pytester) -> None:
|
||||
# If --confcutdir is not specified, and there is a configfile, default
|
||||
# to the configfile's directory.
|
||||
pytester.makeini("[pytest]")
|
||||
sub = pytester.mkdir("sub")
|
||||
os.chdir(sub)
|
||||
config = pytester.parseconfigure()
|
||||
assert config.pluginmanager._confcutdir == pytester.path
|
||||
|
||||
@pytest.mark.xfail(reason="probably not needed")
|
||||
def test_confcutdir(self, pytester: Pytester) -> None:
|
||||
sub = pytester.mkdir("sub")
|
||||
|
|
|
@ -594,7 +594,13 @@ class TestConftestVisibility:
|
|||
print("pytestarg : %s" % testarg)
|
||||
print("expected pass : %s" % expect_ntests_passed)
|
||||
os.chdir(dirs[chdir])
|
||||
reprec = pytester.inline_run(testarg, "-q", "--traceconfig")
|
||||
reprec = pytester.inline_run(
|
||||
testarg,
|
||||
"-q",
|
||||
"--traceconfig",
|
||||
"--confcutdir",
|
||||
pytester.path,
|
||||
)
|
||||
reprec.assertoutcome(passed=expect_ntests_passed)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue