From ae3804f7b4e03cfa11261c34c4067b3fbfb44feb Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Thu, 31 Aug 2017 14:00:57 +1000 Subject: [PATCH] tools/toolbox.py: add dbus sync helper function A quick and easy way to sync anything coming from dbus (like property updates) without needing to be hooked into a glib mainloop directly. Signed-off-by: Peter Hutterer --- tools/ratbagctl.test.in | 1 + tools/toolbox.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/tools/ratbagctl.test.in b/tools/ratbagctl.test.in index 1dc81a62..09f7502a 100755 --- a/tools/ratbagctl.test.in +++ b/tools/ratbagctl.test.in @@ -74,6 +74,7 @@ class TestRatbagCtl(unittest.TestCase): error = sys.stderr.getvalue() sys.stdout = stdout sys.stderr = stderr + toolbox.sync_dbus() return returncode, output.rstrip('\n'), error.rstrip('\n') @classmethod diff --git a/tools/toolbox.py b/tools/toolbox.py index b1d753d0..2508fb13 100644 --- a/tools/toolbox.py +++ b/tools/toolbox.py @@ -29,6 +29,8 @@ import shutil import subprocess import sys +from gi.repository import GLib + # various constants RATBAGCTL_NAME = 'ratbagctl' RATBAGCTL_PATH = os.path.join('@MESON_BUILD_ROOT@', RATBAGCTL_NAME) @@ -100,6 +102,12 @@ def terminate_ratbagd(ratbagd): ratbagd.kill() os.unlink(DBUS_CONF_PATH) +def sync_dbus(): + main_context = GLib.MainContext.default() + while main_context.pending(): + main_context.iteration(False) + + ratbagctl = import_non_standard_path(RATBAGCTL_NAME, RATBAGCTL_PATH) from ratbagctl import open_ratbagd, get_parser, RatbagError, RatbagErrorCapability