def test_load_from_seed_json():
    tree = MerkleTree()

    for user, perm in permission_json.items():
        for schema_id, schema_perm in perm.items():
            tree.add_leaf(json.dumps(schema_perm))

    tree.grow_tree()

    seed_json = tree.get_seed(as_json=True)
    original_root = tree.get_root_str()

    new_tree = MerkleTree(seed_json)

    assert original_root == new_tree.get_root_str()
def test_proof_from_new_seeded_tree():
    tree = MerkleTree()

    for user, perm in permission_json.items():
        for schema_id, schema_perm in perm.items():
            tree.add_leaf(json.dumps(schema_perm))

    tree.grow_tree()
    original_root = tree.get_root_str()

    seed_json = tree.get_seed(as_json=True)

    seeded_tree = MerkleTree(seed_json)

    proof_from_new = seeded_tree.get_proof(json.dumps(permission_json['user2']['0']), is_hashed=False)

    is_good = seeded_tree.verify_leaf(json.dumps(permission_json['user2']['0']),
                                      original_root,
                                      proof_from_new, is_hashed=False)

    assert is_good