summary refs log tree commit diff
path: root/nixos/tests/minidlna.nix
blob: 104b79078fd53530e2eabf0bf36ad7180fb5e74a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import ./make-test-python.nix ({ pkgs, ... }: {
  name = "minidlna";

  nodes = {
    server =
      { ... }:
      {
        imports = [ ../modules/profiles/minimal.nix ];
        networking.firewall.allowedTCPPorts = [ 8200 ];
        services.minidlna = {
          enable = true;
          loglevel = "error";
          mediaDirs = [
           "PV,/tmp/stuff"
          ];
          friendlyName = "rpi3";
          rootContainer = "B";
          extraConfig =
          ''
            album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg
            album_art_names=AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg
            album_art_names=Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
            notify_interval=60
          '';
        };
      };
      client = { ... }: { };
  };

  testScript =
  ''
    start_all()
    server.succeed("mkdir -p /tmp/stuff && chown minidlna: /tmp/stuff")
    server.wait_for_unit("minidlna")
    server.wait_for_open_port("8200")
    # requests must be made *by IP* to avoid triggering minidlna's
    # DNS-rebinding protection
    server.succeed("curl --fail http://$(getent ahostsv4 localhost | head -n1 | cut -f 1 -d ' '):8200/")
    client.succeed("curl --fail http://$(getent ahostsv4 server | head -n1 | cut -f 1 -d ' '):8200/")
  '';
})