1import ./make-test-python.nix ({ pkgs, lib, ... }:
2 {
3 name = "zigbee2mqtt";
4 nodes.machine = { pkgs, ... }:
5 {
6 systemd.services.dummy-serial = {
7 wantedBy = [
8 "multi-user.target"
9 ];
10 serviceConfig = {
11 ExecStart = "${pkgs.socat}/bin/socat pty,link=/dev/ttyACM0,mode=666 pty,link=/dev/ttyACM1";
12 };
13 };
14
15 services.zigbee2mqtt = {
16 enable = true;
17 };
18
19 systemd.services.zigbee2mqtt.serviceConfig.DevicePolicy = lib.mkForce "auto";
20 };
21
22 testScript = ''
23 machine.wait_for_unit("multi-user.target")
24 machine.wait_until_fails("systemctl status zigbee2mqtt.service")
25 machine.succeed(
26 "journalctl -eu zigbee2mqtt | grep 'Failed to connect to the adapter'"
27 )
28
29 machine.log(machine.succeed("systemd-analyze security zigbee2mqtt.service"))
30 '';
31 }
32)