Exemple #1
0
def test_receive_with_timeout():
    class RecvBehaviour(OneShotBehaviour):
        async def run(self):
            self.agent.recv_msg = await self.receive(5.0)
            self.kill()

    agent = make_connected_agent()

    msg = Message(body="received body")
    template = Template(body="received body")
    behaviour = RecvBehaviour()
    agent.add_behaviour(behaviour, template)
    assert behaviour.mailbox_size() == 0

    agent.start(auto_register=False)
    agent._message_received(msg.prepare())
    assert agent.is_alive()
    assert agent.has_behaviour(behaviour)

    wait_for_behaviour_is_killed(behaviour)

    assert agent.recv_msg.body == "received body"
    assert agent.recv_msg == msg

    agent.stop()
Exemple #2
0
def test_receive_with_timeout():
    class RecvBehaviour(OneShotBehaviour):
        async def run(self):
            self.agent.recv_msg = await self.receive(5.0)
            self.kill()

    agent = MockedAgentFactory()

    msg = Message(body="received body")
    template = Template(body="received body")
    behaviour = RecvBehaviour()
    agent.add_behaviour(behaviour, template)
    assert behaviour.mailbox_size() == 0

    future = agent.start(auto_register=False)
    future.result()
    agent._message_received(msg.prepare())
    assert agent.is_alive()
    assert agent.has_behaviour(behaviour)

    behaviour.join()

    assert agent.recv_msg.body == "received body"
    assert agent.recv_msg == msg

    agent.stop()
Exemple #3
0
def test_receive_with_timeout():
    class RecvBehaviour(OneShotBehaviour):
        async def run(self):
            self.agent.recv_msg = await self.receive(5.0)
            self.kill()

    agent = make_connected_agent()

    msg = Message(body="received body")
    template = Template(body="received body")
    behaviour = RecvBehaviour()
    agent.add_behaviour(behaviour, template)
    assert behaviour.mailbox_size() == 0

    future = agent.start(auto_register=False)
    future.result()
    agent._message_received(msg.prepare())
    assert agent.is_alive()
    assert agent.has_behaviour(behaviour)

    behaviour.join()

    assert agent.recv_msg.body == "received body"
    assert agent.recv_msg == msg

    agent.stop()
Exemple #4
0
def test_thread_empty():
    msg = Message(thread=None)

    assert msg.thread is None
    assert msg.metadata == {}

    aiomsg = msg.prepare()
    for data in aiomsg.xep0004_data:
        if data.title == SPADE_X_METADATA:
            for field in data.fields:
                assert field.var != "_thread_node"
Exemple #5
0
def test_thread_empty():
    msg = Message(thread=None)

    assert msg.thread is None
    assert msg.metadata == {}

    aiomsg = msg.prepare()
    for data in aiomsg.xep0004_data:
        if data.title == SPADE_X_METADATA:
            for field in data.fields:
                assert field.var != "_thread_node"
Exemple #6
0
 async def send_agent(self, request):
     agent_jid = request.match_info['agentjid']
     form = await request.post()
     body = form["message"]
     logger.info("Sending message to {}: {}".format(agent_jid, body))
     msg = Message(to=agent_jid, sender=str(self.agent.jid), body=body)
     aioxmpp_msg = msg.prepare()
     await self.agent.stream.send(aioxmpp_msg)
     msg.sent = True
     self.agent.traces.append(msg)
     raise aioweb.HTTPFound("/agent/{agentjid}/".format(agentjid=agent_jid))
Exemple #7
0
 async def send_agent(self, request):
     agent_jid = request.match_info['agentjid']
     form = await request.post()
     body = form["message"]
     logger.info("Sending message to {}: {}".format(agent_jid, body))
     msg = Message(to=agent_jid, sender=str(self.agent.jid), body=body)
     aioxmpp_msg = msg.prepare()
     await self.agent.stream.send(aioxmpp_msg)
     msg.sent = True
     self.agent.traces.append(msg)
     raise aioweb.HTTPFound("/spade/agent/{agentjid}/".format(agentjid=agent_jid))
    async def send(self, msg: Message):
        """
        Sends a message.

        Args:
            msg (spade.message.Message): the message to be sent.
        """
        if not msg.sender:
            msg.sender = str(self.jid)
            logger.debug(f"Adding artifact's jid as sender to message: {msg}")
        aioxmpp_msg = msg.prepare()
        await self.client.send(aioxmpp_msg)
        msg.sent = True