summaryrefslogtreecommitdiff
path: root/src/tests/dbusmock-templates/localed.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/dbusmock-templates/localed.py')
-rw-r--r--src/tests/dbusmock-templates/localed.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/tests/dbusmock-templates/localed.py b/src/tests/dbusmock-templates/localed.py
new file mode 100644
index 000000000..db205d17e
--- /dev/null
+++ b/src/tests/dbusmock-templates/localed.py
@@ -0,0 +1,53 @@
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 3 of the License, or (at your option) any
+# later version. See http://www.gnu.org/copyleft/lgpl.html for the full text
+# of the license.
+
+__author__ = 'Marco Trevisan'
+__copyright__ = '(c) 2021 Canonical Ltd.'
+
+import dbus
+import time
+
+BUS_NAME = 'org.freedesktop.locale1'
+MAIN_OBJ = '/org/freedesktop/locale1'
+MAIN_IFACE = 'org.freedesktop.locale1'
+SYSTEM_BUS = True
+
+
+def load(mock, parameters):
+ mock.AddProperty(MAIN_IFACE, 'Locale', dbus.Array(['LANG=C'], signature='s'))
+ mock.AddProperty(MAIN_IFACE, 'X11Layout', dbus.String())
+ mock.AddProperty(MAIN_IFACE, 'X11Model', dbus.String())
+ mock.AddProperty(MAIN_IFACE, 'X11Variant', dbus.String())
+ mock.AddProperty(MAIN_IFACE, 'X11Options', dbus.String())
+ mock.AddProperty(MAIN_IFACE, 'VConsoleKeymap', dbus.String())
+ mock.AddProperty(MAIN_IFACE, 'VConsoleKeymapToggle', dbus.String())
+
+def simulate_interaction():
+ time.sleep(1)
+
+@dbus.service.method(MAIN_IFACE, in_signature='asb')
+def SetLocale(self, locale, interactive):
+ if interactive:
+ simulate_interaction()
+ self.Set(MAIN_IFACE, 'Locale', locale)
+
+
+@dbus.service.method(MAIN_IFACE, in_signature='ssbb')
+def SetVConsoleKeyboard(self, keymap, keymap_toggle, convert, interactive):
+ if interactive:
+ simulate_interaction()
+ self.Set(MAIN_IFACE, 'VConsoleKeymap', keymap)
+ self.Set(MAIN_IFACE, 'VConsoleKeymapToggle', keymap_toggle)
+
+
+@dbus.service.method(MAIN_IFACE, in_signature='ssssbb')
+def SetVConsoleKeyboard(self, layout, model, variant, options, convert, interactive):
+ if interactive:
+ simulate_interaction()
+ self.Set(MAIN_IFACE, 'X11Layout', layout)
+ self.Set(MAIN_IFACE, 'X11Model', model)
+ self.Set(MAIN_IFACE, 'X11Variant', variant)
+ self.Set(MAIN_IFACE, 'X11Options', options)