Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 45 additions & 10 deletions pkgs/test/overriding.nix
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ let

tests-python =
let
python-package-stub = pkgs.python3Packages.callPackage (
package-stub = pkgs.python3Packages.callPackage (
{
buildPythonPackage,
emptyDirectory,
Expand All @@ -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: {
Expand All @@ -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
;
Expand All @@ -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; })
Expand Down
Loading