import ./make-test-python.nix ({ pkgs, ... }: { name = "minidlna"; nodes = { server = { ... }: { imports = [ ../modules/profiles/minimal.nix ]; services.minidlna.enable = true; services.minidlna.openFirewall = true; services.minidlna.settings = { log_level = "error"; media_dir = [ "PV,/tmp/stuff" ]; friendly_name = "rpi3"; root_container = "B"; notify_interval = 60; album_art_names = [ "Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg" "AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg" "Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg" ]; }; }; 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/") ''; })