def test_entry_types(filesystem: FileSystemImpl, lpaths: Dict[str, AbstractPath]) -> None: assert filesystem._is_dir(lpaths['root']) assert not filesystem._is_dir(lpaths['file']) assert not filesystem._is_dir(lpaths['new_dir']) assert filesystem._is_file(lpaths['file']) assert not filesystem._is_file(lpaths['root']) assert not filesystem._is_file(lpaths['new_file']) assert (filesystem._is_symlink(lpaths['link']) or not filesystem._supports('symlinks')) assert filesystem._is_file(lpaths['link']) assert not filesystem._is_dir(lpaths['link']) assert not filesystem._is_symlink(lpaths['new_file']) assert (filesystem._is_symlink(lpaths['broken_link']) or not filesystem._supports('symlinks')) assert not filesystem._is_file(lpaths['broken_link']) assert filesystem._entry_type(lpaths['root']) == EntryType.DIRECTORY assert filesystem._entry_type(lpaths['file']) == EntryType.FILE if filesystem._supports('symlinks'): assert filesystem._entry_type( lpaths['link']) == EntryType.SYMBOLIC_LINK # disable for now, doesn't work in a docker #assert filesystem._entry_type(lpaths['chardev']) == EntryType.CHARACTER_DEVICE assert filesystem._entry_type( lpaths['blockdev']) == EntryType.BLOCK_DEVICE assert filesystem._entry_type(lpaths['fifo']) == EntryType.FIFO # TODO: socket? with pytest.raises(FileNotFoundError): filesystem._entry_type(lpaths['new_file'])
def test_symlink_to(filesystem: FileSystemImpl, lpaths: Dict[str, AbstractPath]) -> None: if filesystem._supports('symlinks'): filesystem._symlink_to(lpaths['new_file'], lpaths['file']) assert filesystem._is_symlink(lpaths['new_file']) assert filesystem._is_file(lpaths['new_file']) filesystem._unlink(lpaths['new_file']) assert not filesystem._exists(lpaths['new_file']) assert filesystem._exists(lpaths['file'])