Spaces:
Runtime error
Runtime error
import pytest | |
import fsspec | |
from fsspec.tests.conftest import data, server # noqa: F401 | |
def test_remote_async_ops(server): | |
fsspec.filesystem("http", headers={"give_length": "true", "head_ok": "true"}) | |
fs = fsspec.filesystem("generic", default_method="current") | |
out = fs.info(server + "/index/realfile") | |
assert out["size"] == len(data) | |
assert out["type"] == "file" | |
assert fs.isfile(server + "/index/realfile") # this method from superclass | |
def test_touch_rm(m): | |
m.touch("afile") | |
m.touch("dir/afile") | |
fs = fsspec.filesystem("generic", default_method="current") | |
fs.rm("memory://afile") | |
assert not m.exists("afile") | |
fs.rm("memory://dir", recursive=True) | |
assert not m.exists("dir/afile") | |
assert not m.exists("dir") | |
def test_cp_async_to_sync(server, m): | |
fsspec.filesystem("http", headers={"give_length": "true", "head_ok": "true"}) | |
fs = fsspec.filesystem("generic", default_method="current") | |
fs.cp([server + "/index/realfile"], ["memory://realfile"]) | |
assert m.cat("realfile") == data | |
fs.rm("memory://realfile") | |
assert not m.exists("realfile") | |
def test_pipe_cat_sync(m): | |
fs = fsspec.filesystem("generic", default_method="current") | |
fs.pipe("memory://afile", b"data") | |
assert fs.cat("memory://afile") == b"data" | |
def test_cat_async(server): | |
fsspec.filesystem("http", headers={"give_length": "true", "head_ok": "true"}) | |
fs = fsspec.filesystem("generic", default_method="current") | |
assert fs.cat(server + "/index/realfile") == data | |
def test_rsync(tmpdir, m): | |
from fsspec.generic import GenericFileSystem, rsync | |
fs = GenericFileSystem() | |
fs.pipe("memory:///deep/path/afile", b"data1") | |
fs.pipe("memory:///deep/afile", b"data2") | |
with pytest.raises(ValueError): | |
rsync("memory:///deep/afile", f"file://{tmpdir}") | |
rsync("memory://", f"file://{tmpdir}") | |
allfiles = fs.find(f"file://{tmpdir}", withdirs=True, detail=True) | |
pos_tmpdir = fsspec.implementations.local.make_path_posix(str(tmpdir)) # for WIN | |
assert set(allfiles) == { | |
f"file://{pos_tmpdir}{_}" | |
for _ in [ | |
"", | |
"/deep", | |
"/deep/path", | |
"/deep/path/afile", | |
"/deep/afile", | |
] | |
} | |
fs.rm("memory:///deep/afile") | |
rsync("memory://", f"file://{tmpdir}", delete_missing=True) | |
allfiles2 = fs.find(f"file://{tmpdir}", withdirs=True, detail=True) | |
assert set(allfiles2) == { | |
f"file://{pos_tmpdir}{_}" | |
for _ in [ | |
"", | |
"/deep", | |
"/deep/path", | |
"/deep/path/afile", | |
] | |
} | |
# the file was not updated, since size was correct | |
assert ( | |
allfiles[f"file://{pos_tmpdir}/deep/path/afile"] | |
== allfiles2[f"file://{pos_tmpdir}/deep/path/afile"] | |
) | |