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