Skip to content

Commit 77c80d6

Browse files
committed
Adds tests
1 parent a688e48 commit 77c80d6

File tree

2 files changed

+79
-0
lines changed

2 files changed

+79
-0
lines changed

tests/integration_tests/test_async_substrate_interface.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import time
55
import threading
66

7+
import bittensor_wallet
78
import pytest
89
from scalecodec import ss58_encode
910

@@ -235,3 +236,42 @@ async def test_improved_reconnection():
235236
shutdown_thread.start()
236237
shutdown_thread.join(timeout=5)
237238
server_thread.join(timeout=5)
239+
240+
241+
@pytest.mark.asyncio
242+
async def test_get_payment_info():
243+
alice_coldkey = bittensor_wallet.Keypair.create_from_uri("//Alice")
244+
bob_coldkey = bittensor_wallet.Keypair.create_from_uri("//Bob")
245+
async with AsyncSubstrateInterface(
246+
LATENT_LITE_ENTRYPOINT, ss58_format=42, chain_name="Bittensor"
247+
) as substrate:
248+
block_hash = await substrate.get_chain_head()
249+
call = await substrate.compose_call(
250+
"Balances",
251+
"transfer_keep_alive",
252+
{"dest": bob_coldkey.ss58_address, "value": 100_000},
253+
block_hash,
254+
)
255+
payment_info = await substrate.get_payment_info(
256+
call=call,
257+
keypair=alice_coldkey,
258+
)
259+
partial_fee_no_era = payment_info["partial_fee"]
260+
assert partial_fee_no_era > 0
261+
payment_info_era = await substrate.get_payment_info(
262+
call=call, keypair=alice_coldkey, era={"period": 64}
263+
)
264+
partial_fee_era = payment_info_era["partial_fee"]
265+
assert partial_fee_era > partial_fee_no_era
266+
267+
payment_info_all_options = await substrate.get_payment_info(
268+
call=call,
269+
keypair=alice_coldkey,
270+
era={"period": 64},
271+
nonce=await substrate.get_account_nonce(alice_coldkey.ss58_address),
272+
tip=5_000_000,
273+
tip_asset_id=64,
274+
)
275+
partial_fee_all_options = payment_info_all_options["partial_fee"]
276+
assert partial_fee_all_options > partial_fee_no_era
277+
assert partial_fee_all_options > partial_fee_era

tests/integration_tests/test_substrate_interface.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import bittensor_wallet
12
from scalecodec import ss58_encode
23

34
from async_substrate_interface.sync_substrate import SubstrateInterface
@@ -112,3 +113,41 @@ def test_query_map_with_odd_number_of_params():
112113
first_record = qm.records[0]
113114
assert len(first_record) == 2
114115
assert len(first_record[0]) == 4
116+
117+
118+
def test_get_payment_info():
119+
alice_coldkey = bittensor_wallet.Keypair.create_from_uri("//Alice")
120+
bob_coldkey = bittensor_wallet.Keypair.create_from_uri("//Bob")
121+
with SubstrateInterface(
122+
LATENT_LITE_ENTRYPOINT, ss58_format=42, chain_name="Bittensor"
123+
) as substrate:
124+
block_hash = substrate.get_chain_head()
125+
call = substrate.compose_call(
126+
"Balances",
127+
"transfer_keep_alive",
128+
{"dest": bob_coldkey.ss58_address, "value": 100_000},
129+
block_hash,
130+
)
131+
payment_info = substrate.get_payment_info(
132+
call=call,
133+
keypair=alice_coldkey,
134+
)
135+
partial_fee_no_era = payment_info["partial_fee"]
136+
assert partial_fee_no_era > 0
137+
payment_info_era = substrate.get_payment_info(
138+
call=call, keypair=alice_coldkey, era={"period": 64}
139+
)
140+
partial_fee_era = payment_info_era["partial_fee"]
141+
assert partial_fee_era > partial_fee_no_era
142+
143+
payment_info_all_options = substrate.get_payment_info(
144+
call=call,
145+
keypair=alice_coldkey,
146+
era={"period": 64},
147+
nonce=substrate.get_account_nonce(alice_coldkey.ss58_address),
148+
tip=5_000_000,
149+
tip_asset_id=64,
150+
)
151+
partial_fee_all_options = payment_info_all_options["partial_fee"]
152+
assert partial_fee_all_options > partial_fee_no_era
153+
assert partial_fee_all_options > partial_fee_era

0 commit comments

Comments
 (0)