Skip to content

Commit 7288c8f

Browse files
author
Roman
committed
add tests for async subtensor
1 parent 97c522e commit 7288c8f

File tree

1 file changed

+135
-0
lines changed

1 file changed

+135
-0
lines changed

tests/unit_tests/test_async_subtensor.py

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3168,3 +3168,138 @@ async def test_get_metagraph_info_subnet_not_exist(subtensor, mocker):
31683168

31693169
assert result is None
31703170
mocked_logger.assert_called_once_with(f"Subnet {netuid} does not exist.")
3171+
3172+
3173+
@pytest.mark.asyncio
3174+
async def test_blocks_since_last_step_with_value(subtensor, mocker):
3175+
"""Test blocks_since_last_step returns correct value."""
3176+
# preps
3177+
netuid = 1
3178+
block = 123
3179+
mocked_query_subtensor = mocker.AsyncMock()
3180+
subtensor.query_subtensor = mocked_query_subtensor
3181+
3182+
# call
3183+
result = await subtensor.blocks_since_last_step(netuid=netuid, block=block)
3184+
3185+
# asserts
3186+
mocked_query_subtensor.assert_awaited_once_with(
3187+
name="BlocksSinceLastStep",
3188+
block=block,
3189+
params=[netuid],
3190+
)
3191+
3192+
assert result == mocked_query_subtensor.return_value.value
3193+
3194+
3195+
@pytest.mark.asyncio
3196+
async def test_blocks_since_last_step_is_none(subtensor, mocker):
3197+
"""Test blocks_since_last_step returns None correctly."""
3198+
# preps
3199+
netuid = 1
3200+
block = 123
3201+
mocked_query_subtensor = mocker.AsyncMock(return_value=None)
3202+
subtensor.query_subtensor = mocked_query_subtensor
3203+
3204+
# call
3205+
result = await subtensor.blocks_since_last_step(netuid=netuid, block=block)
3206+
3207+
# asserts
3208+
mocked_query_subtensor.assert_awaited_once_with(
3209+
name="BlocksSinceLastStep",
3210+
block=block,
3211+
params=[netuid],
3212+
)
3213+
3214+
assert result is None
3215+
3216+
3217+
@pytest.mark.asyncio
3218+
async def test_get_subnet_owner_hotkey_has_return(subtensor, mocker):
3219+
"""Test get_subnet_owner_hotkey returns correct value."""
3220+
# preps
3221+
netuid = 14
3222+
block = 123
3223+
expected_owner_hotkey = "owner_hotkey"
3224+
mocked_query_subtensor = mocker.AsyncMock(return_value=expected_owner_hotkey)
3225+
subtensor.query_subtensor = mocked_query_subtensor
3226+
3227+
# call
3228+
result = await subtensor.get_subnet_owner_hotkey(netuid=netuid, block=block)
3229+
3230+
# asserts
3231+
mocked_query_subtensor.assert_awaited_once_with(
3232+
name="SubnetOwnerHotkey",
3233+
block=block,
3234+
params=[netuid],
3235+
)
3236+
3237+
assert result == expected_owner_hotkey
3238+
3239+
3240+
@pytest.mark.asyncio
3241+
async def test_get_subnet_owner_hotkey_is_none(subtensor, mocker):
3242+
"""Test get_subnet_owner_hotkey returns None correctly."""
3243+
# preps
3244+
netuid = 14
3245+
block = 123
3246+
mocked_query_subtensor = mocker.AsyncMock(return_value=None)
3247+
subtensor.query_subtensor = mocked_query_subtensor
3248+
3249+
# call
3250+
result = await subtensor.get_subnet_owner_hotkey(netuid=netuid, block=block)
3251+
3252+
# asserts
3253+
mocked_query_subtensor.assert_awaited_once_with(
3254+
name="SubnetOwnerHotkey",
3255+
block=block,
3256+
params=[netuid],
3257+
)
3258+
3259+
assert result is None
3260+
3261+
3262+
@pytest.mark.asyncio
3263+
async def test_get_subnet_validator_permits_has_values(subtensor, mocker):
3264+
"""Test get_subnet_validator_permits returns correct value."""
3265+
# preps
3266+
netuid = 14
3267+
block = 123
3268+
expected_validator_permits = [False, True, False]
3269+
mocked_query_subtensor = mocker.AsyncMock(return_value=expected_validator_permits)
3270+
subtensor.query_subtensor = mocked_query_subtensor
3271+
3272+
# call
3273+
result = await subtensor.get_subnet_validator_permits(netuid=netuid, block=block)
3274+
3275+
# asserts
3276+
mocked_query_subtensor.assert_awaited_once_with(
3277+
name="ValidatorPermit",
3278+
block=block,
3279+
params=[netuid],
3280+
)
3281+
3282+
assert result == expected_validator_permits
3283+
3284+
3285+
@pytest.mark.asyncio
3286+
async def test_get_subnet_validator_permits_is_none(subtensor, mocker):
3287+
"""Test get_subnet_validator_permits returns correct value."""
3288+
# preps
3289+
netuid = 14
3290+
block = 123
3291+
3292+
mocked_query_subtensor = mocker.AsyncMock(return_value=None)
3293+
subtensor.query_subtensor = mocked_query_subtensor
3294+
3295+
# call
3296+
result = await subtensor.get_subnet_validator_permits(netuid=netuid, block=block)
3297+
3298+
# asserts
3299+
mocked_query_subtensor.assert_awaited_once_with(
3300+
name="ValidatorPermit",
3301+
block=block,
3302+
params=[netuid],
3303+
)
3304+
3305+
assert result is None

0 commit comments

Comments
 (0)