about summary refs log tree commit diff
path: root/nixpkgs/nixos/tests/deluge.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/tests/deluge.nix')
-rw-r--r--nixpkgs/nixos/tests/deluge.nix49
1 files changed, 40 insertions, 9 deletions
diff --git a/nixpkgs/nixos/tests/deluge.nix b/nixpkgs/nixos/tests/deluge.nix
index b4be5e465cc0..22ad84e7bff1 100644
--- a/nixpkgs/nixos/tests/deluge.nix
+++ b/nixpkgs/nixos/tests/deluge.nix
@@ -5,25 +5,56 @@ import ./make-test.nix ({ pkgs, ...} : {
   };
 
   nodes = {
-    server =
+    simple = {
+      services.deluge = {
+        enable = true;
+        web.enable = true;
+      };
+      networking.firewall.allowedTCPPorts = [ 8112 ];
+    };
+
+    declarative =
       { ... }:
 
-      { services.deluge = {
+      {
+        services.deluge = {
           enable = true;
-          web.enable = true;
+          openFirewall = true;
+          declarative = true;
+          config = {
+            allow_remote = true;
+            download_location = "/var/lib/deluge/my-download";
+            daemon_port = 58846;
+            listen_ports = [ 6881 6889 ];
+          };
+          web = {
+            enable = true;
+            port =  3142;
+          };
+          authFile = pkgs.writeText "deluge-auth" ''
+            localclient:a7bef72a890:10
+            andrew:password:10
+            user3:anotherpass:5
+          '';
         };
-        networking.firewall.allowedTCPPorts = [ 8112 ];
+        environment.systemPackages = [ pkgs.deluge ];
       };
 
-    client = { };
   };
 
   testScript = ''
     startAll;
 
-    $server->waitForUnit("deluged");
-    $server->waitForUnit("delugeweb");
-    $client->waitForUnit("network.target");
-    $client->waitUntilSucceeds("curl --fail http://server:8112");
+    $simple->waitForUnit("deluged");
+    $simple->waitForUnit("delugeweb");
+    $simple->waitForOpenPort("8112");
+    $declarative->waitForUnit("network.target");
+    $declarative->waitUntilSucceeds("curl --fail http://simple:8112");
+
+    $declarative->waitForUnit("deluged");
+    $declarative->waitForUnit("delugeweb");
+    $declarative->waitUntilSucceeds("curl --fail http://declarative:3142");
+    $declarative->succeed("deluge-console 'help' | grep -q 'rm - Remove a torrent'");
+    $declarative->succeed("deluge-console 'connect 127.0.0.1:58846 andrew password; help' | grep -q 'rm - Remove a torrent'");
   '';
 })