From 76a99a7638566fec4e5ddc502bcdf3927f9c82d3 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Mon, 16 May 2022 15:28:03 +0200 Subject: [PATCH] linux: Add helper to assert devices and properties Just to make it a bit nicer to do assertions on devices and properties. --- src/linux/integration-test.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/linux/integration-test.py b/src/linux/integration-test.py index 0ea0bef..c445648 100755 --- a/src/linux/integration-test.py +++ b/src/linux/integration-test.py @@ -270,6 +270,27 @@ class Tests(dbusmock.DBusTestCase): Gio.DBusCallFlags.NO_AUTO_START, -1, None).unpack()[0] + def get_dbus_dev_properties(self, device): + '''Get property values from an upower device D-Bus path.''' + + return self.dbus.call_sync(UP, device, + 'org.freedesktop.DBus.Properties', + 'GetAll', GLib.Variant('(s)', (UP_DEVICE,)), + None, + Gio.DBusCallFlags.NO_AUTO_START, + -1, None).unpack()[0] + + def assertDevs(self, expected): + devs = self.proxy.EnumerateDevices() + names = (n.split('/')[-1] for n in devs) + + self.assertEqual(sorted(names), sorted(expected.keys())) + + for n in names: + props = self.get_dbus_dev_properties(n) + for k, v in expected[n].items(): + self.assertEqual(props[k], v, msg=f'Property "{k}" of "{n}" should be {v} but is {props[k]}') + def start_logind(self, parameters=None): self.logind, self.logind_obj = self.spawn_server_template('logind', parameters or {},