Add test for collecting recursive symlinks

This commit is contained in:
Andrzej Klajnert 2022-09-11 10:33:53 +02:00
parent 85da6cad11
commit 569dfaf513
1 changed files with 24 additions and 0 deletions

View File

@ -274,6 +274,30 @@ class TestCollectFS:
items, reprec = pytester.inline_genitems()
assert [x.name for x in items] == ["test_%s" % dirname]
@pytest.mark.parametrize("absolute", [True, False])
def test_recursive_symlinks(self, pytester, absolute):
"""Make sure recursive symlinks won't cause multiple collection of the same file."""
directory = pytester.mkdir("dir")
ensure_file(directory / "test_recursive.py").write_text(
"def test_recursive(): pass"
)
symlink_or_skip(str(directory) if absolute else ".", "dir/link")
items, _ = pytester.inline_genitems()
assert len(items) == 1
def test_multiple_recursive_symlinks(self, pytester):
"""Symlink points to recursive symlink. Should be resolved to the very end."""
directory = pytester.mkdir("dir")
ensure_file(directory / "test_recursive.py").write_text(
"def test_recursive(): pass"
)
symlink_or_skip(".", "dir/link")
symlink_or_skip("link", "dir/link2")
items, _ = pytester.inline_genitems()
assert len(items) == 1
class TestCollectPluginHookRelay:
def test_pytest_collect_file(self, pytester: Pytester) -> None: