aboutsummaryrefslogtreecommitdiff
path: root/tests/fake-polkitd.py
diff options
context:
space:
mode:
authorLibravatar Mubashshir <ahm@jadupc.com>2023-08-03 16:33:41 +0600
committerLibravatar Mubashshir <ahm@jadupc.com>2023-08-03 16:33:41 +0600
commit70faa8e9a0ff3cba74b4f753e257d56b768fcbd2 (patch)
tree3a49460715f7319d100e0cc9c1a278758500c7c8 /tests/fake-polkitd.py
downloadaptdaemon-70faa8e9a0ff3cba74b4f753e257d56b768fcbd2.tar.gz
aptdaemon-70faa8e9a0ff3cba74b4f753e257d56b768fcbd2.zip
Import Upstream version 1.1.1+bzr982
Diffstat (limited to 'tests/fake-polkitd.py')
-rwxr-xr-xtests/fake-polkitd.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/fake-polkitd.py b/tests/fake-polkitd.py
new file mode 100755
index 0000000..e8dfa70
--- /dev/null
+++ b/tests/fake-polkitd.py
@@ -0,0 +1,64 @@
+#!/usr/bin/python3
+"""Fake a PolicyKit daemon."""
+
+from optparse import OptionParser
+import sys
+
+import dbus
+import dbus.mainloop.glib
+import dbus.service
+from gi.repository import GLib
+
+# Setup the DBus main loop
+dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+
+
+class FakePolicyKitDaemon(dbus.service.Object):
+
+ def __init__(self, allowed_actions):
+ self.allowed_actions = allowed_actions
+ bus_name = dbus.service.BusName("org.freedesktop.PolicyKit1",
+ dbus.SystemBus(),
+ do_not_queue=True)
+ dbus.service.Object.__init__(self, bus_name,
+ "/org/freedesktop/PolicyKit1/Authority")
+ self.loop = GLib.MainLoop()
+
+ def run(self):
+ self.loop.run()
+
+ @dbus.service.method("org.freedesktop.PolicyKit1.Authority",
+ in_signature='(sa{sv})sa{ss}us',
+ out_signature='(bba{ss})')
+ def CheckAuthorization(self, subject, action_id, details, flags,
+ cancellation_id):
+ if "all" in self.allowed_actions:
+ allowed = True
+ else:
+ allowed = action_id in self.allowed_actions
+ challenged = False
+ details = {"test": "test"}
+ return (allowed, challenged, details)
+
+ @dbus.service.method("org.freedesktop.PolicyKit1.Authority",
+ in_signature='', out_signature='')
+ def Quit(self):
+ GLib.idle_add(self._quit)
+
+ def _quit(self):
+ self.loop.quit()
+ sys.exit()
+
+
+def main():
+ parser = OptionParser()
+ parser.add_option("-a", "--allowed-actions",
+ default="", action="store", type="string",
+ dest="allowed_actions",
+ help="Comma separated list of allowed action ids")
+ options, args = parser.parse_args()
+ polkitd = FakePolicyKitDaemon(options.allowed_actions.split(","))
+ polkitd.run()
+
+if __name__ == "__main__":
+ main()