示例#1
0
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()
示例#2
0
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
示例#3
0
 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)