summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Hofstee <jhofstee@victronenergy.com>2023-04-14 11:41:05 +0200
committerSimon McVittie <smcv@collabora.com>2023-08-30 17:20:18 +0100
commitcd74567988d99182d09a2de300b1a1831d4db237 (patch)
treeb786cd68c5abd84186c1dc09a2eb72a0189e1a4a
parent4540beb0dd67bf707a0cdecc26f8d1338663c96b (diff)
test: Add basic coverage for argNpatch matches
Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com>
-rwxr-xr-xtest/test-standalone.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/test/test-standalone.py b/test/test-standalone.py
index 7cca6a0..c517a69 100755
--- a/test/test-standalone.py
+++ b/test/test-standalone.py
@@ -617,6 +617,68 @@ class TestArg0Namespace(unittest.TestCase):
message.append(1, signature='i')
self.assertFalse(match.maybe_handle_message(message))
+class TestPathMatches(unittest.TestCase):
+ def setUp(self):
+ self._match = dbus.connection.SignalMatch(object, None, '/', None, None,
+ None, arg0path='/aa/bb/')
+
+ def test_empty_path(self):
+ match = dbus.connection.SignalMatch(object, None, '/', None, None,
+ None, arg0path='')
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('/', signature='s')
+ self.assertFalse(match.maybe_handle_message(message))
+
+ def test_empty_value(self):
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('', signature='s')
+ self.assertFalse(self._match.maybe_handle_message(message))
+
+ def test_root(self):
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('/', signature='s')
+ self.assertTrue(self._match.maybe_handle_message(message))
+
+ def test_aa(self):
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('/aa/', signature='s')
+ self.assertTrue(self._match.maybe_handle_message(message))
+
+ def test_aa_bb(self):
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('/aa/bb/', signature='s')
+ self.assertTrue(self._match.maybe_handle_message(message))
+
+ def test_aa_bb_cc(self):
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('/aa/bb/cc/', signature='s')
+ self.assertTrue(self._match.maybe_handle_message(message))
+
+ def test_aa_bb_cc2(self):
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('/aa/bb/cc', signature='s')
+ self.assertTrue(self._match.maybe_handle_message(message))
+
+ def test_no_match_aa_b(self):
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('/aa/b', signature='s')
+ self.assertFalse(self._match.maybe_handle_message(message))
+
+ def test_no_match_aa(self):
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('/aa', signature='s')
+ self.assertFalse(self._match.maybe_handle_message(message))
+
+ def test_no_match_aa_bb(self):
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('/aa/bb', signature='s')
+ self.assertFalse(self._match.maybe_handle_message(message))
+
+ def test_object_path(self):
+ message = _dbus_bindings.SignalMessage('/', 'a.b', 'c')
+ message.append('/aa/bb/cc', signature='o')
+ self.assertTrue(self._match.maybe_handle_message(message))
+
class TestVersion(unittest.TestCase):
if sys.version_info[:2] < (2, 7):
def assertGreater(self, first, second):