diff --git a/docs/reference/gio/overview.md b/docs/reference/gio/overview.md index 89859f490..f8c03863a 100644 --- a/docs/reference/gio/overview.md +++ b/docs/reference/gio/overview.md @@ -445,5 +445,5 @@ The following extension points are currently defined by GIO: implementations for power usage monitoring. Implementations of this extension point must implement the [iface@Gio.PowerProfileMonitor] interface. GIO contains implementations of this extension point that use the - `net.hadess.PowerProfiles` D-Bus interface and the desktop portal for - this functionality. + `org.freedesktop.UPower.PowerProfiles` D-Bus interface and the desktop portal + for this functionality. diff --git a/gio/gpowerprofilemonitordbus.c b/gio/gpowerprofilemonitordbus.c index ac6f8a88c..7357d9e57 100644 --- a/gio/gpowerprofilemonitordbus.c +++ b/gio/gpowerprofilemonitordbus.c @@ -54,9 +54,9 @@ typedef enum PROP_POWER_SAVER_ENABLED = 1, } GPowerProfileMonitorDBusProperty; -#define POWERPROFILES_DBUS_NAME "net.hadess.PowerProfiles" -#define POWERPROFILES_DBUS_IFACE "net.hadess.PowerProfiles" -#define POWERPROFILES_DBUS_PATH "/net/hadess/PowerProfiles" +#define POWERPROFILES_DBUS_NAME "org.freedesktop.UPower.PowerProfiles" +#define POWERPROFILES_DBUS_IFACE "org.freedesktop.UPower.PowerProfiles" +#define POWERPROFILES_DBUS_PATH "/org/freedesktop/UPower/PowerProfiles" G_DEFINE_TYPE_WITH_CODE (GPowerProfileMonitorDBus, g_power_profile_monitor_dbus, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, diff --git a/gio/tests/power-profile-monitor-dbus.py.in b/gio/tests/power-profile-monitor-dbus.py.in index f955afc80..68b5692b9 100755 --- a/gio/tests/power-profile-monitor-dbus.py.in +++ b/gio/tests/power-profile-monitor-dbus.py.in @@ -6,10 +6,10 @@ # later version. See http://www.gnu.org/copyleft/lgpl.html for the full text # of the license. -__author__ = 'Bastien Nocera' -__email__ = 'hadess@hadess.net' -__copyright__ = '(c) 2019, 2021 Red Hat Inc.' -__license__ = 'LGPL 3+' +__author__ = "Bastien Nocera" +__email__ = "hadess@hadess.net" +__copyright__ = "(c) 2019, 2021 Red Hat Inc." +__license__ = "LGPL 3+" import unittest import sys @@ -31,7 +31,7 @@ try: dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) class TestPowerProfileMonitor(dbusmock.DBusTestCase): - '''Test GPowerProfileMonitorDBus''' + """Test GPowerProfileMonitorDBus""" @classmethod def setUpClass(klass): @@ -42,23 +42,30 @@ try: try: Gio.PowerProfileMonitor except AttributeError: - raise unittest.SkipTest('Power Profile Monitor not in ' - 'introspection data. Requires ' - 'GObject-Introspection ≥ 1.63.2') # FIXME version + raise unittest.SkipTest( + "Power Profile Monitor not in " + "introspection data. Requires " + "GObject-Introspection ≥ 1.63.2" + ) # FIXME version try: (self.p_mock, self.obj_ppd) = self.spawn_server_template( - 'power_profiles_daemon', {}, stdout=subprocess.PIPE) + "upower_power_profiles_daemon", {}, stdout=subprocess.PIPE + ) except ModuleNotFoundError: - raise unittest.SkipTest("power-profiles-daemon dbusmock template not " - "found. Requires dbusmock > 0.23.1.") # FIXME version + raise unittest.SkipTest( + "power-profiles-daemon dbusmock template not " + "found. Requires dbusmock > 0.31.1." + ) # FIXME version # set log to nonblocking flags = fcntl.fcntl(self.p_mock.stdout, fcntl.F_GETFL) fcntl.fcntl(self.p_mock.stdout, fcntl.F_SETFL, flags | os.O_NONBLOCK) self.power_saver_enabled = False self.dbus_props = dbus.Interface(self.obj_ppd, dbus.PROPERTIES_IFACE) self.power_profile_monitor = Gio.PowerProfileMonitor.dup_default() - assert("GPowerProfileMonitorDBus" in str(self.power_profile_monitor)) - self.power_profile_monitor.connect("notify::power-saver-enabled", self.power_saver_enabled_cb) + assert "GPowerProfileMonitorDBus" in str(self.power_profile_monitor) + self.power_profile_monitor.connect( + "notify::power-saver-enabled", self.power_saver_enabled_cb + ) self.mainloop = GLib.MainLoop() self.main_context = self.mainloop.get_context() @@ -67,13 +74,13 @@ try: self.p_mock.wait() def assertEventually(self, condition, message=None, timeout=5): - '''Assert that condition function eventually returns True. + """Assert that condition function eventually returns True. Timeout is in seconds, defaulting to 5 seconds. message is printed on failure. - ''' + """ if not message: - message = 'timed out waiting for ' + str(condition) + message = "timed out waiting for " + str(condition) def timed_out_cb(message): self.fail(message) @@ -89,24 +96,46 @@ try: timeout_source.destroy() def power_saver_enabled_cb(self, spec, data): - self.power_saver_enabled = self.power_profile_monitor.get_power_saver_enabled() + self.power_saver_enabled = ( + self.power_profile_monitor.get_power_saver_enabled() + ) self.main_context.wakeup() def test_power_profile_power_saver_enabled(self): - '''power-saver-enabled property''' + """power-saver-enabled property""" - self.assertEqual(self.power_profile_monitor.get_power_saver_enabled(), False) - self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1)) - self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 1) + self.assertEqual( + self.power_profile_monitor.get_power_saver_enabled(), False + ) + self.dbus_props.Set( + "org.freedesktop.UPower.PowerProfiles", + "ActiveProfile", + dbus.String("power-saver", variant_level=1), + ) + self.assertEventually( + lambda: self.power_saver_enabled == True, + "power-saver didn't become enabled", + 1, + ) - self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1)) - self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 1) + self.dbus_props.Set( + "org.freedesktop.UPower.PowerProfiles", + "ActiveProfile", + dbus.String("balanced", variant_level=1), + ) + self.assertEventually( + lambda: self.power_saver_enabled == False, + "power-saver didn't become disabled", + 1, + ) except ImportError as e: + @unittest.skip("Cannot import %s" % e.name) class TestPowerProfileMonitor(unittest.TestCase): def test_power_profile_power_saver_enabled(self): pass -if __name__ == '__main__': + +if __name__ == "__main__": unittest.main(testRunner=taptestrunner.TAPTestRunner()) diff --git a/gio/tests/power-profile-monitor-portal.py.in b/gio/tests/power-profile-monitor-portal.py.in index 3bb0baf3c..a54253c28 100755 --- a/gio/tests/power-profile-monitor-portal.py.in +++ b/gio/tests/power-profile-monitor-portal.py.in @@ -6,10 +6,10 @@ # later version. See http://www.gnu.org/copyleft/lgpl.html for the full text # of the license. -__author__ = 'Bastien Nocera' -__email__ = 'hadess@hadess.net' -__copyright__ = '(c) 2021 Red Hat Inc.' -__license__ = 'LGPL 3+' +__author__ = "Bastien Nocera" +__email__ = "hadess@hadess.net" +__copyright__ = "(c) 2021 Red Hat Inc." +__license__ = "LGPL 3+" import unittest import sys @@ -35,7 +35,7 @@ try: XDG_DESKTOP_PORTAL_PATH = "@libexecdir@/xdg-desktop-portal" class TestPowerProfileMonitorPortal(dbusmock.DBusTestCase): - '''Test GPowerProfileMonitorPortal''' + """Test GPowerProfileMonitorPortal""" @classmethod def setUpClass(klass): @@ -48,15 +48,20 @@ try: try: Gio.PowerProfileMonitor except AttributeError: - raise unittest.SkipTest('Power Profile Monitor not in ' - 'introspection data. Requires ' - 'GObject-Introspection > 1.69.0') + raise unittest.SkipTest( + "Power Profile Monitor not in " + "introspection data. Requires " + "GObject-Introspection > 1.69.0" + ) try: (self.p_mock, self.obj_ppd) = self.spawn_server_template( - 'power_profiles_daemon', {}, stdout=subprocess.PIPE) + "upower_power_profiles_daemon", {}, stdout=subprocess.PIPE + ) except ModuleNotFoundError: - raise unittest.SkipTest("power-profiles-daemon dbusmock template not " - "found. Requires dbusmock > 0.23.1.") + raise unittest.SkipTest( + "power-profiles-daemon dbusmock template not " + "found. Requires dbusmock > 0.31.1." + ) # set log to nonblocking flags = fcntl.fcntl(self.p_mock.stdout, fcntl.F_GETFL) fcntl.fcntl(self.p_mock.stdout, fcntl.F_SETFL, flags | os.O_NONBLOCK) @@ -70,18 +75,21 @@ try: raise unittest.SkipTest("xdg-desktop-portal not available") try: - self.wait_for_bus_object('org.freedesktop.portal.Desktop', - '/org/freedesktop/portal/desktop') + self.wait_for_bus_object( + "org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop" + ) except: self.p_mock.terminate() self.p_mock.wait() raise # subprocess.Popen(['gdbus', 'monitor', '--session', '--dest', 'org.freedesktop.portal.Desktop']) - os.environ['GIO_USE_PORTALS'] = "1" + os.environ["GIO_USE_PORTALS"] = "1" self.power_profile_monitor = Gio.PowerProfileMonitor.dup_default() - assert("GPowerProfileMonitorPortal" in str(self.power_profile_monitor)) - self.power_profile_monitor.connect("notify::power-saver-enabled", self.power_saver_enabled_cb) + assert "GPowerProfileMonitorPortal" in str(self.power_profile_monitor) + self.power_profile_monitor.connect( + "notify::power-saver-enabled", self.power_saver_enabled_cb + ) self.mainloop = GLib.MainLoop() self.main_context = self.mainloop.get_context() @@ -90,13 +98,13 @@ try: self.p_mock.wait() def assertEventually(self, condition, message=None, timeout=5): - '''Assert that condition function eventually returns True. + """Assert that condition function eventually returns True. Timeout is in seconds, defaulting to 5 seconds. message is printed on failure. - ''' + """ if not message: - message = 'timed out waiting for ' + str(condition) + message = "timed out waiting for " + str(condition) def timed_out_cb(message): self.fail(message) @@ -112,35 +120,63 @@ try: timeout_source.destroy() def power_saver_enabled_cb(self, spec, data): - self.power_saver_enabled = self.power_profile_monitor.get_power_saver_enabled() + self.power_saver_enabled = ( + self.power_profile_monitor.get_power_saver_enabled() + ) self.main_context.wakeup() def test_power_profile_power_saver_enabled_portal(self): - '''power-saver-enabled property''' + """power-saver-enabled property""" - self.assertEqual(self.power_profile_monitor.get_power_saver_enabled(), False) - self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1)) - self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 1) + self.assertEqual( + self.power_profile_monitor.get_power_saver_enabled(), False + ) + self.dbus_props.Set( + "org.freedesktop.UPower.PowerProfiles", + "ActiveProfile", + dbus.String("power-saver", variant_level=1), + ) + self.assertEventually( + lambda: self.power_saver_enabled == True, + "power-saver didn't become enabled", + 1, + ) - self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1)) - self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 1) + self.dbus_props.Set( + "org.freedesktop.UPower.PowerProfiles", + "ActiveProfile", + dbus.String("balanced", variant_level=1), + ) + self.assertEventually( + lambda: self.power_saver_enabled == False, + "power-saver didn't become disabled", + 1, + ) def test_power_profile_power_saver_enabled_portal_default(self): - '''power-saver-enabled property default value''' + """power-saver-enabled property default value""" - self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1)) + self.dbus_props.Set( + "org.freedesktop.UPower.PowerProfiles", + "ActiveProfile", + dbus.String("power-saver", variant_level=1), + ) # Create a new power profile monitor and check its property value is # correct by default. - new_power_profile_monitor = GObject.new(GObject.type_from_name('GPowerProfileMonitorPortal')) + new_power_profile_monitor = GObject.new( + GObject.type_from_name("GPowerProfileMonitorPortal") + ) new_power_profile_monitor.init() self.assertTrue(new_power_profile_monitor.get_power_saver_enabled()) except ImportError as e: + @unittest.skip("Cannot import %s" % e.name) class TestPowerProfileMonitorPortal(unittest.TestCase): def test_power_profile_power_saver_enabled_portal(self): pass -if __name__ == '__main__': + +if __name__ == "__main__": unittest.main(testRunner=taptestrunner.TAPTestRunner())