diff --git a/pkgs/test/overriding.nix b/pkgs/test/overriding.nix index a41400d0d6c1d..21baca35e927b 100644 --- a/pkgs/test/overriding.nix +++ b/pkgs/test/overriding.nix @@ -390,7 +390,7 @@ let tests-python = let - python-package-stub = pkgs.python3Packages.callPackage ( + package-stub = pkgs.python3Packages.callPackage ( { buildPythonPackage, emptyDirectory, @@ -402,6 +402,23 @@ let src = emptyDirectory; } ) { }; + + package-stub-gcc = package-stub.override (previousArgs: { + buildPythonPackage = previousArgs.buildPythonPackage.override { + stdenv = pkgs.gccStdenv; + }; + }); + package-stub-clang = package-stub-gcc.override (previousArgs: { + buildPythonPackage = previousArgs.buildPythonPackage.override { + stdenv = pkgs.clangStdenv; + }; + }); + package-stub-libcxx = package-stub-clang.override (previousArgs: { + buildPythonPackage = previousArgs.buildPythonPackage.override { + stdenv = pkgs.libcxxStdenv; + }; + }); + applyOverridePythonAttrs = p: p.overridePythonAttrs (previousAttrs: { @@ -417,18 +434,37 @@ let ); in { + buildPythonPackage-override-gccStdenv = { + expr = package-stub-gcc.stdenv; + expected = pkgs.gccStdenv; + }; + buildPythonPackage-override-clangStdenv = { + expr = package-stub-clang.stdenv; + expected = pkgs.clangStdenv; + }; + buildPythonPackage-override-libcxxStdenv = { + expr = package-stub-libcxx.stdenv; + expected = pkgs.libcxxStdenv; + }; + overridePythonAttrs-stdenv-deprecated = { + expr = + (package-stub.overridePythonAttrs (_: { + stdenv = pkgs.clangStdenv; + })).stdenv; + expected = pkgs.clangStdenv; + }; + overridePythonAttrs = { - expr = (applyOverridePythonAttrs python-package-stub).overridePythonAttrsFlag; + expr = (applyOverridePythonAttrs package-stub).overridePythonAttrsFlag; expected = 1; }; overridePythonAttrs-nested = { - expr = - (applyOverridePythonAttrs (applyOverridePythonAttrs python-package-stub)).overridePythonAttrsFlag; + expr = (applyOverridePythonAttrs (applyOverridePythonAttrs package-stub)).overridePythonAttrsFlag; expected = 2; }; overrideAttrs-overridePythonAttrs-test-overrideAttrs = { expr = { - inherit (applyOverridePythonAttrs (overrideAttrsFooBar python-package-stub)) + inherit (applyOverridePythonAttrs (overrideAttrsFooBar package-stub)) FOO BAR ; @@ -439,16 +475,15 @@ let }; }; overrideAttrs-overridePythonAttrs-test-overridePythonAttrs = { - expr = - (applyOverridePythonAttrs (overrideAttrsFooBar python-package-stub)) ? overridePythonAttrsFlag; + expr = (applyOverridePythonAttrs (overrideAttrsFooBar package-stub)) ? overridePythonAttrsFlag; expected = true; }; overrideAttrs-overridePythonAttrs-test-commutation = { - expr = overrideAttrsFooBar (applyOverridePythonAttrs python-package-stub); - expected = applyOverridePythonAttrs (overrideAttrsFooBar python-package-stub); + expr = overrideAttrsFooBar (applyOverridePythonAttrs package-stub); + expected = applyOverridePythonAttrs (overrideAttrsFooBar package-stub); }; chain-of-overrides = rec { - expr = lib.pipe python-package-stub [ + expr = lib.pipe package-stub [ (p: p.overrideAttrs { inherit (expected) a; }) (p: p.overridePythonAttrs { inherit (expected) b; }) (p: p.overrideAttrs { inherit (expected) c; })