summaryrefslogtreecommitdiff
path: root/pkgs/test
diff options
context:
space:
mode:
authorYueh-Shun Li <shamrocklee@posteo.net>2025-12-10 19:06:55 +0000
committerGitHub <noreply@github.com>2025-12-10 19:06:55 +0000
commitff13d8ce45b9b3328fd2883f574138ea90eaa5a0 (patch)
tree28c4349d3acf3c29cd1c6ad67a3f4bc2a7dc1125 /pkgs/test
parentnixos/kubernetes: use nix coredns package by default (#424296) (diff)
parentmakeOverridablePythonPackage: take care of overrideAttrs (diff)
downloadnixpkgs-ff13d8ce45b9b3328fd2883f574138ea90eaa5a0.tar.gz
makeOverridablePythonPackage: simplify implementation and make compatible with `<pkg>.overrideAttrs` (#267296)
Diffstat (limited to 'pkgs/test')
-rw-r--r--pkgs/test/overriding.nix66
1 files changed, 62 insertions, 4 deletions
diff --git a/pkgs/test/overriding.nix b/pkgs/test/overriding.nix
index 3daa01b6247d..a41400d0d6c1 100644
--- a/pkgs/test/overriding.nix
+++ b/pkgs/test/overriding.nix
@@ -390,15 +390,73 @@ let
tests-python =
let
- p = pkgs.python3Packages.xpybutil.overridePythonAttrs (_: {
- dontWrapPythonPrograms = true;
- });
+ python-package-stub = pkgs.python3Packages.callPackage (
+ {
+ buildPythonPackage,
+ emptyDirectory,
+ }:
+ buildPythonPackage {
+ pname = "python-package-stub";
+ version = "0.1.0";
+ pyproject = true;
+ src = emptyDirectory;
+ }
+ ) { };
+ applyOverridePythonAttrs =
+ p:
+ p.overridePythonAttrs (previousAttrs: {
+ overridePythonAttrsFlag = previousAttrs.overridePythonAttrsFlag or 0 + 1;
+ });
+ overrideAttrsFooBar =
+ drv:
+ drv.overrideAttrs (
+ finalAttrs: previousAttrs: {
+ FOO = "a";
+ BAR = finalAttrs.FOO;
+ }
+ );
in
{
overridePythonAttrs = {
- expr = !lib.hasInfix "wrapPythonPrograms" p.postFixup;
+ expr = (applyOverridePythonAttrs python-package-stub).overridePythonAttrsFlag;
+ expected = 1;
+ };
+ overridePythonAttrs-nested = {
+ expr =
+ (applyOverridePythonAttrs (applyOverridePythonAttrs python-package-stub)).overridePythonAttrsFlag;
+ expected = 2;
+ };
+ overrideAttrs-overridePythonAttrs-test-overrideAttrs = {
+ expr = {
+ inherit (applyOverridePythonAttrs (overrideAttrsFooBar python-package-stub))
+ FOO
+ BAR
+ ;
+ };
+ expected = {
+ FOO = "a";
+ BAR = "a";
+ };
+ };
+ overrideAttrs-overridePythonAttrs-test-overridePythonAttrs = {
+ expr =
+ (applyOverridePythonAttrs (overrideAttrsFooBar python-package-stub)) ? overridePythonAttrsFlag;
expected = true;
};
+ overrideAttrs-overridePythonAttrs-test-commutation = {
+ expr = overrideAttrsFooBar (applyOverridePythonAttrs python-package-stub);
+ expected = applyOverridePythonAttrs (overrideAttrsFooBar python-package-stub);
+ };
+ chain-of-overrides = rec {
+ expr = lib.pipe python-package-stub [
+ (p: p.overrideAttrs { inherit (expected) a; })
+ (p: p.overridePythonAttrs { inherit (expected) b; })
+ (p: p.overrideAttrs { inherit (expected) c; })
+ (p: p.overridePythonAttrs { inherit (expected) d; })
+ (builtins.intersectAttrs expected)
+ ];
+ expected = lib.genAttrs [ "a" "b" "c" "d" ] lib.id;
+ };
};
in