Пример #1
0
 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)
Пример #2
0
    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)
Пример #3
0
 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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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