notes: 2.3.0 -> 2.3.1 (#352950)
[NixPkgs.git] / nixos / tests / moonraker.nix
blobb0a93a4a608b4f90c804402d3921b35267b27ea3
1 import ./make-test-python.nix ({ pkgs, ...} : {
2   name = "moonraker";
3   meta = with pkgs.lib.maintainers; {
4     maintainers = [ zhaofengli ];
5   };
7   nodes = {
8     printer = { config, pkgs, ... }: {
9       security.polkit.enable = true;
11       services.moonraker = {
12         enable = true;
13         allowSystemControl = true;
15         settings = {
16           authorization = {
17             trusted_clients = [ "127.0.0.0/8" "::1/128" ];
18           };
19         };
20       };
22       services.klipper = {
23         enable = true;
25         user = "moonraker";
26         group = "moonraker";
28         # No mcu configured so won't even enter `ready` state
29         settings = {};
30       };
31     };
32   };
34   testScript = ''
35     printer.start()
37     printer.wait_for_unit("klipper.service")
38     printer.wait_for_unit("moonraker.service")
39     printer.wait_until_succeeds("curl http://localhost:7125/printer/info | grep -v 'Not Found' >&2", timeout=30)
41     with subtest("Check that we can perform system-level operations"):
42         printer.succeed("curl -X POST http://localhost:7125/machine/services/stop?service=klipper | grep ok >&2")
43         printer.wait_until_succeeds("systemctl --no-pager show klipper.service | grep ActiveState=inactive", timeout=10)
44   '';