lol

nixos/tests/moonraker: init

+51 -2
+1
nixos/tests/all-tests.nix
··· 307 307 molly-brown = handleTest ./molly-brown.nix {}; 308 308 mongodb = handleTest ./mongodb.nix {}; 309 309 moodle = handleTest ./moodle.nix {}; 310 + moonraker = handleTest ./moonraker.nix {}; 310 311 morty = handleTest ./morty.nix {}; 311 312 mosquitto = handleTest ./mosquitto.nix {}; 312 313 moosefs = handleTest ./moosefs.nix {};
+45
nixos/tests/moonraker.nix
··· 1 + import ./make-test-python.nix ({ pkgs, ...} : { 2 + name = "moonraker"; 3 + meta = with pkgs.lib.maintainers; { 4 + maintainers = [ zhaofengli ]; 5 + }; 6 + 7 + nodes = { 8 + printer = { config, pkgs, ... }: { 9 + security.polkit.enable = true; 10 + 11 + services.moonraker = { 12 + enable = true; 13 + allowSystemControl = true; 14 + 15 + settings = { 16 + authorization = { 17 + trusted_clients = [ "127.0.0.0/8" "::1/128" ]; 18 + }; 19 + }; 20 + }; 21 + 22 + services.klipper = { 23 + enable = true; 24 + 25 + user = "moonraker"; 26 + group = "moonraker"; 27 + 28 + # No mcu configured so won't even enter `ready` state 29 + settings = {}; 30 + }; 31 + }; 32 + }; 33 + 34 + testScript = '' 35 + printer.start() 36 + 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) 40 + 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 + ''; 45 + })
+5 -2
pkgs/servers/moonraker/default.nix
··· 1 - { lib, stdenvNoCC, fetchFromGitHub, python3, makeWrapper, unstableGitUpdater }: 1 + { lib, stdenvNoCC, fetchFromGitHub, python3, makeWrapper, unstableGitUpdater, nixosTests }: 2 2 3 3 let 4 4 pythonEnv = python3.withPackages (packages: with packages; [ ··· 39 39 --add-flags "$out/lib/moonraker/moonraker.py" 40 40 ''; 41 41 42 - passthru.updateScript = unstableGitUpdater { url = meta.homepage; }; 42 + passthru = { 43 + updateScript = unstableGitUpdater { url = meta.homepage; }; 44 + tests.moonraker = nixosTests.moonraker; 45 + }; 43 46 44 47 meta = with lib; { 45 48 description = "API web server for Klipper";