Skip to content

Commit f30f735

Browse files
committedOct 19, 2024
add: tests and update deps
1 parent 0a45ca4 commit f30f735

File tree

3 files changed

+49
-1
lines changed

3 files changed

+49
-1
lines changed
 

‎pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ classifiers = [
3939
pre-commit = "^3.0.3"
4040
coverage = "^7.2.7"
4141
pyclean = "^3.0.0"
42-
pytest = "^7.2.1"
42+
pytest = "^8.3.3"
4343
black = "^24.1.1"
4444

4545
[build-system]

‎test/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
> [!WARNING]
2+
> For run tests you need install javascript deps!

‎test/merkle_proof/test_merkle_proof.py

+46
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,49 @@ def test_verify_merkle(leaf: str):
4747

4848
result = tree.proof(leaf)
4949
assert tree.verify(result, leaf)
50+
51+
52+
def get_data_from_api():
53+
leaves = [
54+
"a",
55+
"b",
56+
"c",
57+
"d",
58+
"e",
59+
"f",
60+
"g",
61+
"h",
62+
"1",
63+
"2",
64+
"3",
65+
"4",
66+
"5",
67+
"6",
68+
"7",
69+
"8",
70+
]
71+
tree = MerkleTree(leaves)
72+
73+
leaf = "1"
74+
proof = tree.proof(leaf)
75+
return proof, leaf
76+
77+
78+
def test_verify_merkle_proof_without_leaves():
79+
proof, leaf = get_data_from_api()
80+
81+
root = "3aa22c94ceb510827b04fa792ebdd7346eb2984ebb24e58dac66d7795c2af4e8"
82+
83+
# Test valid proof
84+
result = MerkleTree.verify_proof(proof, leaf, root)
85+
assert result, "Expected proof to be valid"
86+
87+
# Test invalid proof scenario
88+
invalid_leaf = "invalid_leaf_data"
89+
invalid_result = MerkleTree.verify_proof(proof, invalid_leaf, root)
90+
assert not invalid_result, "Expected proof to be invalid for incorrect leaf"
91+
92+
# Test with a different root
93+
different_root = "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
94+
different_result = MerkleTree.verify_proof(proof, leaf, different_root)
95+
assert not different_result, "Expected proof to be invalid for different root"

0 commit comments

Comments
 (0)