From 1f8bb1abd4a4673be7b36044cddc36093aedd4a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Sat, 8 Feb 2020 10:50:26 +0100 Subject: [PATCH] tests/fprintd: Ensure that devices are available on name appeared Given we don't support adding devices after we created the manager (yet) we must ensure that once the name appeared we have them all --- tests/fprintd.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/fprintd.py b/tests/fprintd.py index d07efdb..4f59833 100755 --- a/tests/fprintd.py +++ b/tests/fprintd.py @@ -397,6 +397,30 @@ class FPrintdManagerPreStartTests(FPrintdTest): with self.assertFprintError('NoSuchDevice'): self.manager.GetDefaultDevice() + def test_manager_get_devices_on_name_appeared(self): + self._appeared = False + + def on_name_appeared(connection, name, name_owner): + self._appeared = True + dev_path = connection.call_sync('net.reactivated.Fprint', + '/net/reactivated/Fprint/Manager', + 'net.reactivated.Fprint.Manager', + 'GetDefaultDevice', None, None, + Gio.DBusCallFlags.NO_AUTO_START, 500, None) + self.assertIsNotNone(dev_path) + self.assertTrue(dev_path.startswith('/net/reactivated/Fprint/Device/')) + + id = Gio.bus_watch_name_on_connection(self.dbus, + 'net.reactivated.Fprint', Gio.BusNameWatcherFlags.NONE, + on_name_appeared, None) + + self.daemon_start() + while not self._appeared: + ctx.iteration(True) + + self.assertTrue(self._appeared) + Gio.bus_unwatch_name(id) + class FPrintdVirtualDeviceTest(FPrintdVirtualDeviceBaseTest):