python312Packages.dissect-extfs: 3.11 -> 3.12
[NixPkgs.git] / nixos / tests / apcupsd.nix
blob287140f039d8588f5631856e349f2b2cf0f1bd62
1 let
2   # arbitrary address
3   ipAddr = "192.168.42.42";
4 in
5 import ./make-test-python.nix ({ lib, pkgs, ... }: {
6   name = "apcupsd";
7   meta.maintainers = with lib.maintainers; [ bjornfor ];
9   nodes = {
10     machine = {
11       services.apcupsd = {
12         enable = true;
13         configText = ''
14           UPSTYPE usb
15           BATTERYLEVEL 42
16           # Configure NISIP so that the only way apcaccess can work is to read
17           # this config.
18           NISIP ${ipAddr}
19         '';
20       };
21       networking.interfaces.eth1 = {
22         ipv4.addresses = [{
23           address = ipAddr;
24           prefixLength = 24;
25         }];
26       };
27     };
28   };
30   # Check that the service starts, that the CLI (apcaccess) works and that it
31   # uses the config (ipAddr) defined in the service config.
32   testScript = ''
33     start_all()
34     machine.wait_for_unit("apcupsd.service")
35     machine.wait_for_open_port(3551, "${ipAddr}")
36     res = machine.succeed("apcaccess")
37     expect_line="MBATTCHG : 42 Percent"
38     assert "MBATTCHG : 42 Percent" in res, f"expected apcaccess output to contain '{expect_line}' but got '{res}'"
39     machine.shutdown()
40   '';