def test_scandir_error(): for error, path in [ (None, AZURE_VALID_CONTAINER), (FileNotFoundError, AZURE_INVALID_CONTAINER), (FileNotFoundError, AZURE_INVALID_CONTAINER_NO_ACCOUNT), (bf.Error, "https://accountname.blob.core.windows.net/container"), ]: ctx = contextlib.nullcontext() if error is not None: ctx = pytest.raises(error) with ctx: print(path) list(bf.scandir(path))
def test_scandir(ctx): contents = b"meow!" with ctx() as path: dirpath = bf.dirname(path) a_path = bf.join(dirpath, "a") with bf.BlobFile(a_path, "wb") as w: w.write(contents) b_path = bf.join(dirpath, "b") with bf.BlobFile(b_path, "wb") as w: w.write(contents) bf.makedirs(bf.join(dirpath, "c")) entries = sorted(list(bf.scandir(dirpath))) assert [e.name for e in entries] == ["a", "b", "c"] assert [e.path for e in entries ] == [bf.join(dirpath, name) for name in ["a", "b", "c"]] assert [e.is_dir for e in entries] == [False, False, True] assert [e.is_file for e in entries] == [True, True, False] assert entries[0].stat.size == len(contents) assert entries[1].stat.size == len(contents) assert entries[2].stat is None