diff options
Diffstat (limited to 'src/tests/dbusmock-templates/localed.py')
-rw-r--r-- | src/tests/dbusmock-templates/localed.py | 53 |
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) |