def test_get_root_no_leaves_exception(): tree = MerkleTree() with pytest.raises(MerkleException) as e: tree.get_root() assert 'No leaves found' in str(e.value) with pytest.raises(MerkleException) as e: tree.get_root_str() assert 'No leaves found' in str(e.value)
def test_get_root_not_grown_exception(): tree = MerkleTree() for user, perm in permission_json.items(): tree.add_leaf(json.dumps(perm)) with pytest.raises(MerkleException) as e: tree.get_root() assert 'No tree stored. Grow from seed, or generate new tree' in str(e.value) with pytest.raises(MerkleException) as e: tree.get_root_str() assert 'No tree stored. Grow from seed, or generate new tree' in str(e.value)
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 __generate_merkle(self, perms): tree = MerkleTree() for user, perm in perms.items(): for schema_id, schema_perm in perm.items(): tree.add_leaf(json.dumps(schema_perm)) tree.grow_tree() return tree.get_root_str()
def test_three_leaves(): tree = MerkleTree() for user, perm in permission_json_three.items(): tree.add_leaf(json.dumps(perm)) tree.grow_tree() for user, perm in permission_json_three.items(): requested_leaf = json.dumps(permission_json_three[user]) proof = tree.get_proof(requested_leaf, is_hashed=False) is_good = tree.verify_leaf(requested_leaf, tree.get_root_str(), proof, is_hashed=False) assert is_good
def test_proof_all(): 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() for user, perm in permission_json.items(): for schema_id, schema_perm in perm.items(): requested_leaf = json.dumps(permission_json[user][schema_id]) proof = tree.get_proof(requested_leaf, is_hashed=False) is_good = tree.verify_leaf(requested_leaf, tree.get_root_str(), proof, is_hashed=False) assert is_good
def test_merkle_root(): target_root = '7102ecb1c3412a29997744c8e18d848c4f668d5563325ada204a453dc694308f' 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() m_root = tree.get_root_str() print(m_root) assert m_root == target_root
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