at 25.11-pre 1.3 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, lib, ... }: 3 { 4 name = "engelsystem"; 5 meta = with pkgs.lib.maintainers; { 6 maintainers = [ talyz ]; 7 }; 8 9 nodes.engelsystem = 10 { ... }: 11 { 12 services.engelsystem = { 13 enable = true; 14 domain = "engelsystem"; 15 createDatabase = true; 16 }; 17 networking.firewall.allowedTCPPorts = [ 18 80 19 443 20 ]; 21 environment.systemPackages = with pkgs; [ 22 xmlstarlet 23 libxml2 24 ]; 25 }; 26 27 testScript = '' 28 engelsystem.start() 29 engelsystem.wait_for_unit("phpfpm-engelsystem.service") 30 engelsystem.wait_until_succeeds("curl engelsystem/login -sS -f") 31 engelsystem.succeed( 32 "curl engelsystem/login -sS -f -c cookie | xmllint -html -xmlout - >login" 33 ) 34 engelsystem.succeed( 35 "xml sel -T -t -m \"html/head/meta[@name='csrf-token']\" -v @content login >token" 36 ) 37 engelsystem.succeed( 38 "curl engelsystem/login -sS -f -b cookie -F 'login=admin' -F 'password=asdfasdf' -F '_token=<token' -L | xmllint -html -xmlout - >news" 39 ) 40 engelsystem.succeed( 41 "test 'News - Engelsystem' = \"$(xml sel -T -t -c html/head/title news)\"" 42 ) 43 ''; 44 } 45)