Skip to content

packages.valory.skills.registration_abci.tests.test_behaviours

Tests for valory/registration_abci skill's behaviours.

test_skill_public_id

def test_skill_public_id() -> None

Test skill module public ID

consume

def consume(iterator: Iterable) -> None

Consume the iterator

as_context

@contextmanager
def as_context(*contexts: Any) -> Generator[None, None, None]

Set contexts

RegistrationAbciBaseCase Objects

class RegistrationAbciBaseCase(FSMBehaviourBaseCase)

Base case for testing RegistrationAbci FSMBehaviour.

BaseRegistrationTestBehaviour Objects

class BaseRegistrationTestBehaviour(RegistrationAbciBaseCase)

Base test case to test RegistrationBehaviour.

test_registration

@pytest.mark.parametrize(
    "setup_data, expected_initialisation",
    (
        ({}, '{"db_data": {"0": {}}, "slashing_config": ""}'),
        ({
            "test": []
        }, '{"db_data": {"0": {}}, "slashing_config": ""}'),
        (
            {
                "test": [],
                "valid": [1, 2]
            },
            '{"db_data": {"0": {"valid": [1, 2]}}, "slashing_config": ""}',
        ),
    ),
)
def test_registration(setup_data: Dict,
                      expected_initialisation: Optional[str]) -> None

Test registration.

TestRegistrationStartupBehaviour Objects

class TestRegistrationStartupBehaviour(RegistrationAbciBaseCase)

Test case to test RegistrationStartupBehaviour.

setup_method

def setup_method(**kwargs: Any) -> None

Setup

teardown_method

def teardown_method(**kwargs: Any) -> None

Teardown.

agent_instances

@property
def agent_instances() -> List[str]

Agent instance addresses

state

@property
def state() -> RegistrationStartupBehaviour

Current behavioural state

logger

@property
def logger() -> str

Logger

mocked_service_registry_address

@property
def mocked_service_registry_address() -> mock._patch_dict

Mocked service registry address

mocked_on_chain_service_id

@property
def mocked_on_chain_service_id() -> mock._patch_dict

Mocked on chain service id

mocked_wait_for_condition

def mocked_wait_for_condition(should_timeout: bool) -> mock._patch

Mock BaseBehaviour.wait_for_condition

mocked_yield_from_sleep

@property
def mocked_yield_from_sleep() -> mock._patch

Mock yield from sleep

mock_is_correct_contract

def mock_is_correct_contract(error_response: bool = False) -> None

Mock service registry contract call to for contract verification

mock_get_agent_instances

def mock_get_agent_instances(*agent_instances: str,
                             error_response: bool = False) -> None

Mock get agent instances

mock_tendermint_request

def mock_tendermint_request(request_kwargs: Dict,
                            response_kwargs: Dict) -> None

Mock Tendermint request.

mock_get_tendermint_info

def mock_get_tendermint_info(*addresses: str) -> None

Mock get Tendermint info

mock_get_local_tendermint_params

def mock_get_local_tendermint_params(valid_response: bool = True) -> None

Mock Tendermint get local params

mock_tendermint_update

def mock_tendermint_update(valid_response: bool = True) -> None

Mock Tendermint update

set_last_timestamp

def set_last_timestamp(last_timestamp: Optional[datetime.datetime]) -> None

Set last timestamp

dummy_reset_tendermint_with_wait_wrapper

@staticmethod
def dummy_reset_tendermint_with_wait_wrapper(
    valid_response: bool
) -> Callable[[], Generator[None, None, Optional[bool]]]

Wrapper for a Dummy reset_tendermint_with_wait method.

test_init

def test_init() -> None

Empty init

test_no_contract_address

def test_no_contract_address(caplog: LogCaptureFixture) -> None

Test service registry contract address not provided

test_request_personal

@pytest.mark.parametrize("valid_response", [True, False])
def test_request_personal(valid_response: bool,
                          caplog: LogCaptureFixture) -> None

Test get tendermint configuration

test_failed_verification

def test_failed_verification(caplog: LogCaptureFixture) -> None

Test service registry contract not correctly deployed

test_on_chain_service_id_not_set

def test_on_chain_service_id_not_set(caplog: LogCaptureFixture) -> None

Test get_addresses when on_chain_service_id is None.

test_failed_service_info

def test_failed_service_info(caplog: LogCaptureFixture) -> None

Test get service info failure

test_no_agents_registered

def test_no_agents_registered(caplog: LogCaptureFixture) -> None

Test no agent instances registered

test_self_not_registered

def test_self_not_registered(caplog: LogCaptureFixture) -> None

Test node operator agent not registered

test_response_service_info

def test_response_service_info(caplog: LogCaptureFixture) -> None

Test registered addresses retrieved

test_collection_complete

def test_collection_complete(caplog: LogCaptureFixture) -> None

Test registered addresses retrieved

test_request_update

@pytest.mark.parametrize("valid_response", [True, False])
@mock.patch.object(BaseBehaviour, "reset_tendermint_with_wait")
def test_request_update(_: mock.Mock, valid_response: bool,
                        caplog: LogCaptureFixture) -> None

Test Tendermint config update

test_request_restart

@pytest.mark.parametrize(
    "valid_response, last_timestamp, timeout",
    [
        (True, _time_in_past, False),
        (False, _time_in_past, False),
        (True, _time_in_future, False),
        (False, _time_in_future, False),
        (True, None, False),
        (False, None, False),
        (True, None, True),
        (False, None, True),
    ],
)
def test_request_restart(valid_response: bool,
                         last_timestamp: Optional[datetime.datetime],
                         timeout: bool, caplog: LogCaptureFixture) -> None

Test Tendermint start

TestRegistrationStartupBehaviourNoConfigShare Objects

class TestRegistrationStartupBehaviourNoConfigShare(
        BaseRegistrationTestBehaviour)

Test case to test RegistrationBehaviour.

TestRegistrationBehaviour Objects

class TestRegistrationBehaviour(BaseRegistrationTestBehaviour)

Test case to test RegistrationBehaviour.