python3Packages: transition from pytestFlagsArray (round 3) and ban pytestFlagsArray (#513772)

This commit is contained in:
Emily
2026-04-27 01:36:35 +00:00
committed by GitHub
12 changed files with 31 additions and 12 deletions
+4
View File
@@ -168,6 +168,10 @@
- the `xorg` package set has been deprecated, packages have moved to the top level.
- `python3Packages.buildPythonPackage` and `python3Packages.buildPythonApplication` now throw errors in the presence of `pytestFlagsArray`.
Please use [`pytestFlags` and `(enabled|disabled)(TestPaths|Tests|TestMarks)`](#using-pytestcheckhook) instead.
If modifying the Nix expression is not feasible, users can remediate the error by overriding `pytestFlagsArray` with `null` or `[ ]`.
- `python3Packages.pygame` has been been renamed to `python3Packages.pygame-original`, the attribute `python3Packages.pygame` will from python 3.14 default to the more actively maintained `python3Packages.pygame-ce`
- `fastly` has been updated to major version 14. For more information, you can check the [release notes](https://github.com/fastly/cli/releases/tag/v14.0.0)
+1 -1
View File
@@ -60,7 +60,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
python3.pkgs.pytestCheckHook
];
pytestFlagsArray = [
pytestFlags = [
# Nixpkgs' default is `--capture=fd`, and with it, 2 command mock tests
# fail, see: https://github.com/lucc/khard/issues/353
"--capture=no"
+1 -1
View File
@@ -38,7 +38,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
pytestCheckHook
];
pytestFlagsArray = [
enabledTestPaths = [
"openfreebuds/driver/huawei/test/"
"openfreebuds/test/test_event_bus.py"
];
+1 -1
View File
@@ -66,7 +66,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
# Run subset of tests that don't require YubiKey hardware
doCheck = true;
pytestFlagsArray = [
enabledTestPaths = [
"tests"
];
@@ -112,6 +112,9 @@ lib.extendMkDerivation {
"dependencies"
"optional-dependencies"
"build-system"
# Deprecated arguments
"pytestFlagsArray"
];
extendDrvArgs =
@@ -439,6 +442,19 @@ lib.extendMkDerivation {
# Longer-term we should get rid of `checkPhase` and use `installCheckPhase`.
installCheckPhase = attrs.checkPhase;
}
// (
let
deprecatedFlagNotEmpty =
attrs ? pytestFlagsArray && attrs.pytestFlagsArray != null && attrs.pytestFlagsArray != [ ];
pos = builtins.unsafeGetAttrPos "pytestFlagsArray" attrs;
in
{
${if deprecatedFlagNotEmpty then "pytestFlagsArray" else null} = throw ''
buildPythonPackage: Deprecated flag pytestFlagsArray found at ${pos.file}:${toString pos.line}
Use pytestFlags or (enabled|disabled)(TestPaths|Tests|TestMarks) instead.
'';
}
)
//
lib.mapAttrs
(
@@ -41,10 +41,9 @@ buildPythonPackage rec {
pythonImportsCheck = [ "connect_box" ];
pytestFlagsArray = [
pytestFlags = [
"--vcr-record=none"
"-W"
"ignore::DeprecationWarning"
"-Wignore::DeprecationWarning"
];
meta = {
@@ -31,7 +31,7 @@ buildPythonPackage rec {
pytestCheckHook
];
pytestFlagsArray = [
enabledTestPaths = [
"tests.py"
];
@@ -552,7 +552,7 @@ buildPythonPackage (finalAttrs: {
writableTmpDirAsHomeHook
];
pytestFlagsArray = [
pytestFlags = [
"--override-ini=addopts="
];
@@ -44,7 +44,7 @@ buildPythonPackage rec {
export DJANGO_SETTINGS_MODULE=settings
'';
pytestFlagsArray = [
enabledTestPaths = [
"testapp/tests.py"
];
@@ -180,7 +180,7 @@ buildPythonPackage (finalAttrs: {
export NUMBA_CACHE_DIR=$(mktemp -d);
'';
pytestFlagsArray = [
pytestFlags = [
# UserWarning: 'where' used without 'out', expect unitialized memory in output.
# If this is intentional, use out=None.
"-Wignore::UserWarning"
@@ -66,7 +66,7 @@ buildPythonPackage (finalAttrs: {
statsmodels
];
pytestFlagsArray = [
enabledTestPaths = [
# Only run the main test suite; subpackage tests require
# sklearn-pandas which is not available in nixpkgs
"sklearn2pmml/tests"
@@ -127,7 +127,7 @@ buildPythonPackage (finalAttrs: {
EOF
'';
pytestFlagsArray = [
enabledTestPaths = [
"e2e/python/tests"
"tests/test_apps/python/smoke_test.py"
];