コード例 #1
0
    def test_drop_messages_from_decision_maker_inbox(self):
        """Test the drop_messages_from_decision_maker_inbox method."""
        assert self.get_quantity_in_decision_maker_inbox() == 0
        self.drop_messages_from_decision_maker_inbox(5)
        assert self.get_quantity_in_decision_maker_inbox() == 0

        dummy_message_1 = Message()
        dummy_message_1.to = "some_to_1"
        dummy_message_1.sender = "some_sender_1"
        self.skill.skill_context.decision_maker_message_queue.put(
            dummy_message_1)

        dummy_message_2 = Message()
        dummy_message_2.to = "some_to_2"
        dummy_message_2.sender = "some_sender_2"
        self.skill.skill_context.decision_maker_message_queue.put(
            dummy_message_2)

        dummy_message_3 = Message()
        dummy_message_3.to = "some_to_3"
        dummy_message_3.sender = "some_sender_3"
        self.skill.skill_context.decision_maker_message_queue.put(
            dummy_message_3)

        assert self.get_quantity_in_decision_maker_inbox() == 3

        self.drop_messages_from_decision_maker_inbox(2)

        assert self.get_quantity_in_decision_maker_inbox() == 1
        assert self.get_message_from_decision_maker_inbox() == dummy_message_3
コード例 #2
0
ファイル: base.py プロジェクト: hame58gp/agents-aea
 def _check_consistency(message: Message, to: str, sender: str) -> Message:
     """Check consistency of sender and to."""
     if message.has_to:
         enforce(message.to == to,
                 "To specified on message does not match envelope.")
     else:
         message.to = to
     if message.has_sender:
         enforce(
             message.sender == sender,
             "Sender specified on message does not match envelope.",
         )
     else:
         message.sender = sender
     return message
コード例 #3
0
ファイル: utils.py プロジェクト: hame58gp/agents-aea
    def dummy_envelope(
        cls,
        to: str = "test",
        sender: str = "test",
        protocol_id: PublicId = DefaultMessage.protocol_id,
        message: Message = None,
    ) -> Envelope:
        """
        Create envelope, if message is not passed use .dummy_message method.

        :return: Envelope
        """
        message = message or cls.dummy_default_message()
        message.sender = sender
        message.to = to
        return Envelope(
            to=to,
            sender=sender,
            protocol_id=protocol_id,
            message=message,
        )
コード例 #4
0
    def update(self, message: Message) -> bool:
        """
        Extend the list of incoming/outgoing messages with 'message', if 'message' belongs to dialogue and is valid.

        :param message: a message to be added
        :return: True if message successfully added, false otherwise
        """
        if not message.is_incoming:
            message.sender = self.agent_address

        self.ensure_counterparty(message)

        if not self.is_belonging_to_dialogue(message):
            return False

        is_extendable = self.is_valid_next_message(message)
        if is_extendable:
            if message.is_incoming:
                self._incoming_messages.extend([message])
            else:
                self._outgoing_messages.extend([message])
        return is_extendable