buildPython*: pass check-related args whenever specified

Pass
- disabledTestMarks
- disabledTestPaths
- disabledTests
- enabledTestMarks
- enabledTestPaths
- enabledTests
- pytestFlags
- pytestFlagsArray
- unittestFlags
- unittestFlagsArray

whenever they are specified,
no matter if doCheck is true or if they are empty lists.

Simplify the buildPython* argument handling
and bring us closer to the deprecation of overridePythonAttrs
and the adoption of fixed-point arguments.
This commit is contained in:
Yueh-Shun Li
2025-04-30 06:25:38 +08:00
parent a61952af35
commit 67564e09a5
@@ -106,16 +106,6 @@ let
"doInstallCheck"
"pyproject"
"format"
"disabledTestMarks"
"disabledTestPaths"
"disabledTests"
"enabledTestMarks"
"enabledTestPaths"
"enabledTests"
"pytestFlags"
"pytestFlagsArray"
"unittestFlags"
"unittestFlagsArray"
"outputs"
"stdenv"
"dependencies"
@@ -441,32 +431,21 @@ let
# Longer-term we should get rid of `checkPhase` and use `installCheckPhase`.
installCheckPhase = attrs.checkPhase;
}
// optionalAttrs (attrs.doCheck or true) (
getOptionalAttrs [
"disabledTestMarks"
"disabledTestPaths"
"disabledTests"
"pytestFlags"
"pytestFlagsArray"
"unittestFlags"
"unittestFlagsArray"
] attrs
//
lib.mapAttrs
(
name: value:
lib.throwIf (
attrs.${name} == [ ]
) "${lib.getName finalAttrs}: ${name} must be unspecified, null or a non-empty list." attrs.${name}
)
(
getOptionalAttrs [
"enabledTestMarks"
"enabledTestPaths"
"enabledTests"
] attrs
)
)
//
lib.mapAttrs
(
name: value:
lib.throwIf (
attrs.${name} == [ ]
) "${lib.getName finalAttrs}: ${name} must be unspecified, null or a non-empty list." attrs.${name}
)
(
getOptionalAttrs [
"enabledTestMarks"
"enabledTestPaths"
"enabledTests"
] attrs
)
);
# This derivation transformation function must be independent to `attrs`