at 21.11-pre 2.9 kB view raw
1import ./make-test-python.nix ({ pkgs, ...} : { 2 name = "deluge"; 3 meta = with pkgs.lib.maintainers; { 4 maintainers = [ flokli ]; 5 }; 6 7 nodes = { 8 simple1 = { 9 services.deluge = { 10 enable = true; 11 package = pkgs.deluge-1_x; 12 web = { 13 enable = true; 14 openFirewall = true; 15 }; 16 }; 17 }; 18 19 declarative1 = { 20 services.deluge = { 21 enable = true; 22 package = pkgs.deluge-1_x; 23 openFirewall = true; 24 declarative = true; 25 config = { 26 allow_remote = true; 27 download_location = "/var/lib/deluge/my-download"; 28 daemon_port = 58846; 29 listen_ports = [ 6881 6889 ]; 30 }; 31 web = { 32 enable = true; 33 port = 3142; 34 }; 35 authFile = pkgs.writeText "deluge-auth" '' 36 localclient:a7bef72a890:10 37 andrew:password:10 38 user3:anotherpass:5 39 ''; 40 }; 41 }; 42 43 simple2 = { 44 services.deluge = { 45 enable = true; 46 package = pkgs.deluge-2_x; 47 web = { 48 enable = true; 49 openFirewall = true; 50 }; 51 }; 52 }; 53 54 declarative2 = { 55 services.deluge = { 56 enable = true; 57 package = pkgs.deluge-2_x; 58 openFirewall = true; 59 declarative = true; 60 config = { 61 allow_remote = true; 62 download_location = "/var/lib/deluge/my-download"; 63 daemon_port = 58846; 64 listen_ports = [ 6881 6889 ]; 65 }; 66 web = { 67 enable = true; 68 port = 3142; 69 }; 70 authFile = pkgs.writeText "deluge-auth" '' 71 localclient:a7bef72a890:10 72 andrew:password:10 73 user3:anotherpass:5 74 ''; 75 }; 76 }; 77 78 }; 79 80 testScript = '' 81 start_all() 82 83 simple1.wait_for_unit("deluged") 84 simple2.wait_for_unit("deluged") 85 simple1.wait_for_unit("delugeweb") 86 simple2.wait_for_unit("delugeweb") 87 simple1.wait_for_open_port("8112") 88 simple2.wait_for_open_port("8112") 89 declarative1.wait_for_unit("network.target") 90 declarative2.wait_for_unit("network.target") 91 declarative1.wait_until_succeeds("curl --fail http://simple1:8112") 92 declarative2.wait_until_succeeds("curl --fail http://simple2:8112") 93 94 declarative1.wait_for_unit("deluged") 95 declarative2.wait_for_unit("deluged") 96 declarative1.wait_for_unit("delugeweb") 97 declarative2.wait_for_unit("delugeweb") 98 declarative1.wait_until_succeeds("curl --fail http://declarative1:3142") 99 declarative2.wait_until_succeeds("curl --fail http://declarative2:3142") 100 declarative1.succeed( 101 "deluge-console 'connect 127.0.0.1:58846 andrew password; help' | grep -q 'rm.*Remove a torrent'" 102 ) 103 declarative2.succeed( 104 "deluge-console 'connect 127.0.0.1:58846 andrew password; help' | grep -q 'rm.*Remove a torrent'" 105 ) 106 ''; 107})