def test_ensure_absent(tmp_path): # Test broken symlink tmp = Path(str(tmp_path)) dne = tmp.join("dne") sb = tmp.join("sb") ensure_symlink(sb, dne) assert sb.islink() ensure_absent(sb) assert not sb.islink() # Test link is removed, but underlying file is left intact. tmp = Path(str(tmp_path)) f = tmp.join("dne") with f.open('w') as fd: fd.write('hi') sb = tmp.join("sb") ensure_symlink(sb, f) assert sb.islink() assert f.isfile() ensure_absent(sb) assert not sb.islink() assert f.isfile() # Test dir d = tmp.join('d') f1 = d.join('f1') f2 = d.join('f2') d.mkdir() with f1.open('w') as fd: fd.write('f1') with f2.open('w') as fd: fd.write('f2') assert d.exists() and d.isdir() ensure_absent(d) assert not d.exists() and not d.isdir()
def test_ensure_symlink(tmp_path): tmp = Path(str(tmp_path)) dne = tmp.join("dne") sb = tmp.join("sb") ensure_symlink(sb, dne) assert sb.exists() assert sb.islink() assert sb.readlink() == dne
def link_to_blob(self, path, csum): """Forces path into a symlink to csum""" new_link = self.csum_to_path(csum) ensure_symlink(path, new_link) ensure_readonly(path)