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 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_false_metadata_with_different_key(): template = Template() template.metadata = {"performative": "query"} message = Message() message.set_metadata("language", "query") assert not template.match(message)
def test_match_false_metadata(): template = Template() template.metadata = {"performative": "query"} message = Message() assert not template.match(message) message.set_metadata("performative", "inform") assert not template.match(message)
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)
async def setup(self): b = self.TRBehav() template = Template() template.metadata = {"performative": "inform"} self.add_behaviour(b, template)
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"
async def setup(self): start_at = datetime.datetime.now() + datetime.timedelta(seconds=3) b = self.CoilBehav(period=3, start_at=start_at) # periodic sender template = Template() template.metadata = {"performative": "inform"} self.add_behaviour(b)