diff --git a/pkgs/tools/audio/beets/common.nix b/pkgs/tools/audio/beets/common.nix index 9a81c7518e5e..968544f2790e 100644 --- a/pkgs/tools/audio/beets/common.nix +++ b/pkgs/tools/audio/beets/common.nix @@ -23,6 +23,10 @@ , version , pluginOverrides ? { } , disableAllPlugins ? false + + # tests +, runCommand +, beets }@inputs: let inherit (lib) attrNames attrValues concatMap; @@ -63,6 +67,11 @@ python3Packages.buildPythonApplication rec { unidecode ] ++ (concatMap (p: p.propagatedBuildInputs) (attrValues enabledPlugins)); + # see: https://github.com/NixOS/nixpkgs/issues/56943#issuecomment-1131643663 + nativeBuildInputs = [ + gobject-introspection + ]; + buildInputs = [ ] ++ (with gst_all_1; [ gst-plugins-base @@ -137,8 +146,26 @@ python3Packages.buildPythonApplication rec { runHook postCheck ''; + passthru.plugins = allPlugins; + passthru.tests.gstreamer = runCommand "beets-gstreamer-test" { + meta.timeout = 60; + } + '' + set -euo pipefail + export HOME=$(mktemp -d) + mkdir $out + + cat << EOF > $out/config.yaml +replaygain: + backend: gstreamer +EOF + + echo $out/config.yaml + ${beets}/bin/beet -c $out/config.yaml > /dev/null + ''; + meta = with lib; { description = "Music tagger and library organizer"; homepage = "https://beets.io";