def test_makedir_rmdir(storage, caplog): fs = AzureBlobFileSystem( account_name=storage.account_name, connection_string=CONN_STR, ) fs.makedir("new-container") assert "new-container" in fs.ls("") assert fs.ls("new-container") == [] with fs.open(path="new-container/file.txt", mode="wb") as f: f.write(b"0123456789") with fs.open("new-container/dir/file.txt", "wb") as f: f.write(b"0123456789") with fs.open("new-container/dir/file2.txt", "wb") as f: f.write(b"0123456789") # Verify that mkdir will raise an exception if the directory exists # and exist_ok is False with pytest.raises(FileExistsError): fs.makedir("new-container/dir/file.txt", exist_ok=False) # mkdir should raise an error if the container exists and # we try to create a nested directory, with exist_ok=False with pytest.raises(FileExistsError): fs.makedir("new-container/dir2", exist_ok=False) # Check that trying to overwrite an existing nested file in append mode works as expected # if exist_ok is True fs.makedir("new-container/dir/file2.txt", exist_ok=True) assert "new-container/dir/file2.txt" in fs.ls("new-container/dir") # Also verify you can make a nested directory structure with fs.open("new-container/dir2/file.txt", "wb") as f: f.write(b"0123456789") assert "new-container/dir2/file.txt" in fs.ls("new-container/dir2") fs.rm("new-container/dir2", recursive=True) fs.rm("new-container/dir", recursive=True) fs.touch("new-container/file2.txt") assert fs.ls("new-container") == [ "new-container/file.txt", "new-container/file2.txt", ] fs.rm("new-container/file.txt") fs.rm("new-container/file2.txt") fs.rmdir("new-container") assert "new-container" not in fs.ls("")
def test_makedir(storage): fs = AzureBlobFileSystem( account_name=storage.account_name, connection_string=CONN_STR, ) # Verify makedir will create a new container when create_parents is True with pytest.raises(FileExistsError): fs.makedir("data", exist_ok=False) # The container and directory already exist. Should pass fs.makedir("data", exist_ok=True) assert "data/" in fs.ls(".") # Test creating subdirectory when container does not exist fs.makedir("new-container/dir") assert "new-container/dir" in fs.ls("new-container") fs.rm("new-container", recursive=True)
def test_makedir_rmdir(storage, caplog): fs = AzureBlobFileSystem( account_name=storage.account_name, connection_string=CONN_STR, ) fs.makedir("new-container") assert "new-container/" in fs.ls("") assert fs.ls("new-container") == [] with fs.open(path="new-container/file.txt", mode="wb") as f: f.write(b"0123456789") with fs.open("new-container/dir/file.txt", "wb") as f: f.write(b"0123456789") with fs.open("new-container/dir/file2.txt", "wb") as f: f.write(b"0123456789") # Verify that mkdir will raise an exception if the directory exists # and exist_ok is False with pytest.raises(FileExistsError): fs.makedir("new-container/dir/file.txt", exist_ok=False) # Verify that mkdir creates a directory if exist_ok is False and the # directory does not exist fs.makedir("new-container/file2.txt", exist_ok=False) assert "new-container/file2.txt" in fs.ls("new-container") # Verify that mkdir will silently ignore an existing directory if # the directory exists and exist_ok is True fs.makedir("new-container/dir", exist_ok=True) assert "new-container/dir/" in fs.ls("new-container") # Test to verify that the file contains expected contents with fs.open("new-container/file2.txt", "rb") as f: outfile = f.read() assert outfile == b"" # Check that trying to overwrite an existing nested file in append mode works as expected # if exist_ok is True fs.makedir("new-container/dir/file2.txt", exist_ok=True) assert "new-container/dir/file2.txt" in fs.ls("new-container/dir") # Also verify you can make a nested directory structure fs.makedir("new-container/dir2/file.txt", exist_ok=False) with fs.open("new-container/dir2/file.txt", "wb") as f: f.write(b"0123456789") assert "new-container/dir2/file.txt" in fs.ls("new-container/dir2") fs.rm("new-container/dir2", recursive=True) fs.rm("new-container/dir", recursive=True) assert fs.ls("new-container") == [ "new-container/file.txt", "new-container/file2.txt", ] fs.rm("new-container/file.txt") fs.rm("new-container/file2.txt") fs.rmdir("new-container") assert "new-container/" not in fs.ls("")