def start(self, auto_register=True): Agent.start(self, auto_register=auto_register) if self.m_ServiceList: for service in self.m_ServiceList: print(" * Name: " + self.name) print(" * Type: " + service) self.register_service(service)
def start(self, auto_register=True): class RegisterServiceBehaviour(Behaviour): async def run(self): msg = await self.receive(timeout=1000000) self.agent.register_service(msg.body, str(msg.sender.bare())) print("Service " + msg.body + " of " + msg.sender + " registered") class DeregisterServiceBehaviour(Behaviour): async def run(self): msg = await self.receive(timeout=1000000) self.agent.deregister_service(msg.body, msg.sender) print("Service " + msg.body + " of " + msg.sender + " deregistered") class DeregisterAgentBehaviour(Behaviour): async def run(self): msg = await self.receive(timeout=1000000) self.agent.deregister_agent(msg.sender) print("Agent " + msg.sender + " deregistered") class GetServiceBehaviour(Behaviour): async def run(self): msg = await self.receive(timeout=1000000) names = self.agent.get_service(msg.body) reply = msg.make_reply() reply.body = str(names) await self.send(reply) print("Services sended") Agent.start(self, auto_register=auto_register) template1 = Template() template1.set_metadata("performative", "register") self.add_behaviour(RegisterServiceBehaviour(), template1) template2 = Template() template2.set_metadata("performative", "deregister_service") self.add_behaviour(DeregisterServiceBehaviour(), template2) template3 = Template() template3.set_metadata("performative", "deregister_agent") self.add_behaviour(DeregisterAgentBehaviour(), template3) template4 = Template() template4.set_metadata("performative", "get") self.add_behaviour(GetServiceBehaviour(), template4)
def start(self, auto_register=True): future = Agent.start(self, auto_register=auto_register) if self.services: for service in self.services: logger.info("{} registering service {}".format( self.name, service)) self.register_service(service) return future
def test_create_agent(mocker): mocker.patch("spade.agent.AioThread.connect") agent = Agent("jid@server", "fake_password") assert agent.is_alive() is False agent.start(auto_register=False) assert agent.is_alive() is True agent.aiothread.connect.assert_called_once() assert agent.stream is None agent.aiothread.conn_coro = mocker.Mock() agent.aiothread.conn_coro.__aexit__ = CoroutineMock() agent.stop() agent.aiothread.conn_coro.__aexit__.assert_called_once() assert agent.is_alive() is False
def test_create_agent(mocker): agent = Agent("jid@server", "fake_password") agent._async_connect = CoroutineMock() assert agent.is_alive() is False future = agent.start(auto_register=False) assert future.result() is None agent._async_connect.assert_called_once() assert agent.stream is None agent.conn_coro = mocker.Mock() agent.conn_coro.__aexit__ = CoroutineMock() assert agent.is_alive() is True future = agent.stop() future.result() agent.conn_coro.__aexit__.assert_called_once() assert agent.is_alive() is False