Merge master into features
This commit is contained in:
commit
9c03196e79
|
@ -0,0 +1 @@
|
|||
Fix handling of ``collect_ignore`` via parent ``conftest.py``.
|
|
@ -5,6 +5,7 @@ requires = [
|
|||
"setuptools-scm",
|
||||
"wheel",
|
||||
]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.towncrier]
|
||||
package = "pytest"
|
||||
|
|
|
@ -607,6 +607,7 @@ class Session(nodes.FSCollector):
|
|||
yield y
|
||||
|
||||
def _collectfile(self, path, handle_dupes=True):
|
||||
assert path.isfile()
|
||||
ihook = self.gethookproxy(path)
|
||||
if not self.isinitpath(path):
|
||||
if ihook.pytest_ignore_collect(path=path, config=self.config):
|
||||
|
|
|
@ -599,6 +599,7 @@ class Package(Module):
|
|||
return proxy
|
||||
|
||||
def _collectfile(self, path, handle_dupes=True):
|
||||
assert path.isfile()
|
||||
ihook = self.gethookproxy(path)
|
||||
if not self.isinitpath(path):
|
||||
if ihook.pytest_ignore_collect(path=path, config=self.config):
|
||||
|
@ -642,11 +643,12 @@ class Package(Module):
|
|||
):
|
||||
continue
|
||||
|
||||
if path.isdir() and path.join("__init__.py").check(file=1):
|
||||
pkg_prefixes.add(path)
|
||||
|
||||
for x in self._collectfile(path):
|
||||
yield x
|
||||
if path.isdir():
|
||||
if path.join("__init__.py").check(file=1):
|
||||
pkg_prefixes.add(path)
|
||||
else:
|
||||
for x in self._collectfile(path):
|
||||
yield x
|
||||
|
||||
|
||||
def _get_xunit_setup_teardown(holder, attr_name, param_obj=None):
|
||||
|
|
|
@ -1144,3 +1144,16 @@ def test_collect_symlink_out_of_tree(testdir):
|
|||
]
|
||||
)
|
||||
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
|
||||
|
|
5
tox.ini
5
tox.ini
|
@ -1,5 +1,6 @@
|
|||
[tox]
|
||||
minversion = 2.0
|
||||
isolated_build = True
|
||||
minversion = 3.3
|
||||
distshare = {homedir}/.tox/distshare
|
||||
# make sure to update environment list in travis.yml and appveyor.yml
|
||||
envlist =
|
||||
|
@ -166,7 +167,9 @@ commands =
|
|||
|
||||
[testenv:py37-freeze]
|
||||
changedir = testing/freeze
|
||||
# Disable PEP 517 with pip, which does not work with PyInstaller currently.
|
||||
deps =
|
||||
--no-use-pep517
|
||||
pyinstaller
|
||||
commands =
|
||||
{envpython} create_executable.py
|
||||
|
|
Loading…
Reference in New Issue