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()
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()
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()
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"
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))
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