blob: 2ef55a01b2905d86649900cdec3659b401b86d79 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
import ./make-test-python.nix ({ pkgs, ... }:
{
name = "input-remapper";
meta = {
maintainers = with pkgs.lib.maintainers; [ LunNova ];
};
nodes.machine = { config, ... }:
let user = config.users.users.sybil; in
{
imports = [
./common/user-account.nix
./common/x11.nix
];
services.xserver.enable = true;
services.input-remapper.enable = true;
users.users.sybil = { isNormalUser = true; group = "wheel"; };
test-support.displayManager.auto.user = user.name;
# workaround for pkexec not working in the test environment
# Error creating textual authentication agent:
# Error opening current controlling terminal for the process (`/dev/tty'):
# No such device or address
# passwordless pkexec with polkit module also doesn't work
# to allow the program to run, we replace pkexec with sudo
# and turn on passwordless sudo
# this is not correct in general but good enough for this test
security.sudo = { enable = true; wheelNeedsPassword = false; };
security.wrappers.pkexec = pkgs.lib.mkForce
{
setuid = true;
owner = "root";
group = "root";
source = "${pkgs.sudo}/bin/sudo";
};
};
enableOCR = true;
testScript = { nodes, ... }: ''
start_all()
machine.wait_for_x()
machine.succeed("systemctl status input-remapper.service")
machine.execute("su - sybil -c input-remapper-gtk >&2 &")
machine.wait_for_text("Input Remapper")
machine.wait_for_text("Device")
machine.wait_for_text("Presets")
machine.wait_for_text("Editor")
'';
})
|