at 25.11-pre 1.8 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, ... }: 3 { 4 name = "deluge"; 5 meta = with pkgs.lib.maintainers; { 6 maintainers = [ flokli ]; 7 }; 8 9 nodes = { 10 simple = { 11 services.deluge = { 12 enable = true; 13 package = pkgs.deluge-2_x; 14 web = { 15 enable = true; 16 openFirewall = true; 17 }; 18 }; 19 }; 20 21 declarative = { 22 services.deluge = { 23 enable = true; 24 package = pkgs.deluge-2_x; 25 openFirewall = true; 26 declarative = true; 27 config = { 28 allow_remote = true; 29 download_location = "/var/lib/deluge/my-download"; 30 daemon_port = 58846; 31 listen_ports = [ 32 6881 33 6889 34 ]; 35 }; 36 web = { 37 enable = true; 38 port = 3142; 39 }; 40 authFile = pkgs.writeText "deluge-auth" '' 41 localclient:a7bef72a890:10 42 andrew:password:10 43 user3:anotherpass:5 44 ''; 45 }; 46 }; 47 48 }; 49 50 testScript = '' 51 start_all() 52 53 simple.wait_for_unit("deluged") 54 simple.wait_for_unit("delugeweb") 55 simple.wait_for_open_port(8112) 56 declarative.wait_for_unit("network.target") 57 declarative.wait_until_succeeds("curl --fail http://simple:8112") 58 59 declarative.wait_for_unit("deluged") 60 declarative.wait_for_unit("delugeweb") 61 declarative.wait_until_succeeds("curl --fail http://declarative:3142") 62 63 # deluge-console always exits with 1. https://dev.deluge-torrent.org/ticket/3291 64 declarative.succeed( 65 "(deluge-console 'connect 127.0.0.1:58846 andrew password; help' || true) | grep -q 'rm.*Remove a torrent'" 66 ) 67 ''; 68 } 69)