示例#1
0
def test_list_hashes(dvc):
    tree = BaseRemoteTree(dvc, {})
    tree.path_info = PathInfo("foo")

    with mock.patch.object(tree, "list_paths", return_value=["12/3456",
                                                             "bar"]):
        hashes = list(tree.list_hashes())
        assert hashes == ["123456"]
示例#2
0
def test_list_paths(dvc):
    tree = BaseRemoteTree(dvc, {})
    tree.path_info = PathInfo("foo")

    with mock.patch.object(tree, "walk_files", return_value=[]) as walk_mock:
        for _ in tree.list_paths():
            pass
        walk_mock.assert_called_with(tree.path_info, prefix=False)

        for _ in tree.list_paths(prefix="000"):
            pass
        walk_mock.assert_called_with(tree.path_info / "00" / "0", prefix=True)
示例#3
0
def test_list_hashes_traverse(_path_to_hash, list_hashes, dvc):
    tree = BaseRemoteTree(dvc, {})
    tree.path_info = PathInfo("foo")

    # parallel traverse
    size = 256 / tree.JOBS * tree.LIST_OBJECT_PAGE_SIZE
    list(tree.list_hashes_traverse(size, {0}))
    for i in range(1, 16):
        list_hashes.assert_any_call(prefix=f"{i:03x}",
                                    progress_callback=CallableOrNone)
    for i in range(1, 256):
        list_hashes.assert_any_call(prefix=f"{i:02x}",
                                    progress_callback=CallableOrNone)

    # default traverse (small remote)
    size -= 1
    list_hashes.reset_mock()
    list(tree.list_hashes_traverse(size - 1, {0}))
    list_hashes.assert_called_with(prefix=None,
                                   progress_callback=CallableOrNone)