コード例 #1
0
    def __init__(self, **kwargs) -> None:
        """
        Initialize dialogues.

        :return: None
        """
        Model.__init__(self, **kwargs)
        BaseTacDialogues.__init__(self, self.context.agent_address)
コード例 #2
0
ファイル: dialogues.py プロジェクト: ejfitzgerald/agents-aea
    def __init__(self, **kwargs) -> None:
        """
        Initialize dialogues.

        :return: None
        """
        Model.__init__(self, **kwargs)
        BaseTacDialogues.__init__(self, self.context.agent_address)
        self._dialogue_by_address = {}  # type: Dict[str, Dialogue]
コード例 #3
0
    def __init__(self, self_address: Address) -> None:
        """
        Initialize dialogues.

        :return: None
        """
        def role_from_first_message(  # pylint: disable=unused-argument
                message: Message,
                receiver_address: Address) -> BaseDialogue.Role:
            """Infer the role of the agent from an incoming/outgoing first message

            :param message: an incoming/outgoing first message
            :param receiver_address: the address of the receiving agent
            :return: The role of the agent
            """
            return TacDialogue.Role.CONTROLLER

        TacDialogues.__init__(
            self,
            self_address=self_address,
            role_from_first_message=role_from_first_message,
            dialogue_class=ControllerDialogue,
        )
コード例 #4
0
    def __init__(self, **kwargs: Any) -> None:
        """
        Initialize dialogues.

        :return: None
        """
        Model.__init__(self, **kwargs)

        def role_from_first_message(  # pylint: disable=unused-argument
            message: Message, receiver_address: Address
        ) -> Dialogue.Role:
            """Infer the role of the agent from an incoming/outgoing first message

            :param message: an incoming/outgoing first message
            :param receiver_address: the address of the receiving agent
            :return: The role of the agent
            """
            return TacDialogue.Role.CONTROLLER

        BaseTacDialogues.__init__(
            self,
            self_address=self.context.agent_address,
            role_from_first_message=role_from_first_message,
        )
コード例 #5
0
def test_dialogues_message_resolved_properly():
    """
    Test for the issue in parallel messages sends in the dialogues system.

    issue: https://github.com/fetchai/agents-aea/issues/2128
    """
    addr1 = "addr1"
    addr2 = "addr2"
    part1 = TacDialogues(addr1, role_from_first_message=role_participant)
    part2 = TacDialogues(addr2, role_from_first_message=role_participant)

    msg, _ = part1.create(addr2,
                          performative=TacMessage.Performative.REGISTER,
                          agent_name=addr1)

    dialogue = part2.update(msg)
    assert dialogue
    game_data_msg = dialogue.reply(
        performative=TacMessage.Performative.GAME_DATA)

    dialogue = part1.update(game_data_msg)
    assert dialogue
    transaction1_msg = dialogue.reply(
        performative=TacMessage.Performative.TRANSACTION)
    transaction2_msg = dialogue.reply(
        performative=TacMessage.Performative.TRANSACTION)

    dialogue = part2.update(transaction1_msg)
    assert dialogue
    comfirmation1_msg = dialogue.reply(
        performative=TacMessage.Performative.TRANSACTION_CONFIRMATION)

    dialogue = part1.update(comfirmation1_msg)
    assert dialogue
    transaction3_msg = dialogue.reply(
        performative=TacMessage.Performative.TRANSACTION)

    dialogue = part2.update(transaction2_msg)
    assert dialogue
    comfirmation2_msg = dialogue.reply(
        performative=TacMessage.Performative.TRANSACTION_CONFIRMATION)
    assert comfirmation2_msg.target == transaction2_msg.message_id

    dialogue = part1.update(comfirmation2_msg)
    assert dialogue

    dialogue = part2.update(transaction3_msg)
    assert dialogue
    msg1 = dialogue.reply(
        performative=TacMessage.Performative.TRANSACTION_CONFIRMATION)

    # self reply
    msg2 = dialogue.reply(
        performative=TacMessage.Performative.TRANSACTION_CONFIRMATION)
    assert abs(msg2.message_id) - abs(msg1.message_id) == 1
    assert msg2.target == msg1.message_id