Skip to content

Commit 1e6088e

Browse files
committed
add tests for provenance
1 parent 38cbe04 commit 1e6088e

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

tests/intergration/test_provenance_contract.py

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,18 @@
2121
(def {CONTRACT_NAME}
2222
(deploy
2323
'(do
24-
(def provenance {{}})
24+
(def provenance [])
2525
(defn version [] "{CONTRACT_VERSION}")
26-
(export version)
26+
(defn register [asset-id]
27+
(let [record {{:owner *caller* :timestamp *timestamp* :asset-id (blob asset-id)}}]
28+
(def provenance (conj provenance record))
29+
record
30+
)
31+
)
32+
(defn event-list [asset-id]
33+
(mapcat (fn [record] (when (= (blob asset-id) (record :asset-id)) [record])) provenance)
34+
)
35+
(export event-list register version)
2736
)
2837
)
2938
)
@@ -32,9 +41,29 @@
3241

3342
def test_provenance_contract(convex, test_account):
3443
auto_topup_account(convex, test_account)
44+
print(provenance_contract)
3545
result = convex.send(provenance_contract, test_account)
3646
assert(result['value'])
3747
auto_topup_account(convex, test_account)
3848
contract_address = result['value']
3949
assert(contract_address)
4050
print(contract_address)
51+
52+
asset_id = '0x' + secrets.token_hex(32)
53+
event_count = 4
54+
for index in range(0, event_count):
55+
result = convex.send(f'(call {contract_address} (register {asset_id}))', test_account)
56+
assert(result)
57+
record = result['value']
58+
assert(record['asset-id'] == asset_id)
59+
60+
61+
result = convex.query(f'(call {contract_address} (event-list {asset_id}))', test_account)
62+
assert(result)
63+
event_list = result['value']
64+
assert(event_list)
65+
assert(len(event_list) == event_count)
66+
for event_item in event_list:
67+
assert(event_item['asset-id'] == asset_id)
68+
69+

0 commit comments

Comments
 (0)