def test_mkdir_rm_recursive(storage): fs = AzureBlobFileSystem(account_name=storage.account_name, connection_string=CONN_STR) fs.mkdir("test_mkdir_rm_recursive") assert "test_mkdir_rm_recursive/" in fs.ls("") with fs.open("test_mkdir_rm_recursive/file.txt", "wb") as f: f.write(b"0123456789") with fs.open("test_mkdir_rm_recursive/dir/file.txt", "wb") as f: f.write(b"ABCD") with fs.open("test_mkdir_rm_recursive/dir/file2.txt", "wb") as f: f.write(b"abcdef") assert fs.find("test_mkdir_rm_recursive") == [ "test_mkdir_rm_recursive/dir/file.txt", "test_mkdir_rm_recursive/dir/file2.txt", "test_mkdir_rm_recursive/file.txt", ] fs.rm("test_mkdir_rm_recursive", recursive=True) assert "test_mkdir_rm_recursive/" not in fs.ls("") assert fs.find("test_mkdir_rm_recursive") == []
def test_find(storage): fs = AzureBlobFileSystem(account_name=storage.account_name, connection_string=CONN_STR) ## just the directory name assert fs.find("data/root/a") == ["data/root/a/file.txt"] # NOQA assert fs.find("data/root/a/") == ["data/root/a/file.txt"] # NOQA assert fs.find("data/root/c") == [ "data/root/c/file1.txt", "data/root/c/file2.txt", ] assert fs.find("data/root/c/") == [ "data/root/c/file1.txt", "data/root/c/file2.txt", ] ## all files assert fs.find("data/root") == [ "data/root/a/file.txt", "data/root/b/file.txt", "data/root/c/file1.txt", "data/root/c/file2.txt", "data/root/rfile.txt", ] assert fs.find("data/root", withdirs=False) == [ "data/root/a/file.txt", "data/root/b/file.txt", "data/root/c/file1.txt", "data/root/c/file2.txt", "data/root/rfile.txt", ] # all files and directories assert fs.find("data/root", withdirs=True) == [ "data/root/a", "data/root/a/file.txt", "data/root/b", "data/root/b/file.txt", "data/root/c", "data/root/c/file1.txt", "data/root/c/file2.txt", "data/root/rfile.txt", ] assert fs.find("data/root/", withdirs=True) == [ "data/root/a", "data/root/a/file.txt", "data/root/b", "data/root/b/file.txt", "data/root/c", "data/root/c/file1.txt", "data/root/c/file2.txt", "data/root/rfile.txt", ] ## missing assert fs.find("data/missing") == []
def test_deep_paths(storage): fs = AzureBlobFileSystem(account_name=storage.account_name, connection_string=CONN_STR) fs.mkdir("test_deep") assert "test_deep/" in fs.ls("") with fs.open("test_deep/a/b/c/file.txt", "wb") as f: f.write(b"0123456789") assert fs.ls("test_deep") == ["test_deep/a/"] assert fs.ls("test_deep/") == ["test_deep/a/"] assert fs.ls("test_deep/a") == ["test_deep/a/b/"] assert fs.ls("test_deep/a/") == ["test_deep/a/b/"] assert fs.find("test_deep") == ["test_deep/a/b/c/file.txt"] assert fs.find("test_deep/") == ["test_deep/a/b/c/file.txt"] assert fs.find("test_deep/a") == ["test_deep/a/b/c/file.txt"] assert fs.find("test_deep/a/") == ["test_deep/a/b/c/file.txt"] fs.rm("test_deep", recursive=True) assert "test_deep/" not in fs.ls("") assert fs.find("test_deep") == []
def test_find_missing(storage): fs = AzureBlobFileSystem(account_name=storage.account_name, connection_string=CONN_STR) assert fs.find("data/roo") == []
def test_find(storage): fs = AzureBlobFileSystem( account_name=storage.account_name, connection_string=CONN_STR ) ## just the directory name assert fs.find("data/root/a") == ["data/root/a/file.txt"] # NOQA assert fs.find("data/root/a/") == ["data/root/a/file.txt"] # NOQA assert fs.find("data/root/c") == [ "data/root/c/file1.txt", "data/root/c/file2.txt", ] assert fs.find("data/root/c/") == [ "data/root/c/file1.txt", "data/root/c/file2.txt", ] ## all files assert fs.find("data/root") == [ "data/root/a/file.txt", "data/root/a1/file1.txt", "data/root/b/file.txt", "data/root/c/file1.txt", "data/root/c/file2.txt", "data/root/d/file_with_metadata.txt", "data/root/rfile.txt", ] assert fs.find("data/root", withdirs=False) == [ "data/root/a/file.txt", "data/root/a1/file1.txt", "data/root/b/file.txt", "data/root/c/file1.txt", "data/root/c/file2.txt", "data/root/d/file_with_metadata.txt", "data/root/rfile.txt", ] # all files and directories assert fs.find("data/root", withdirs=True) == [ "data/root/a/", "data/root/a/file.txt", "data/root/a1/", "data/root/a1/file1.txt", "data/root/b/", "data/root/b/file.txt", "data/root/c/", "data/root/c/file1.txt", "data/root/c/file2.txt", "data/root/d/", "data/root/d/file_with_metadata.txt", "data/root/rfile.txt", ] assert fs.find("data/root/", withdirs=True) == [ "data/root/a/", "data/root/a/file.txt", "data/root/a1/", "data/root/a1/file1.txt", "data/root/b/", "data/root/b/file.txt", "data/root/c/", "data/root/c/file1.txt", "data/root/c/file2.txt", "data/root/d/", "data/root/d/file_with_metadata.txt", "data/root/rfile.txt", ] ## missing assert fs.find("data/missing") == [] ## prefix search assert fs.find("data/root", prefix="a") == [ "data/root/a/file.txt", "data/root/a1/file1.txt", ] assert fs.find("data/root", prefix="a", withdirs=True) == [ "data/root/a/", "data/root/a/file.txt", "data/root/a1/", "data/root/a1/file1.txt", ] find_results = fs.find("data/root", prefix="a1", withdirs=True, detail=True) assert_blobs_equals( list(find_results.values()), [ {"name": "data/root/a1/", "size": 0, "type": "directory"}, { "name": "data/root/a1/file1.txt", "size": 10, "type": "file", "archive_status": None, "deleted": None, "creation_time": storage.insert_time, "last_modified": storage.insert_time, "deleted_time": None, "last_accessed_on": None, "remaining_retention_days": None, "tag_count": None, "tags": None, "metadata": {}, "content_settings": { "content_type": "application/octet-stream", "content_encoding": None, "content_language": None, "content_md5": bytearray( b"x\x1e^$]i\xb5f\x97\x9b\x86\xe2\x8d#\xf2\xc7" ), "content_disposition": None, "cache_control": None, }, }, ], )