Unverified Commit 1947952a authored by Matt Sturgeon's avatar Matt Sturgeon Committed by GitHub
Browse files

tests.overriding: buildPythonPackage: test `stdenv` customisation via...

tests.overriding: buildPythonPackage: test `stdenv` customisation via `buildPythonPackage.override` (#455462)
parents 5a97f738 06711e45
Loading
Loading
Loading
Loading
+45 −10
Original line number Diff line number Diff line
@@ -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; })