1import ./make-test-python.nix (
2 { pkgs, ... }:
3 {
4 name = "nzbget";
5 meta = with pkgs.lib.maintainers; {
6 maintainers = [
7 aanderse
8 flokli
9 ];
10 };
11
12 nodes = {
13 server =
14 { ... }:
15 {
16 services.nzbget.enable = true;
17
18 # provide some test settings
19 services.nzbget.settings = {
20 "MainDir" = "/var/lib/nzbget";
21 "DirectRename" = true;
22 "DiskSpace" = 0;
23 "Server1.Name" = "this is a test";
24 };
25
26 # hack, don't add (unfree) unrar to nzbget's path,
27 # so we can run this test in CI
28 systemd.services.nzbget.path = pkgs.lib.mkForce [ pkgs.p7zip ];
29 };
30 };
31
32 testScript =
33 { nodes, ... }:
34 ''
35 start_all()
36
37 server.wait_for_unit("nzbget.service")
38 server.wait_for_unit("network.target")
39 server.wait_for_open_port(6789)
40 assert "This file is part of nzbget" in server.succeed(
41 "curl -f -s -u nzbget:tegbzn6789 http://127.0.0.1:6789"
42 )
43 server.succeed(
44 "${pkgs.nzbget}/bin/nzbget -n -o Control_iP=127.0.0.1 -o Control_port=6789 -o Control_password=tegbzn6789 -V"
45 )
46
47 config = server.succeed("${nodes.server.systemd.services.nzbget.serviceConfig.ExecStart} --printconfig")
48
49 # confirm the test settings are applied
50 assert 'MainDir = "/var/lib/nzbget"' in config
51 assert 'DirectRename = "yes"' in config
52 assert 'DiskSpace = "0"' in config
53 assert 'Server1.Name = "this is a test"' in config
54 '';
55 }
56)