diff options
| author | Yueh-Shun Li <shamrocklee@posteo.net> | 2025-12-10 19:06:55 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-10 19:06:55 +0000 |
| commit | ff13d8ce45b9b3328fd2883f574138ea90eaa5a0 (patch) | |
| tree | 28c4349d3acf3c29cd1c6ad67a3f4bc2a7dc1125 /pkgs/test | |
| parent | nixos/kubernetes: use nix coredns package by default (#424296) (diff) | |
| parent | makeOverridablePythonPackage: take care of overrideAttrs (diff) | |
| download | nixpkgs-ff13d8ce45b9b3328fd2883f574138ea90eaa5a0.tar.gz | |
makeOverridablePythonPackage: simplify implementation and make compatible with `<pkg>.overrideAttrs` (#267296)
Diffstat (limited to 'pkgs/test')
| -rw-r--r-- | pkgs/test/overriding.nix | 66 |
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 |
