40 lines
941 B
Python
40 lines
941 B
Python
|
import tempfile
|
||
|
|
||
|
import pytest
|
||
|
|
||
|
from fsspec.implementations.arrow import ArrowFSWrapper
|
||
|
from fsspec.implementations.local import LocalFileSystem
|
||
|
from fsspec.implementations.memory import MemoryFileSystem
|
||
|
|
||
|
# A dummy filesystem that has a list of protocols
|
||
|
|
||
|
|
||
|
class MultiProtocolFileSystem(LocalFileSystem):
|
||
|
protocol = ["file", "other"]
|
||
|
|
||
|
|
||
|
FILESYSTEMS = {
|
||
|
"local": LocalFileSystem,
|
||
|
"multi": MultiProtocolFileSystem,
|
||
|
"memory": MemoryFileSystem,
|
||
|
}
|
||
|
|
||
|
READ_ONLY_FILESYSTEMS = []
|
||
|
|
||
|
|
||
|
@pytest.fixture(scope="function")
|
||
|
def fs(request):
|
||
|
pyarrow_fs = pytest.importorskip("pyarrow.fs")
|
||
|
FileSystem = pyarrow_fs.FileSystem
|
||
|
if request.param == "arrow":
|
||
|
fs = ArrowFSWrapper(FileSystem.from_uri("file:///")[0])
|
||
|
return fs
|
||
|
cls = FILESYSTEMS[request.param]
|
||
|
return cls()
|
||
|
|
||
|
|
||
|
@pytest.fixture(scope="function")
|
||
|
def temp_file():
|
||
|
with tempfile.TemporaryDirectory() as temp_dir:
|
||
|
return temp_dir + "test-file"
|