def test_multiple_builds_with_component_instance(): """Test multiple calls to the 'build()' method when adding component instances.""" builder = AEABuilder() builder.set_name("aea_1") builder.add_private_key("fetchai") a_protocol = Protocol( ProtocolConfig("a_protocol", "author", "0.1.0"), DefaultMessage ) builder.add_component_instance(a_protocol) # the first call works aea_1 = builder.build() assert isinstance(aea_1, AEA) # the second call fails with pytest.raises(ValueError, match="Cannot build.*"): builder.build() # after reset, it works builder.reset() builder.set_name("aea_1") builder.add_private_key("fetchai") builder.add_component_instance(a_protocol) aea_2 = builder.build() assert isinstance(aea_2, AEA)
def test_multiple_builds_with_private_keys(): """Test multiple calls to the 'build()' method when adding custom private keys.""" builder = AEABuilder() builder.set_name("aea_1") builder.add_private_key("fetchai", FETCHAI_PRIVATE_KEY_PATH) # the first call works aea_1 = builder.build() assert isinstance(aea_1, AEA) # the second call fails with pytest.raises(ValueError, match="Cannot build.*"): builder.build() # after reset, it works builder.reset() builder.set_name("aea_1") builder.add_private_key("fetchai", FETCHAI_PRIVATE_KEY_PATH) aea_2 = builder.build() assert isinstance(aea_2, AEA)
def test_set_from_config_custom(): """Test set configuration from config loaded.""" dm_dotted_path = f"aea.decision_maker.default{DOTTED_PATH_MODULE_ELEMENT_SEPARATOR}DecisionMakerHandler" dm_file_path = ROOT_DIR + "/aea/decision_maker/default.py" builder = AEABuilder() agent_configuration = Mock() agent_configuration.default_connection = "test/test:0.1.0" agent_configuration.decision_maker_handler = { "dotted_path": dm_dotted_path, "file_path": dm_file_path, } agent_configuration.error_handler = { "dotted_path": f"aea.error_handler.default{DOTTED_PATH_MODULE_ELEMENT_SEPARATOR}ErrorHandler", "file_path": ROOT_DIR + "/aea/error_handler/default.py", } agent_configuration.skill_exception_policy = ExceptionPolicyEnum.just_log agent_configuration.connection_exception_policy = ExceptionPolicyEnum.just_log agent_configuration._default_connection = None agent_configuration.connection_private_key_paths_dict = {"fetchai": None} agent_configuration.ledger_apis_dict = {"fetchai": None} agent_configuration.private_key_paths_dict = {"fetchai": None} agent_configuration.protocols = ( agent_configuration.connections ) = agent_configuration.contracts = agent_configuration.skills = [] builder.set_from_configuration(agent_configuration, aea_project_path="/anydir") assert builder._decision_maker_handler_class is None assert builder._decision_maker_handler_dotted_path == dm_dotted_path assert builder._decision_maker_handler_file_path == dm_file_path assert builder._load_decision_maker_handler_class() is not None builder.reset(is_full_reset=True) agent_configuration.decision_maker_handler = { "dotted_path": dm_dotted_path, "file_path": None, } builder.set_from_configuration(agent_configuration, aea_project_path="/anydir") assert builder._load_decision_maker_handler_class() is not None