diff options
author | Bastien Nocera <hadess@hadess.net> | 2022-07-23 12:39:05 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2022-07-24 19:56:26 +0200 |
commit | 69a6101faa46b5f6825f346271b1776e2ca912f0 (patch) | |
tree | eee27e64b2cb8c05110cd9d9c1a3b029c9fe0c5e | |
parent | 068038f7876af3106851a1eb2b696ec89824e9a0 (diff) | |
download | accountsservice-69a6101faa46b5f6825f346271b1776e2ca912f0.tar.gz |
tests: Add polkit support
Start a mocked polkitd when needed so we can give ourselves the
necessary permissions to access API.
-rwxr-xr-x | tests/test-daemon.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/test-daemon.py b/tests/test-daemon.py index c238563..c6c0b7f 100755 --- a/tests/test-daemon.py +++ b/tests/test-daemon.py @@ -87,6 +87,7 @@ class Tests(dbusmock.DBusTestCase): cls.dbus = Gio.bus_get_sync(Gio.BusType.SYSTEM, None) cls.dbus_con = cls.get_dbus(True) + cls._polkitd = None @classmethod def tearDownClass(cls): @@ -184,6 +185,30 @@ class Tests(dbusmock.DBusTestCase): self.daemon = None self.proxy = None + def polkitd_start(self): + if self._polkitd: + return + + (self._polkitd, self._polkitd_obj) = self.spawn_server_template( + 'polkitd', {}) + self.addCleanup(self.stop_server, '_polkitd', '_polkitd_obj') + + return self._polkitd + + def stop_server(self, proc_attr, obj_attr): + proc = getattr(self, proc_attr, None) + if proc is None: + return + + proc.terminate() + try: + proc.wait(timeout=1) + except subprocess.TimeoutExpired as e: + proc.kill() + + delattr(self, proc_attr) + delattr(self, obj_attr) + def get_dbus_property(self, name): '''Get property value from daemon D-Bus interface.''' |