Skip to content

Commit 4911c77

Browse files
fix: properly mock data_chain class methods
1 parent 5804210 commit 4911c77

File tree

2 files changed

+95
-47
lines changed

2 files changed

+95
-47
lines changed

tests/unit_tests/test_async_subtensor.py

Lines changed: 50 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,10 @@ async def test_get_delegates(subtensor, mocker, fake_result, response):
389389
autospec=subtensor.query_runtime_api, return_value=fake_result
390390
)
391391
subtensor.query_runtime_api = mocked_query_runtime_api
392-
mocked_delegate_info_list_from_dicts = mocker.Mock()
393-
async_subtensor.DelegateInfo.list_from_dicts = mocked_delegate_info_list_from_dicts
392+
mocked_delegate_info_list_from_dicts = mocker.patch.object(
393+
async_subtensor.DelegateInfo,
394+
"list_from_dicts",
395+
)
394396

395397
# Call
396398
result = await subtensor.get_delegates(block_hash=None, reuse_block=False)
@@ -432,7 +434,11 @@ async def test_get_stake_info_for_coldkey(subtensor, mocker, fake_result, respon
432434
mocked_stake_info_list_from_dicts = mocker.Mock(
433435
return_value=[mock_stake_info] if fake_result else []
434436
)
435-
async_subtensor.StakeInfo.list_from_dicts = mocked_stake_info_list_from_dicts
437+
mocker.patch.object(
438+
async_subtensor.StakeInfo,
439+
"list_from_dicts",
440+
mocked_stake_info_list_from_dicts,
441+
)
436442

437443
# Call
438444
result = await subtensor.get_stake_info_for_coldkey(
@@ -974,9 +980,8 @@ async def test_neurons_lite(subtensor, mocker, fake_result, response):
974980
mocked_query_runtime_api = mocker.AsyncMock(return_value=fake_result)
975981
subtensor.query_runtime_api = mocked_query_runtime_api
976982

977-
mocked_neuron_info_lite_list_from_dicts = mocker.Mock()
978-
async_subtensor.NeuronInfoLite.list_from_dicts = (
979-
mocked_neuron_info_lite_list_from_dicts
983+
mocked_neuron_info_lite_list_from_dicts = mocker.patch.object(
984+
async_subtensor.NeuronInfoLite, "list_from_dicts"
980985
)
981986

982987
# Call
@@ -1138,11 +1143,14 @@ async def test_neuron_for_uid_happy_path(subtensor, mocker):
11381143
fake_netuid = 2
11391144
fake_block_hash = "block_hash"
11401145

1141-
mocked_null_neuron = mocker.Mock()
1142-
async_subtensor.NeuronInfo.get_null_neuron = mocked_null_neuron
1143-
1144-
mocked_neuron_info_from_dict = mocker.Mock()
1145-
async_subtensor.NeuronInfo.from_dict = mocked_neuron_info_from_dict
1146+
mocked_null_neuron = mocker.patch.object(
1147+
async_subtensor.NeuronInfo,
1148+
"get_null_neuron",
1149+
)
1150+
mocked_neuron_info_from_dict = mocker.patch.object(
1151+
async_subtensor.NeuronInfo,
1152+
"from_dict",
1153+
)
11461154

11471155
# Call
11481156
result = await subtensor.neuron_for_uid(
@@ -1165,8 +1173,10 @@ async def test_neuron_for_uid_with_none_uid(subtensor, mocker):
11651173
fake_netuid = 1
11661174
fake_block_hash = "block_hash"
11671175

1168-
mocked_null_neuron = mocker.Mock()
1169-
async_subtensor.NeuronInfo.get_null_neuron = mocked_null_neuron
1176+
mocked_null_neuron = mocker.patch.object(
1177+
async_subtensor.NeuronInfo,
1178+
"get_null_neuron",
1179+
)
11701180

11711181
# Call
11721182
result = await subtensor.neuron_for_uid(
@@ -1186,8 +1196,10 @@ async def test_neuron_for_uid(subtensor, mocker):
11861196
fake_netuid = 2
11871197
fake_block_hash = "block_hash"
11881198

1189-
mocked_null_neuron = mocker.Mock()
1190-
async_subtensor.NeuronInfo.get_null_neuron = mocked_null_neuron
1199+
mocked_null_neuron = mocker.patch.object(
1200+
async_subtensor.NeuronInfo,
1201+
"get_null_neuron",
1202+
)
11911203

11921204
# no result in response
11931205
mocked_substrate_runtime_call = mocker.AsyncMock(
@@ -1197,8 +1209,10 @@ async def test_neuron_for_uid(subtensor, mocker):
11971209
)
11981210
subtensor.substrate.runtime_call = mocked_substrate_runtime_call
11991211

1200-
mocked_neuron_info_from_dict = mocker.Mock()
1201-
async_subtensor.NeuronInfo.from_dict = mocked_neuron_info_from_dict
1212+
mocked_neuron_info_from_dict = mocker.patch.object(
1213+
async_subtensor.NeuronInfo,
1214+
"from_dict",
1215+
)
12021216

12031217
# Call
12041218
result = await subtensor.neuron_for_uid(
@@ -2173,8 +2187,11 @@ async def test_weights_rate_limit_success(subtensor, mocker):
21732187
fake_netuid = 1
21742188
fake_rate_limit = 10
21752189

2176-
mocked_get_hyperparameter = mocker.AsyncMock(return_value=fake_rate_limit)
2177-
subtensor.get_hyperparameter = mocked_get_hyperparameter
2190+
mocked_get_hyperparameter = mocker.patch.object(
2191+
subtensor,
2192+
"get_hyperparameter",
2193+
return_value=fake_rate_limit,
2194+
)
21782195

21792196
# Call
21802197
result = await subtensor.weights_rate_limit(netuid=fake_netuid)
@@ -2196,8 +2213,11 @@ async def test_weights_rate_limit_none(subtensor, mocker):
21962213
fake_netuid = 1
21972214
fake_result = None
21982215

2199-
mocked_get_hyperparameter = mocker.AsyncMock(return_value=fake_result)
2200-
subtensor.get_hyperparameter = mocked_get_hyperparameter
2216+
mocked_get_hyperparameter = mocker.patch.object(
2217+
subtensor,
2218+
"get_hyperparameter",
2219+
return_value=fake_result,
2220+
)
22012221

22022222
# Call
22032223
result = await subtensor.weights_rate_limit(netuid=fake_netuid)
@@ -2222,10 +2242,11 @@ async def test_blocks_since_last_update_success(subtensor, mocker):
22222242
current_block = 100
22232243
fake_blocks_since_update = current_block - last_update_block
22242244

2225-
mocked_get_hyperparameter = mocker.AsyncMock(
2226-
return_value={fake_uid: last_update_block}
2245+
mocked_get_hyperparameter = mocker.patch.object(
2246+
subtensor,
2247+
"get_hyperparameter",
2248+
return_value={fake_uid: last_update_block},
22272249
)
2228-
subtensor.get_hyperparameter = mocked_get_hyperparameter
22292250

22302251
mocked_get_current_block = mocker.AsyncMock(return_value=current_block)
22312252
subtensor.get_current_block = mocked_get_current_block
@@ -2249,8 +2270,11 @@ async def test_blocks_since_last_update_no_last_update(subtensor, mocker):
22492270
fake_uid = 5
22502271
fake_result = None
22512272

2252-
mocked_get_hyperparameter = mocker.AsyncMock(return_value=fake_result)
2253-
subtensor.get_hyperparameter = mocked_get_hyperparameter
2273+
mocked_get_hyperparameter = mocker.patch.object(
2274+
subtensor,
2275+
"get_hyperparameter",
2276+
return_value=fake_result,
2277+
)
22542278

22552279
# Call
22562280
result = await subtensor.blocks_since_last_update(netuid=fake_netuid, uid=fake_uid)

tests/unit_tests/test_subtensor.py

Lines changed: 45 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -367,15 +367,23 @@ def test_blocks_since_last_update_success_calls(subtensor, mocker):
367367
uid = 7
368368
mocked_current_block = 2
369369
mocked_result = {uid: 1}
370-
subtensor.get_hyperparameter = mocker.MagicMock(return_value=mocked_result)
371-
subtensor.get_current_block = mocker.MagicMock(return_value=mocked_current_block)
370+
mocked_get_hyperparameter = mocker.patch.object(
371+
subtensor,
372+
"get_hyperparameter",
373+
return_value=mocked_result,
374+
)
375+
mocked_get_current_block = mocker.patch.object(
376+
subtensor,
377+
"get_current_block",
378+
return_value=mocked_current_block,
379+
)
372380

373381
# Call
374382
result = subtensor.blocks_since_last_update(netuid=7, uid=uid)
375383

376384
# Assertions
377-
subtensor.get_current_block.assert_called_once()
378-
subtensor.get_hyperparameter.assert_called_once_with(
385+
mocked_get_current_block.assert_called_once()
386+
mocked_get_hyperparameter.assert_called_once_with(
379387
param_name="LastUpdate", netuid=7
380388
)
381389
assert result == 1
@@ -386,13 +394,17 @@ def test_blocks_since_last_update_success_calls(subtensor, mocker):
386394
def test_weights_rate_limit_success_calls(subtensor, mocker):
387395
"""Tests the weights_rate_limit method to ensure it correctly fetches the WeightsSetRateLimit hyperparameter."""
388396
# Prep
389-
subtensor.get_hyperparameter = mocker.MagicMock(return_value=5)
397+
mocked_get_hyperparameter = mocker.patch.object(
398+
subtensor,
399+
"get_hyperparameter",
400+
return_value=5,
401+
)
390402

391403
# Call
392404
result = subtensor.weights_rate_limit(netuid=7)
393405

394406
# Assertions
395-
subtensor.get_hyperparameter.assert_called_once_with(
407+
mocked_get_hyperparameter.assert_called_once_with(
396408
param_name="WeightsSetRateLimit",
397409
netuid=7,
398410
block=None,
@@ -1285,9 +1297,11 @@ def test_subnetwork_n(subtensor, mocker):
12851297
fake_block = 123
12861298
fake_result = 2
12871299

1288-
mocked_get_hyperparameter = mocker.MagicMock()
1289-
mocked_get_hyperparameter.return_value = fake_result
1290-
subtensor.get_hyperparameter = mocked_get_hyperparameter
1300+
mocked_get_hyperparameter = mocker.patch.object(
1301+
subtensor,
1302+
"get_hyperparameter",
1303+
return_value=fake_result,
1304+
)
12911305

12921306
# Call
12931307
result = subtensor.subnetwork_n(fake_netuid, fake_block)
@@ -1589,11 +1603,13 @@ def test_immunity_period(subtensor, mocker):
15891603
# Preps
15901604
fake_netuid = 1
15911605
fake_block = 123
1592-
fare_result = 101
1606+
fake_result = 101
15931607

1594-
mocked_get_hyperparameter = mocker.MagicMock()
1595-
mocked_get_hyperparameter.return_value = fare_result
1596-
subtensor.get_hyperparameter = mocked_get_hyperparameter
1608+
mocked_get_hyperparameter = mocker.patch.object(
1609+
subtensor,
1610+
"get_hyperparameter",
1611+
return_value=fake_result,
1612+
)
15971613

15981614
# Call
15991615
result = subtensor.immunity_period(netuid=fake_netuid, block=fake_block)
@@ -1638,11 +1654,13 @@ def test_tempo(subtensor, mocker):
16381654
# Preps
16391655
fake_netuid = 1
16401656
fake_block = 123
1641-
fare_result = 101
1657+
fake_result = 101
16421658

1643-
mocked_get_hyperparameter = mocker.MagicMock()
1644-
mocked_get_hyperparameter.return_value = fare_result
1645-
subtensor.get_hyperparameter = mocked_get_hyperparameter
1659+
mocked_get_hyperparameter = mocker.patch.object(
1660+
subtensor,
1661+
"get_hyperparameter",
1662+
return_value=fake_result,
1663+
)
16461664

16471665
# Call
16481666
result = subtensor.tempo(netuid=fake_netuid, block=fake_block)
@@ -1823,8 +1841,11 @@ def test_min_allowed_weights(subtensor, mocker):
18231841
fake_block = 123
18241842
return_value = 10
18251843

1826-
mocked_get_hyperparameter = mocker.MagicMock(return_value=return_value)
1827-
subtensor.get_hyperparameter = mocked_get_hyperparameter
1844+
mocked_get_hyperparameter = mocker.patch.object(
1845+
subtensor,
1846+
"get_hyperparameter",
1847+
return_value=return_value,
1848+
)
18281849

18291850
# Call
18301851
result = subtensor.min_allowed_weights(netuid=fake_netuid, block=fake_block)
@@ -1842,8 +1863,11 @@ def test_max_weight_limit(subtensor, mocker):
18421863
fake_block = 123
18431864
return_value = 100
18441865

1845-
mocked_get_hyperparameter = mocker.MagicMock(return_value=return_value)
1846-
subtensor.get_hyperparameter = mocked_get_hyperparameter
1866+
mocked_get_hyperparameter = mocker.patch.object(
1867+
subtensor,
1868+
"get_hyperparameter",
1869+
return_value=return_value,
1870+
)
18471871

18481872
mocked_u16_normalized_float = mocker.patch.object(
18491873
subtensor_module,

0 commit comments

Comments
 (0)