summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2022-07-23 12:39:05 +0200
committerBastien Nocera <hadess@hadess.net>2022-07-24 19:56:26 +0200
commit69a6101faa46b5f6825f346271b1776e2ca912f0 (patch)
treeeee27e64b2cb8c05110cd9d9c1a3b029c9fe0c5e
parent068038f7876af3106851a1eb2b696ec89824e9a0 (diff)
downloadaccountsservice-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-xtests/test-daemon.py25
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.'''