Skip to content

Commit

Permalink
Test connection matching
Browse files Browse the repository at this point in the history
  • Loading branch information
wmww committed Feb 2, 2023
1 parent 7916235 commit 42f45cb
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
26 changes: 26 additions & 0 deletions core/test/test_matcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
from core.wl.object import MockObject
from core.wl.message import MockMessage
from core.wl import Arg
from interfaces import Connection

class MockConnection(Connection):
def __init__(self, name: str):
self.name_ = name

def name(self) -> str:
return self.name_

class TestShowMatcherHelp(TestCase):
def test_shows_matcher_help(self):
Expand Down Expand Up @@ -195,6 +203,24 @@ def test_delete_id_can_be_matched(self):
obj=MockObject(type='wl_display', id=1),
name='delete_id')))

def test_connection_can_be_matched(self):
m = parse('FOO:')
self.assertTrue(m.matches(MockMessage(obj=MockObject(conn=MockConnection(name='FOO')))))
self.assertFalse(m.matches(MockMessage(obj=MockObject(conn=MockConnection(name='BAR')))))

def test_unknown_connection_can_be_matched(self):
m = parse('unknown:')
self.assertTrue(m.matches(MockMessage(obj=MockObject(conn=None))))
self.assertFalse(m.matches(MockMessage(obj=MockObject(conn=MockConnection(name='BAR')))))

def test_complex_connection_matcher(self):
m = parse('[*OO, BAR ! XOO]: wl_pointer')
self.assertTrue(m.matches(MockMessage(obj=MockObject(conn=MockConnection(name='FOO'), type='wl_pointer'))))
self.assertTrue(m.matches(MockMessage(obj=MockObject(conn=MockConnection(name='YOO'), type='wl_pointer'))))
self.assertTrue(m.matches(MockMessage(obj=MockObject(conn=MockConnection(name='BAR'), type='wl_pointer'))))
self.assertFalse(m.matches(MockMessage(obj=MockObject(conn=MockConnection(name='XOO'), type='wl_pointer'))))
self.assertFalse(m.matches(MockMessage(obj=MockObject(conn=MockConnection(name='FOO'), type='wl_touch'))))

class TestJoinMatchers(TestCase):
def test_join_lists_with_negative(self):
a = MatcherList([AlwaysMatcher(True)], [EqMatcher(5)])
Expand Down
2 changes: 2 additions & 0 deletions core/wl/object.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,14 @@ def resolved(self) -> bool:
class MockObject(ObjectBase):
def __init__(
self,
conn: Optional[Connection] = None,
create_time: float = 0.0,
id: int = 1,
generation: int = 0,
type: Optional[str] = 'mock_type'
) -> None:
super().__init__(id)
self.connection = conn
self.create_time = create_time
self.generation = generation
self.type = type
Expand Down

0 comments on commit 42f45cb

Please sign in to comment.