def test_agent_info(): """Test the agent_info custom type.""" agents_info = OefSearchMessage.AgentsInfo( { "agent_address_1": {"key_1": b"value_1", "key_2": b"value_2"}, "agent_address_2": {"key_3": b"value_3", "key_4": b"value_4"}, } ) assert agents_info.get_info_for_agent("agent_address_1") == { "key_1": b"value_1", "key_2": b"value_2", } with pytest.raises(ValueError, match="body must not be None"): OefSearchMessage.AgentsInfo(None)
def test_success_serialization(): """Test the serialization for 'success' speech-act works.""" msg = OefSearchMessage( performative=OefSearchMessage.Performative.SUCCESS, agents_info=OefSearchMessage.AgentsInfo( { "key_1": {"key_1": b"value_1", "key_2": b"value_2"}, "key_2": {"key_3": b"value_3", "key_4": b"value_4"}, } ), ) msg.to = "receiver" envelope = Envelope(to=msg.to, sender="sender", message=msg,) envelope_bytes = envelope.encode() actual_envelope = Envelope.decode(envelope_bytes) expected_envelope = envelope assert expected_envelope.to == actual_envelope.to assert expected_envelope.sender == actual_envelope.sender assert ( expected_envelope.protocol_specification_id == actual_envelope.protocol_specification_id ) assert expected_envelope.message != actual_envelope.message actual_msg = OefSearchMessage.serializer.decode(actual_envelope.message) actual_msg.to = actual_envelope.to actual_msg.sender = actual_envelope.sender expected_msg = msg assert expected_msg == actual_msg
def test_handle_search_ii(self): """Test the _handle_search method of the oef_search handler where the number of agents found is 0.""" # setup agents = tuple() oef_search_dialogue = self.prepare_skill_dialogue( dialogues=self.oef_search_dialogues, messages=self.list_of_messages[:1], ) incoming_message = self.build_incoming_message_for_skill_dialogue( dialogue=oef_search_dialogue, performative=OefSearchMessage.Performative.SEARCH_RESULT, agents=agents, agents_info=OefSearchMessage.AgentsInfo({ "agent_1": { "key_1": "value_1", "key_2": "value_2" }, "agent_2": { "key_3": "value_3", "key_4": "value_4" }, }), ) # operation with patch.object(self.logger, "log") as mock_logger: self.oef_search_handler.handle(incoming_message) # after mock_logger.assert_any_call( logging.INFO, f"no agents found, search_response={incoming_message}", )
def test_search_result_serialization(): """Test the serialization for 'search_result' speech-act works.""" msg = OefSearchMessage( performative=OefSearchMessage.Performative.SEARCH_RESULT, agents=("agent_1", "agent_2", "agent_3"), agents_info=OefSearchMessage.AgentsInfo({ "key_1": { "key_1": b"value_1", "key_2": b"value_2" }, "key_2": { "key_3": b"value_3", "key_4": b"value_4" }, }), ) msg.to = "receiver" envelope = Envelope( to=msg.to, sender="sender", protocol_id=OefSearchMessage.protocol_id, message=msg, ) envelope_bytes = envelope.encode() actual_envelope = Envelope.decode(envelope_bytes) expected_envelope = envelope assert expected_envelope.to == actual_envelope.to assert expected_envelope.sender == actual_envelope.sender assert expected_envelope.protocol_id == actual_envelope.protocol_id assert expected_envelope.message != actual_envelope.message actual_msg = OefSearchMessage.serializer.decode(actual_envelope.message) actual_msg.to = actual_envelope.to actual_msg.sender = actual_envelope.sender expected_msg = msg assert expected_msg == actual_msg