1import ./make-test-python.nix (
2 { pkgs, ... }:
3 {
4 name = "minidlna";
5
6 nodes = {
7 server =
8 { ... }:
9 {
10 imports = [ ../modules/profiles/minimal.nix ];
11 services.minidlna.enable = true;
12 services.minidlna.openFirewall = true;
13 services.minidlna.settings = {
14 log_level = "error";
15 media_dir = [
16 "PV,/tmp/stuff"
17 ];
18 friendly_name = "rpi3";
19 root_container = "B";
20 notify_interval = 60;
21 album_art_names = [
22 "Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg"
23 "AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg"
24 "Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg"
25 ];
26 };
27 };
28 client = { ... }: { };
29 };
30
31 testScript = ''
32 start_all()
33 server.succeed("mkdir -p /tmp/stuff && chown minidlna: /tmp/stuff")
34 server.wait_for_unit("minidlna")
35 server.wait_for_open_port(8200)
36 # requests must be made *by IP* to avoid triggering minidlna's
37 # DNS-rebinding protection
38 server.succeed("curl --fail http://$(getent ahostsv4 localhost | head -n1 | cut -f 1 -d ' '):8200/")
39 client.succeed("curl --fail http://$(getent ahostsv4 server | head -n1 | cut -f 1 -d ' '):8200/")
40 '';
41 }
42)