diff --git a/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh b/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh index eb45205ff731..0f708f888292 100644 --- a/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh +++ b/pkgs/development/interpreters/python/hooks/pytest-check-hook.sh @@ -2,7 +2,7 @@ echo "Sourcing pytest-check-hook" declare -ar disabledTests -declare -ar disabledTestPaths +declare -a disabledTestPaths function _concatSep { local result @@ -37,6 +37,11 @@ function pytestCheckPhase() { disabledTestsString=$(_pytestComputeDisabledTestsString "${disabledTests[@]}") args+=" -k \""$disabledTestsString"\"" fi + + if [ -n "${disabledTestPaths-}" ]; then + eval "disabledTestPaths=($disabledTestPaths)" + fi + for path in ${disabledTestPaths[@]}; do if [ ! -e "$path" ]; then echo "Disabled tests path \"$path\" does not exist. Aborting" diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix index e9c769821d6f..4917b167046e 100644 --- a/pkgs/development/interpreters/python/mk-python-derivation.nix +++ b/pkgs/development/interpreters/python/mk-python-derivation.nix @@ -93,6 +93,8 @@ , doCheck ? config.doCheckByDefault or false +, disabledTestPaths ? [] + , ... } @ attrs: @@ -108,6 +110,7 @@ let self = toPythonModule (stdenv.mkDerivation ((builtins.removeAttrs attrs [ "disabled" "checkPhase" "checkInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format" + "disabledTestPaths" ]) // { name = namePrefix + name_; @@ -178,6 +181,8 @@ let # If given use the specified checkPhase, otherwise use the setup hook. # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`. installCheckPhase = attrs.checkPhase; + } // lib.optionalAttrs (disabledTestPaths != []) { + disabledTestPaths = lib.escapeShellArgs disabledTestPaths; })); passthru.updateScript = let