fix #4135 - handle symlinks in tmp path cleanup
This commit is contained in:
parent
0be84cd68b
commit
1dfa303b1e
|
@ -0,0 +1 @@
|
||||||
|
pathlib based tmpdir cleanup now correctly handles symlinks in the folder.
|
|
@ -173,6 +173,8 @@ def delete_a_numbered_dir(path):
|
||||||
|
|
||||||
def ensure_deletable(path, consider_lock_dead_if_created_before):
|
def ensure_deletable(path, consider_lock_dead_if_created_before):
|
||||||
"""checks if a lock exists and breaks it if its considered dead"""
|
"""checks if a lock exists and breaks it if its considered dead"""
|
||||||
|
if path.is_symlink():
|
||||||
|
return False
|
||||||
lock = get_lock_path(path)
|
lock = get_lock_path(path)
|
||||||
if not lock.exists():
|
if not lock.exists():
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -232,7 +232,7 @@ class TestNumberedDir(object):
|
||||||
|
|
||||||
assert not lock.exists()
|
assert not lock.exists()
|
||||||
|
|
||||||
def test_cleanup_keep(self, tmp_path):
|
def _do_cleanup(self, tmp_path):
|
||||||
self.test_make(tmp_path)
|
self.test_make(tmp_path)
|
||||||
from _pytest.pathlib import cleanup_numbered_dir
|
from _pytest.pathlib import cleanup_numbered_dir
|
||||||
|
|
||||||
|
@ -242,6 +242,9 @@ class TestNumberedDir(object):
|
||||||
keep=2,
|
keep=2,
|
||||||
consider_lock_dead_if_created_before=0,
|
consider_lock_dead_if_created_before=0,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_cleanup_keep(self, tmp_path):
|
||||||
|
self._do_cleanup(tmp_path)
|
||||||
a, b = tmp_path.iterdir()
|
a, b = tmp_path.iterdir()
|
||||||
print(a, b)
|
print(a, b)
|
||||||
|
|
||||||
|
@ -275,3 +278,8 @@ class TestNumberedDir(object):
|
||||||
|
|
||||||
rmtree(adir, force=True)
|
rmtree(adir, force=True)
|
||||||
assert not adir.exists()
|
assert not adir.exists()
|
||||||
|
|
||||||
|
def test_cleanup_symlink(self, tmp_path):
|
||||||
|
the_symlink = tmp_path / (self.PREFIX + "current")
|
||||||
|
the_symlink.symlink_to(tmp_path / (self.PREFIX + "5"))
|
||||||
|
self._do_cleanup(tmp_path)
|
||||||
|
|
Loading…
Reference in New Issue