Merge pull request #4744 from blueyed/fix-4592-collectfile
Fix handling of collect_ignore from parent conftest
This commit is contained in:
commit
5ca81596bb
|
@ -0,0 +1 @@
|
||||||
|
Fix handling of ``collect_ignore`` via parent ``conftest.py``.
|
|
@ -607,6 +607,7 @@ class Session(nodes.FSCollector):
|
||||||
yield y
|
yield y
|
||||||
|
|
||||||
def _collectfile(self, path, handle_dupes=True):
|
def _collectfile(self, path, handle_dupes=True):
|
||||||
|
assert path.isfile()
|
||||||
ihook = self.gethookproxy(path)
|
ihook = self.gethookproxy(path)
|
||||||
if not self.isinitpath(path):
|
if not self.isinitpath(path):
|
||||||
if ihook.pytest_ignore_collect(path=path, config=self.config):
|
if ihook.pytest_ignore_collect(path=path, config=self.config):
|
||||||
|
|
|
@ -599,6 +599,7 @@ class Package(Module):
|
||||||
return proxy
|
return proxy
|
||||||
|
|
||||||
def _collectfile(self, path, handle_dupes=True):
|
def _collectfile(self, path, handle_dupes=True):
|
||||||
|
assert path.isfile()
|
||||||
ihook = self.gethookproxy(path)
|
ihook = self.gethookproxy(path)
|
||||||
if not self.isinitpath(path):
|
if not self.isinitpath(path):
|
||||||
if ihook.pytest_ignore_collect(path=path, config=self.config):
|
if ihook.pytest_ignore_collect(path=path, config=self.config):
|
||||||
|
@ -642,9 +643,10 @@ class Package(Module):
|
||||||
):
|
):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if path.isdir() and path.join("__init__.py").check(file=1):
|
if path.isdir():
|
||||||
|
if path.join("__init__.py").check(file=1):
|
||||||
pkg_prefixes.add(path)
|
pkg_prefixes.add(path)
|
||||||
|
else:
|
||||||
for x in self._collectfile(path):
|
for x in self._collectfile(path):
|
||||||
yield x
|
yield x
|
||||||
|
|
||||||
|
|
|
@ -1144,3 +1144,16 @@ def test_collect_symlink_out_of_tree(testdir):
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
assert result.ret == 0
|
assert result.ret == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_collectignore_via_conftest(testdir, monkeypatch):
|
||||||
|
"""collect_ignore in parent conftest skips importing child (issue #4592)."""
|
||||||
|
tests = testdir.mkpydir("tests")
|
||||||
|
tests.ensure("conftest.py").write("collect_ignore = ['ignore_me']")
|
||||||
|
|
||||||
|
ignore_me = tests.mkdir("ignore_me")
|
||||||
|
ignore_me.ensure("__init__.py")
|
||||||
|
ignore_me.ensure("conftest.py").write("assert 0, 'should_not_be_called'")
|
||||||
|
|
||||||
|
result = testdir.runpytest()
|
||||||
|
assert result.ret == EXIT_NOTESTSCOLLECTED
|
||||||
|
|
Loading…
Reference in New Issue