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