tests.overriding: buildPythonPackage: test stdenv customisation via buildPythonPackage.override (#455462)
This commit is contained in:
+45
-10
@@ -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; })
|
||||
|
||||
Reference in New Issue
Block a user