def test_convert_remote_files_to_fsspec_local_files(): """Test convertion of remote files to fsspec objects. Case without scheme/protocol, which should default to plain filenames. """ from satpy.utils import convert_remote_files_to_fsspec filenames = ["/tmp/file1.nc", "file:///tmp/file2.nc"] res = convert_remote_files_to_fsspec(filenames) assert res == filenames
def test_convert_remote_files_to_fsspec_windows_paths(): """Test convertion of remote files to fsspec objects. Case where windows paths are used. """ from satpy.utils import convert_remote_files_to_fsspec filenames = [ r"C:\wintendo\file1.nc", "e:\\wintendo\\file2.nc", r"wintendo\file3.nc" ] res = convert_remote_files_to_fsspec(filenames) assert res == filenames
def test_convert_remote_files_to_fsspec_storage_options(open_files): """Test convertion of remote files to fsspec objects. Case with storage options given. """ from satpy.utils import convert_remote_files_to_fsspec filenames = ["s3://tmp/file1.nc"] storage_options = {'anon': True} _ = convert_remote_files_to_fsspec(filenames, storage_options=storage_options) open_files.assert_called_once_with(filenames, **storage_options)
def test_convert_remote_files_to_fsspec_fsfile(): """Test convertion of remote files to fsspec objects. Case where the some of the files are already FSFile objects. """ from satpy.readers import FSFile from satpy.utils import convert_remote_files_to_fsspec filenames = [ "/tmp/file1.nc", "s3://data-bucket/file2.nc", FSFile("ssh:///tmp/file3.nc") ] res = convert_remote_files_to_fsspec(filenames) assert sum([isinstance(f, FSFile) for f in res]) == 2
def test_convert_remote_files_to_fsspec_mixed_sources(): """Test convertion of remote files to fsspec objects. Case with mixed local and remote files. """ from satpy.readers import FSFile from satpy.utils import convert_remote_files_to_fsspec filenames = [ "/tmp/file1.nc", "s3://data-bucket/file2.nc", "file:///tmp/file3.nc" ] res = convert_remote_files_to_fsspec(filenames) # Two local files, one remote assert filenames[0] in res assert filenames[2] in res assert sum([isinstance(f, FSFile) for f in res]) == 1
def test_convert_remote_files_to_fsspec_filename_dict(): """Test convertion of remote files to fsspec objects. Case where filenames is a dictionary mapping readers and filenames. """ from satpy.readers import FSFile from satpy.utils import convert_remote_files_to_fsspec filenames = { "reader1": ["/tmp/file1.nc", "/tmp/file2.nc"], "reader2": ["s3://tmp/file3.nc", "file:///tmp/file4.nc", "/tmp/file5.nc"] } res = convert_remote_files_to_fsspec(filenames) assert res["reader1"] == filenames["reader1"] assert filenames["reader2"][1] in res["reader2"] assert filenames["reader2"][2] in res["reader2"] assert sum([isinstance(f, FSFile) for f in res["reader2"]]) == 1