コード例 #1
0
ファイル: test_remote.py プロジェクト: efiop/dvc
def test_dir_hash_should_be_key_order_agnostic(tmp_dir, dvc):
    from dvc.objects.stage import stage
    from dvc.objects.tree import Tree

    tmp_dir.gen({"data": {"1": "1 content", "2": "2 content"}})

    path = (tmp_dir / "data").fs_path

    tree = Tree.from_list([{
        "relpath": "1",
        "md5": "1"
    }, {
        "relpath": "2",
        "md5": "2"
    }])
    tree.digest()
    with patch("dvc.objects.stage._stage_tree", return_value=(None, tree)):
        _, _, obj = stage(dvc.odb.local, path, dvc.odb.local.fs, "md5")
        hash1 = obj.hash_info

    tree = Tree.from_list([{
        "md5": "1",
        "relpath": "1"
    }, {
        "md5": "2",
        "relpath": "2"
    }])
    tree.digest()
    with patch("dvc.objects.stage._stage_tree", return_value=(None, tree)):
        _, _, obj = stage(dvc.odb.local, path, dvc.odb.local.fs, "md5")
        hash2 = obj.hash_info

    assert hash1 == hash2
コード例 #2
0
ファイル: test_remote.py プロジェクト: iterative/dvc
def test_dir_hash_should_be_key_order_agnostic(tmp_dir, dvc):
    from dvc.objects.stage import stage
    from dvc.objects.tree import Tree

    tmp_dir.gen({"data": {"1": "1 content", "2": "2 content"}})

    path_info = PathInfo("data")

    tree = Tree.from_list(
        [{"relpath": "1", "md5": "1"}, {"relpath": "2", "md5": "2"}]
    )
    tree.digest()
    with patch("dvc.objects.stage._get_tree_obj", return_value=tree):
        hash1 = stage(
            dvc.odb.local, path_info, dvc.odb.local.fs, "md5"
        ).hash_info

    tree = Tree.from_list(
        [{"md5": "1", "relpath": "1"}, {"md5": "2", "relpath": "2"}]
    )
    tree.digest()
    with patch("dvc.objects.stage._get_tree_obj", return_value=tree):
        hash2 = stage(
            dvc.odb.local, path_info, dvc.odb.local.fs, "md5"
        ).hash_info

    assert hash1 == hash2
コード例 #3
0
 def iter_objs():
     for hash_info in obj_ids:
         if hash_info.isdir:
             tree = Tree.load(odb, hash_info)
             yield from (odb.get(oid) for _, _, oid in tree)
         else:
             yield odb.get(hash_info)
コード例 #4
0
def test_items(trie_dict):
    tree = Tree(None, None, None)
    tree._dict = trie_dict
    assert list(tree) == [(key, value[0], value[1])
                          for key, value in trie_dict.items()]
コード例 #5
0
def test_nfiles(trie_dict, nfiles):
    tree = Tree(None, None, None)
    tree._dict = trie_dict
    assert len(tree) == nfiles
コード例 #6
0
def test_list(lst, trie_dict):
    tree = Tree.from_list(lst)
    assert tree._dict == trie_dict
    assert tree.as_list() == sorted(lst, key=itemgetter("relpath"))
コード例 #7
0
def test_size(trie_dict, size):
    tree = Tree(None, None, None)
    tree._dict = trie_dict
    tree.digest()
    assert tree.size == size
コード例 #8
0
def test_items(trie_dict):
    tree = Tree(None, None, None)
    tree._dict = trie_dict
    assert list(tree) == list(trie_dict.items())