58 lines
1.3 KiB
Python
58 lines
1.3 KiB
Python
import pytest
|
|
|
|
import util.cli
|
|
import core.config
|
|
import modules.contrib.layout_xkbswitch
|
|
|
|
def build_module():
|
|
return modules.contrib.layout_xkbswitch.Module(
|
|
config=core.config.Config([]),
|
|
theme=None
|
|
)
|
|
|
|
def test_load_module():
|
|
__import__("modules.contrib.layout-xkbswitch")
|
|
|
|
def test_load_symbolic_link_module():
|
|
__import__("modules.contrib.layout_xkbswitch")
|
|
|
|
def test_current_layout(mocker):
|
|
command = mocker.patch('util.cli.execute')
|
|
command.side_effect = ['en', 'en']
|
|
|
|
module = build_module()
|
|
widget = module.widget()
|
|
|
|
module.update()
|
|
|
|
assert widget.full_text() == 'en'
|
|
|
|
def test_current_layout_exception(mocker):
|
|
command = mocker.patch('util.cli.execute')
|
|
command.side_effect = RuntimeError
|
|
|
|
module = build_module()
|
|
widget = module.widget()
|
|
|
|
module.update()
|
|
|
|
assert widget.full_text() == ['n/a']
|
|
|
|
def test_input_register(mocker):
|
|
input_register = mocker.patch('core.input.register')
|
|
|
|
module = build_module()
|
|
|
|
input_register.assert_called_with(
|
|
module,
|
|
button=core.input.LEFT_MOUSE,
|
|
cmd=module.next_keymap
|
|
)
|
|
|
|
def test_next_keymap(mocker):
|
|
command = mocker.patch('util.cli.execute')
|
|
|
|
module = build_module()
|
|
module.next_keymap(False)
|
|
|
|
command.assert_called_with('xkb-switch -n', ignore_errors=True)
|