Skip to content

Commit 8cf0bbd

Browse files
committed
Merge pull request #7982 from bluetech/symlink-collect
pathlib: fix symlinked directories not followed during collection (cherry picked from commit a14a229) Changed pytester -> testdir.
1 parent 573860d commit 8cf0bbd

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

changelog/7981.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed symlinked directories not being followed during collection. Regressed in pytest 6.1.0.

src/_pytest/pathlib.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ def visit(
566566
entries = sorted(os.scandir(path), key=lambda entry: entry.name)
567567
yield from entries
568568
for entry in entries:
569-
if entry.is_dir(follow_symlinks=False) and recurse(entry):
569+
if entry.is_dir() and recurse(entry):
570570
yield from visit(entry.path, recurse)
571571

572572

testing/test_collection.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,6 +1178,15 @@ def test_nodeid(request):
11781178
assert result.ret == 0
11791179

11801180

1181+
def test_collect_symlink_dir(testdir: Testdir) -> None:
1182+
"""A symlinked directory is collected."""
1183+
dir = testdir.mkdir("dir")
1184+
dir.join("test_it.py").write("def test_it(): pass")
1185+
symlink_or_skip(dir, testdir.tmpdir.join("symlink_dir"))
1186+
result = testdir.runpytest()
1187+
result.assert_outcomes(passed=2)
1188+
1189+
11811190
def test_collectignore_via_conftest(testdir):
11821191
"""collect_ignore in parent conftest skips importing child (issue #4592)."""
11831192
tests = testdir.mkpydir("tests")

0 commit comments

Comments
 (0)