Esempio n. 1
0
 def __init__(self, ip, _pass, source, place, kwords, summ_parms):
     Agent.__init__(self, ip, _pass)
     self.source = source
     self.place = place
     self.kwords = kwords
     self.summ_parms = summ_parms
     self.connected = False
Esempio n. 2
0
    def __init__(self, manager_jid, neighbours, cars_speed, *args, **kwargs):
        Agent.__init__(self, *args, **kwargs)
        Crossroad.__init__(self)
        self.sumo_api = SumoApi()
        self.manager_jid = manager_jid
        self.subscribers = []
        self.neighbours = neighbours
        self.neighbours_jid = {}

        self.cfp = {
            messages_body_labels.direction:
            None,  # because of which direction we wanna change lights
            messages_body_labels.to_change:
            None,
            # if we wanna last green longer (false) or change it quicker (true)
            messages_body_labels.change_by:
            None
        }  # how much we wanna change lights remaining duration
        self.last_cfp_ts = 0
        self.delay_before_next_cfp = 0

        self.cars_speed = cars_speed
        self.directions_max_cars = {
            'vertical': 0,
            'horizontal': 0
        }  # directions and max cars on their streets
Esempio n. 3
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)
Esempio n. 4
0
async def test_stop(test_client):
    agent = Agent("jid@server", "password")
    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.get("/spade/stop")
    response = await response.text()

    sel = Selector(text=response)
    assert sel.css("div.alert-warning > span::text").get().strip() == "Agent is stopping now."

    with LogCapture() as log:
        try:
            await client.get("/spade/stop/now/", timeout=0.0005)
        except requests.exceptions.ReadTimeout:
            pass

        log.check_present(('spade.Web', 'WARNING', "Stopping agent from web interface."))

    counter = 5
    while agent.is_alive() and counter > 0:
        counter -= 0.5
        time.sleep(0.5)

    assert not agent.is_alive()
Esempio n. 5
0
    def __init__(
        self,
        name="cmanager@localhost",
        passwd="secret",
        players=10,
        fps=33,
        match_time=380,
        map_name="map_01",
        map_path=None,
        service_jid="cservice@localhost",
        service_passwd="secret",
        port=8001,
    ):

        AbstractAgent.__init__(self, name, service_jid=service_jid)
        Agent.__init__(self, name, passwd)

        self.game_statistic = GameStatistic()
        self.max_total_agents = players
        self.fps = 1 / fps
        self.match_time = match_time
        self.map_name = str(map_name)
        self.port = port
        self.config = Config(data_path=map_path)
        self.number_of_agents = 0
        self.agents = {}
        self.match_init = 0
        self.domain = name.split("@")[1]
        self.objective_agent = None
        self.service_agent = Service(jid=self.service_jid,
                                     password=service_passwd)
        self.render_server = Server(map_name=self.map_name, port=self.port)
        self.din_objects = dict()
        self.map = TerrainMap()
Esempio n. 6
0
def test_find_behaviour_fail():
    agent = Agent("jid@server", "password")
    found_behaviour = agent.web.find_behaviour("OneShotBehaviour/EmptyOneShotBehaviour")

    assert found_behaviour is None

    agent.stop()
Esempio n. 7
0
async def test_stop(test_client, loop):
    agent = Agent("jid@server", "password")
    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.get("/spade/stop")
    response = await response.text()

    sel = Selector(text=response)
    assert sel.css("div.alert-warning > span::text").get().strip(
    ) == "Agent is stopping now."

    with LogCapture() as log:
        try:
            await client.get("/spade/stop/now/", timeout=0.0005)
        except requests.exceptions.ReadTimeout:
            pass

        log.check_present(
            ('spade.Web', 'WARNING', "Stopping agent from web interface."))

    counter = 5
    while agent.is_alive() and counter > 0:
        counter -= 0.5
        time.sleep(0.5)

    assert not agent.is_alive()
Esempio n. 8
0
async def test_find_behaviour_fail():
    agent = Agent("jid@server", "password")
    found_behaviour = agent.web.find_behaviour("OneShotBehaviour/EmptyOneShotBehaviour")

    assert found_behaviour is None

    agent.stop()
Esempio n. 9
0
 def __init__(
     self, jid, password, workersParams, task
 ):  #workersParams to lista slownikow (jid, password, name, priceEle, priceChan, sameIndex, coworkers)
     Agent.__init__(self, jid, password)
     self.MyJid = jid
     self.logger = Logger(self.jid)
     self.workersParams = workersParams
     self.task = task
     self.workers = []
Esempio n. 10
0
 def __init__(self,
              host,
              pw,
              network,
              num_routes,
              agent_type="global",
              start_node=None,
              destination_node=None,
              loop=None):
     Agent.__init__(self, host, pw, loop=loop)
     self.traveller = Traveller(network, num_routes, agent_type, start_node,
                                destination_node)
Esempio n. 11
0
    def __init__(self,
                 jid,
                 passwd="secret",
                 team=0,
                 service_jid="cservice@localhost",
                 verify_security=False):
        self.m_ServiceList = list()
        self._name = jid
        self.m_iPositionX = None
        self.m_iPositionZ = None
        self.m_eTeam = team
        self.service_jid = service_jid

        Agent.__init__(self, jid, passwd, verify_security)
Esempio n. 12
0
async def test_add_get(test_client, loop):
    agent = Agent("jid@server", "password")
    agent.web.add_get("/test", lambda request: {"number": 42}, "examples/hello.html")

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.get("/test")
    response = await response.text()

    sel = Selector(text=response)
    assert sel.css("h1::text").get().strip() == "42"

    agent.stop()
Esempio n. 13
0
async def test_add_get(test_client):
    agent = Agent("jid@server", "password")
    agent.web.add_get("/test", lambda request: {"number": 42}, "examples/hello.html")

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.get("/test")
    response = await response.text()

    sel = Selector(text=response)
    assert sel.css("h1::text").get().strip() == "42"

    agent.stop()
Esempio n. 14
0
async def test_add_get_raw(test_client):
    agent = Agent("jid@server", "password")
    agent.web.add_get("/test", lambda request: web.Response(text="Hello Raw Get"), template=None, raw=True)

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.get("/test")
    response = await response.text()

    assert response == "Hello Raw Get"

    # sel = Selector(text=response)
    # assert sel.css("h1::text").get().strip() == "42"

    agent.stop()
Esempio n. 15
0
async def test_request_home(test_client, loop):
    agent = Agent("jid@server", "password")
    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.get("/spade")
    response = await response.text()

    sel = Selector(text=response)

    assert sel.css("title::text").get() == "jid agent"
    assert sel.css("img::attr(src)").get() == agent.avatar

    assert sel.css("ul.products-list > li").getall() == []

    agent.stop()
Esempio n. 16
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)
Esempio n. 17
0
async def test_add_get_json(test_client, loop):
    async def controller(request):
        return {"number": 42}

    agent = Agent("jid@server", "password")
    agent.web.add_get("/test", controller, None)

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.get("/test")
    assert response.status == 200

    data = await response.json()
    assert data["number"] == 42

    agent.stop()
Esempio n. 18
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
Esempio n. 19
0
async def test_add_get_json(test_client):
    async def controller(request):
        return {"number": 42}

    agent = Agent("jid@server", "password")
    agent.web.add_get("/test", controller, None)

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.get("/test")
    assert response.status == 200

    data = await response.json()
    assert data["number"] == 42

    agent.stop()
Esempio n. 20
0
    def __init__(self,
                 name,
                 passwd="secret",
                 manager_jid="cmanager@localhost",
                 x=0,
                 z=0,
                 team=0):
        Agent.__init__(self, name, passwd)
        AbstractAgent.__init__(self, name, team)

        self.type = PACK_NONE
        self.manager = manager_jid

        self.position = Vector3D()
        self.position.x = x
        self.position.y = 0
        self.position.z = z
Esempio n. 21
0
async def test_kill_behaviour(test_client):
    class EmptyCyclicBehaviour(CyclicBehaviour):
        async def run(self):
            await asyncio.sleep(0.1)

    agent = Agent("jid@server", "password")
    behaviour = EmptyCyclicBehaviour()
    agent.add_behaviour(behaviour)

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    await client.get("/spade/behaviour/CyclicBehaviour/EmptyCyclicBehaviour/kill/")

    assert behaviour.is_killed()

    agent.stop()
Esempio n. 22
0
async def test_add_post_raw(test_client):
    agent = Agent("jid@server", "password")

    async def handle_post(request):
        form = await request.post()
        number = form["number"]
        return web.Response(text="Hello Raw Post Number={}".format(number))

    agent.web.add_post("/test", handle_post, template=None, raw=True)
    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.post("/test", data={"number": 1024})
    response = await response.text()

    assert response == "Hello Raw Post Number=1024"

    agent.stop().result()
Esempio n. 23
0
async def test_add_get_raw(test_client):
    agent = Agent("jid@server", "password")
    agent.web.add_get(
        "/test",
        lambda request: web.Response(text="Hello Raw Get"),
        template=None,
        raw=True,
    )

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.get("/test")
    response = await response.text()

    assert response == "Hello Raw Get"

    agent.stop().result()
Esempio n. 24
0
async def test_add_post_raw(test_client):
    agent = Agent("jid@server", "password")

    async def handle_post(request):
        form = await request.post()
        number = form["number"]
        return web.Response(text="Hello Raw Post Number={}".format(number))

    agent.web.add_post("/test", handle_post, template=None, raw=True)
    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.post("/test", data={"number": 1024})
    response = await response.text()

    assert response == "Hello Raw Post Number=1024"

    agent.stop()
Esempio n. 25
0
async def test_get_messages(test_client):
    agent = Agent("jid@server", "password")
    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    # add messages to trace
    for i in range(5):
        msg = Message(body=str(i), sender="{}@server".format(i), to="receiver@server")
        agent.traces.append(msg)

    response = await client.get("/spade/messages/")
    response = await response.text()

    sel = Selector(text=response)

    assert len(sel.css("ul.timeline > li").getall()) == 6  # num messages + end clock

    agent.stop()
Esempio n. 26
0
async def test_get_messages(test_client, loop):
    agent = Agent("jid@server", "password")
    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    # add messages to trace
    for i in range(5):
        msg = Message(body=str(i), sender="{}@server".format(i), to="receiver@server")
        agent.traces.append(msg)

    response = await client.get("/messages/")
    response = await response.text()

    sel = Selector(text=response)

    assert len(sel.css("ul.timeline > li").getall()) == 6  # num messages + end clock

    agent.stop()
Esempio n. 27
0
async def test_get_agent(test_client, loop):
    agent = Agent("jid@server", "password")
    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    jid = "friend@server"
    item = Item(jid=JID.fromstr(jid))

    agent.presence.roster._update_entry(item)

    response = await client.get(f"/spade/agent/{jid}/")
    response = await response.text()

    sel = Selector(text=response)

    assert sel.css("section.content-header > h1::text").get().strip() == jid

    agent.stop()
Esempio n. 28
0
async def test_add_post(test_client):
    agent = Agent("jid@server", "password")

    async def handle_post(request):
        form = await request.post()
        number = form["number"]
        return {"number": number}

    agent.web.add_post("/test", handle_post, "examples/hello.html")
    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.post("/test", data={"number": 1024})
    response = await response.text()

    sel = Selector(text=response)
    assert sel.css("h1::text").get() == "1024"

    agent.stop()
Esempio n. 29
0
async def test_get_behaviour(test_client):
    class EmptyOneShotBehaviour(OneShotBehaviour):
        async def run(self):
            self.kill()

    agent = Agent("jid@server", "password")
    behaviour = EmptyOneShotBehaviour()
    agent.add_behaviour(behaviour)
    agent.web.setup_routes()

    client = await test_client(agent.web.app)

    response = await client.get("/spade/behaviour/OneShotBehaviour/EmptyOneShotBehaviour/")
    response = await response.text()

    sel = Selector(text=response)

    assert sel.css("section.content-header > h1::text").get().strip() == "OneShotBehaviour/EmptyOneShotBehaviour"
    agent.stop()
Esempio n. 30
0
def test_default_template_path():
    agent = Agent("jid@server", "password")

    env = get_env(agent.web.app)
    loader = env.loader

    package_loader = loader.loaders[0]
    filesystem_loader = loader.loaders[1]

    assert type(loader) == ChoiceLoader
    assert len(loader.loaders) == 2
    assert type(package_loader) == PackageLoader
    assert type(filesystem_loader) == FileSystemLoader

    assert "internal_tpl_agent.html" in package_loader.list_templates()
    assert "internal_tpl_agent.html" not in filesystem_loader.list_templates()
    assert filesystem_loader.searchpath == ["."]

    agent.stop()
Esempio n. 31
0
async def test_add_post_json(test_client):
    async def handle_post(request):
        form = await request.post()
        number = form["number"]
        return {"number": int(number)}

    agent = Agent("jid@server", "password")
    agent.web.add_post("/test", handle_post, None)

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.post("/test", data={"number": 1024})
    assert response.status == 200

    data = await response.json()
    assert data["number"] == 1024

    agent.stop()
Esempio n. 32
0
async def test_add_get_raw(test_client):
    agent = Agent("jid@server", "password")
    agent.web.add_get("/test",
                      lambda request: web.Response(text="Hello Raw Get"),
                      template=None,
                      raw=True)

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.get("/test")
    response = await response.text()

    assert response == "Hello Raw Get"

    # sel = Selector(text=response)
    # assert sel.css("h1::text").get().strip() == "42"

    agent.stop().result()
Esempio n. 33
0
async def test_add_post_json(test_client, loop):
    async def handle_post(request):
        form = await request.post()
        number = form["number"]
        return {"number": int(number)}

    agent = Agent("jid@server", "password")
    agent.web.add_post("/test", handle_post, None)

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.post("/test", data={"number": 1024})
    assert response.status == 200

    data = await response.json()
    assert data["number"] == 1024

    agent.stop()
Esempio n. 34
0
async def test_add_post(test_client, loop):
    agent = Agent("jid@server", "password")

    async def handle_post(request):
        form = await request.post()
        number = form["number"]
        return {"number": number}

    agent.web.add_post("/test", handle_post, "examples/hello.html")
    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    response = await client.post("/test", data={"number": 1024})
    response = await response.text()

    sel = Selector(text=response)
    assert sel.css("h1::text").get() == "1024"

    agent.stop()
Esempio n. 35
0
def test_default_template_path():
    agent = Agent("jid@server", "password")

    env = get_env(agent.web.app)
    loader = env.loader

    package_loader = loader.loaders[0]
    filesystem_loader = loader.loaders[1]

    assert type(loader) == ChoiceLoader
    assert len(loader.loaders) == 2
    assert type(package_loader) == PackageLoader
    assert type(filesystem_loader) == FileSystemLoader

    assert "internal_tpl_agent.html" in package_loader.list_templates()
    assert "internal_tpl_agent.html" not in filesystem_loader.list_templates()
    assert filesystem_loader.searchpath == ["."]

    agent.stop()
Esempio n. 36
0
def test_add_template_path():
    agent = Agent("jid@server", "password")

    agent.web.start(templates_path="/tmp/spade")

    env = get_env(agent.web.app)
    loader = env.loader

    assert type(loader) == ChoiceLoader
    assert len(loader.loaders) == 3
    assert type(loader.loaders[0]) == FileSystemLoader
    assert type(loader.loaders[1]) == PackageLoader
    assert type(loader.loaders[2]) == FileSystemLoader

    filesystem_loader = loader.loaders[0]

    assert filesystem_loader.list_templates() == []
    assert filesystem_loader.searchpath == ["/tmp/spade"]

    agent.stop()
Esempio n. 37
0
def test_add_template_path():
    agent = Agent("jid@server", "password")

    agent.web.start(templates_path="/tmp/spade")

    env = get_env(agent.web.app)
    loader = env.loader

    assert type(loader) == ChoiceLoader
    assert len(loader.loaders) == 3
    assert type(loader.loaders[0]) == FileSystemLoader
    assert type(loader.loaders[1]) == PackageLoader
    assert type(loader.loaders[2]) == FileSystemLoader

    filesystem_loader = loader.loaders[0]

    assert filesystem_loader.list_templates() == []
    assert filesystem_loader.searchpath == ["/tmp/spade"]

    agent.stop()
Esempio n. 38
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
Esempio n. 39
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
Esempio n. 40
0
def test_find_behaviour():
    class EmptyOneShotBehaviour(OneShotBehaviour):
        async def run(self):
            pass

    agent = Agent("jid@server", "password")
    behaviour = EmptyOneShotBehaviour()
    agent.add_behaviour(behaviour)

    found_behaviour = agent.web.find_behaviour("OneShotBehaviour/EmptyOneShotBehaviour")

    assert found_behaviour == behaviour

    agent.stop()
Esempio n. 41
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
Esempio n. 42
0
async def test_kill_behaviour(test_client, loop):
    class EmptyCyclicBehaviour(CyclicBehaviour):
        async def run(self):
            await asyncio.sleep(0.1)

    agent = Agent("jid@server", "password")
    behaviour = EmptyCyclicBehaviour()
    agent.add_behaviour(behaviour)

    agent.web.setup_routes()
    client = await test_client(agent.web.app)

    await client.get("/behaviour/CyclicBehaviour/EmptyCyclicBehaviour/kill/")

    assert behaviour.is_killed()

    agent.stop()
Esempio n. 43
0
async def test_get_behaviour(test_client, loop):
    class EmptyOneShotBehaviour(OneShotBehaviour):
        async def run(self):
            self.kill()

    agent = Agent("jid@server", "password")
    behaviour = EmptyOneShotBehaviour()
    agent.add_behaviour(behaviour)
    agent.web.setup_routes()

    client = await test_client(agent.web.app)

    response = await client.get("/behaviour/OneShotBehaviour/EmptyOneShotBehaviour/")
    response = await response.text()

    sel = Selector(text=response)

    assert sel.css("section.content-header > h1::text").get().strip() == "OneShotBehaviour/EmptyOneShotBehaviour"
    agent.stop()
Esempio n. 44
0
 def __init__(self, jid="cservice@localhost", password="******"):
     self.m_ServiceList = {}
     Agent.__init__(self, jid, password)