def test_match_xor(): t1 = Template() t1.sender = "sender1@host" t2 = Template() t2.to = "recv1@host" t2.metadata = {"performative": "query"} m1 = Message() m1.sender = "sender1@host" assert (t1 ^ t2).match(m1) m2 = Message() m2.to = "recv1@host" m2.metadata = {"performative": "query"} assert (t1 ^ t2).match(m2) m3 = Message() m3.sender = "sender2@host" m3.to = "recv1@host" m3.metadata = {"performative": "inform"} assert not (t1 ^ t2).match(m3) t1 = Template() t1.sender = "sender1@host" t2 = Template() t2.sender = "sender1@host" m4 = Message() m4.sender = "sender1@host" assert not (t1 ^ t2).match(m4)
def test_match_ior(): t1 = Template() t1.sender = "sender1@host" t2 = Template() t2.to = "recv1@host" t2.metadata = {"performative": "query"} m1 = Message() m1.sender = "sender1@host" t1 |= t2 assert t1.match(m1) m2 = Message() m2.to = "recv1@host" m2.metadata = {"performative": "query"} assert t1.match(m2) m3 = Message() m3.sender = "sender2@host" m3.to = "recv1@host" m3.metadata = {"performative": "inform"} assert not t1.match(m3)
def setup(self): print(f"[{self.jid}] Hello World! I'm agent {self.jid}") # Update topology - waiting for request from manager template_msg = Template() template_msg.sender = self.manager_jid template_msg.set_metadata('performative', 'request') self.add_behaviour(UpdateTopology(period=config.UPDATE_TOPOLOGY_FREQ), template_msg) # Handler for subscribe request template_msg = Template() template_msg.set_metadata('performative', 'subscribe') self.add_behaviour(Subscribe(), template_msg) # Reporting to manager self.add_behaviour( SendReportForSubscribers(period=config.SEND_REPORT_FREQ)) # Get data from sensors self.add_behaviour(GetCars(period=config.GET_DATA_FREQ)) self.add_behaviour(GetLightsStatus(period=config.GET_DATA_FREQ)) # Control lights #self.add_behaviour(ChangeLights(config.CHANGE_LIGHTS_FREQ)) # Answering protocol self.add_behaviour( CrossroadsMessanger.NegotiatingProtocolParticipant()) self.add_behaviour(CrossroadsMessanger.NegotiatingProtocolInitiator())
def test_match_false_sender(): template = Template() template.sender = "sender2@host" message = Message() assert not template.match(message) message.sender = "sender1@host" assert not template.match(message)
async def setup(self): ''' Setup the dispatcher agent, create behaviours and start them. ''' basejid = Configuration.parameters["userjid"] start_at = datetime.now() + timedelta(seconds=3) logging.info("ReceiverAgent started") b = self.DispatcherMessageReceiver(1, start_at=start_at) template = Template() template2 = Template() template = Template() protocol_version = Configuration.parameters['protocol'] if protocol_version == "1.0": template2.sender = basejid + "/actormanager" else: template2.sender = basejid + "/adaptor" template.set_metadata("control", "startorstop") self.presence.set_available(show=PresenceShow.CHAT) self.add_behaviour(b, template) start_at = datetime.now() + timedelta(seconds=3) Behaviour2 = self.ConsumeEventInQueue(1, start_at=start_at) self.add_behaviour(Behaviour2, template2)
def test_match(): template = Template() template.sender = "sender1@host" template.to = "recv1@host" template.body = "Hello World" template.thread = "thread-id" template.metadata = {"performative": "query"} message = Message() message.sender = "sender1@host" message.to = "recv1@host" message.body = "Hello World" message.thread = "thread-id" message.set_metadata("performative", "query") assert template.match(message)
def test_behaviour_match(): class TestBehaviour(OneShotBehaviour): async def run(self): pass template = Template() template.sender = "sender1@host" template.to = "recv1@host" template.body = "Hello World" template.thread = "thread-id" template.metadata = {"performative": "query"} behaviour = TestBehaviour() behaviour.set_template(template) msg = Message() msg.sender = "sender1@host" msg.to = "recv1@host" msg.body = "Hello World" msg.thread = "thread-id" msg.set_metadata("performative", "query") assert behaviour.match(msg)
def test_match_not(): t1 = Template() t1.sender = "sender1@host" t1.to = "recv1@host" t1.metadata = {"performative": "query"} m1 = Message() m1.sender = "sender1@host" assert (~t1).match(m1) m2 = Message() m2.sender = "sender1@host" m2.to = "recv1@host" assert (~t1).match(m2) m3 = Message() m3.sender = "sender1@host" m3.to = "recv1@host" m3.metadata = {"performative": "query"} assert not (~t1).match(m3)
import time from spade.agent import Agent from spade.behaviour import OneShotBehaviour from spade.message import Message from spade.template import Template print("1 -- Templates") template = Template() # template.sender = "sender1@host" template.sender = "madks@Temp3rr0r-pc" # template.to = "recv1@host" template.to = "admin@Temp3rr0r-pc" template.body = "Hello World" template.thread = "thread-id" template.metadata = {"performative": "query"} message = Message() # message.sender = "sender1@host" message.sender = "madks@Temp3rr0r-pc" # message.to = "recv1@host" message.to = "admin@Temp3rr0r-pc" message.body = "Hello World" message.thread = "thread-id" message.set_metadata("performative", "query") assert template.match(message) t1 = Template() # t1.sender = "sender1@host" t1.sender = "madks@Temp3rr0r-pc"