Merge staging-next into staging
This commit is contained in:
@@ -6,67 +6,81 @@
|
||||
}:
|
||||
|
||||
let
|
||||
envs = let
|
||||
inherit python;
|
||||
pythonEnv = python.withPackages(ps: with ps; [ ]);
|
||||
pythonVirtualEnv = python.withPackages(ps: with ps; [ virtualenv ]);
|
||||
in {
|
||||
# Plain Python interpreter
|
||||
plain = rec {
|
||||
env = python;
|
||||
interpreter = env.interpreter;
|
||||
is_venv = "False";
|
||||
is_nixenv = "False";
|
||||
is_virtualenv = "False";
|
||||
};
|
||||
} // lib.optionalAttrs (!python.isPyPy) {
|
||||
# Use virtualenv from a Nix env.
|
||||
nixenv-virtualenv = rec {
|
||||
env = runCommand "${python.name}-virtualenv" {} ''
|
||||
${pythonVirtualEnv.interpreter} -m virtualenv $out
|
||||
'';
|
||||
interpreter = "${env}/bin/${python.executable}";
|
||||
is_venv = "False";
|
||||
is_nixenv = "True";
|
||||
is_virtualenv = "True";
|
||||
};
|
||||
} // lib.optionalAttrs (python.implementation != "graal") {
|
||||
# Python Nix environment (python.buildEnv)
|
||||
nixenv = rec {
|
||||
env = pythonEnv;
|
||||
interpreter = env.interpreter;
|
||||
is_venv = "False";
|
||||
is_nixenv = "True";
|
||||
is_virtualenv = "False";
|
||||
};
|
||||
} // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) rec {
|
||||
# Venv built using plain Python
|
||||
# Python 2 does not support venv
|
||||
# TODO: PyPy executable name is incorrect, it should be pypy-c or pypy-3c instead of pypy and pypy3.
|
||||
plain-venv = rec {
|
||||
env = runCommand "${python.name}-venv" {} ''
|
||||
${python.interpreter} -m venv $out
|
||||
'';
|
||||
interpreter = "${env}/bin/${python.executable}";
|
||||
is_venv = "True";
|
||||
is_nixenv = "False";
|
||||
is_virtualenv = "False";
|
||||
environmentTests = let
|
||||
envs = let
|
||||
inherit python;
|
||||
pythonEnv = python.withPackages(ps: with ps; [ ]);
|
||||
pythonVirtualEnv = python.withPackages(ps: with ps; [ virtualenv ]);
|
||||
in {
|
||||
# Plain Python interpreter
|
||||
plain = rec {
|
||||
env = python;
|
||||
interpreter = env.interpreter;
|
||||
is_venv = "False";
|
||||
is_nixenv = "False";
|
||||
is_virtualenv = "False";
|
||||
};
|
||||
} // lib.optionalAttrs (!python.isPyPy) {
|
||||
# Use virtualenv from a Nix env.
|
||||
nixenv-virtualenv = rec {
|
||||
env = runCommand "${python.name}-virtualenv" {} ''
|
||||
${pythonVirtualEnv.interpreter} -m virtualenv $out
|
||||
'';
|
||||
interpreter = "${env}/bin/${python.executable}";
|
||||
is_venv = "False";
|
||||
is_nixenv = "True";
|
||||
is_virtualenv = "True";
|
||||
};
|
||||
} // lib.optionalAttrs (python.implementation != "graal") {
|
||||
# Python Nix environment (python.buildEnv)
|
||||
nixenv = rec {
|
||||
env = pythonEnv;
|
||||
interpreter = env.interpreter;
|
||||
is_venv = "False";
|
||||
is_nixenv = "True";
|
||||
is_virtualenv = "False";
|
||||
};
|
||||
} // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) rec {
|
||||
# Venv built using plain Python
|
||||
# Python 2 does not support venv
|
||||
# TODO: PyPy executable name is incorrect, it should be pypy-c or pypy-3c instead of pypy and pypy3.
|
||||
plain-venv = rec {
|
||||
env = runCommand "${python.name}-venv" {} ''
|
||||
${python.interpreter} -m venv $out
|
||||
'';
|
||||
interpreter = "${env}/bin/${python.executable}";
|
||||
is_venv = "True";
|
||||
is_nixenv = "False";
|
||||
is_virtualenv = "False";
|
||||
};
|
||||
|
||||
} // lib.optionalAttrs (python.pythonAtLeast "3.8") {
|
||||
# Venv built using Python Nix environment (python.buildEnv)
|
||||
# TODO: Cannot create venv from a nix env
|
||||
# Error: Command '['/nix/store/ddc8nqx73pda86ibvhzdmvdsqmwnbjf7-python3-3.7.6-venv/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
|
||||
nixenv-venv = rec {
|
||||
env = runCommand "${python.name}-venv" {} ''
|
||||
${pythonEnv.interpreter} -m venv $out
|
||||
'';
|
||||
interpreter = "${env}/bin/${pythonEnv.executable}";
|
||||
is_venv = "True";
|
||||
is_nixenv = "True";
|
||||
is_virtualenv = "False";
|
||||
};
|
||||
};
|
||||
|
||||
} // lib.optionalAttrs (python.pythonAtLeast "3.8") {
|
||||
# Venv built using Python Nix environment (python.buildEnv)
|
||||
# TODO: Cannot create venv from a nix env
|
||||
# Error: Command '['/nix/store/ddc8nqx73pda86ibvhzdmvdsqmwnbjf7-python3-3.7.6-venv/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
|
||||
nixenv-venv = rec {
|
||||
env = runCommand "${python.name}-venv" {} ''
|
||||
${pythonEnv.interpreter} -m venv $out
|
||||
'';
|
||||
interpreter = "${env}/bin/${pythonEnv.executable}";
|
||||
is_venv = "True";
|
||||
is_nixenv = "True";
|
||||
is_virtualenv = "False";
|
||||
};
|
||||
};
|
||||
testfun = name: attrs: runCommand "${python.name}-tests-${name}" ({
|
||||
inherit (python) pythonVersion;
|
||||
} // attrs) ''
|
||||
cp -r ${./tests/test_environments} tests
|
||||
chmod -R +w tests
|
||||
substituteAllInPlace tests/test_python.py
|
||||
${attrs.interpreter} -m unittest discover --verbose tests #/test_python.py
|
||||
mkdir $out
|
||||
touch $out/success
|
||||
'';
|
||||
|
||||
in lib.mapAttrs testfun envs;
|
||||
|
||||
# All PyPy package builds are broken at the moment
|
||||
integrationTests = lib.optionalAttrs (python.pythonAtLeast "3.7" && (!python.isPyPy)) rec {
|
||||
@@ -76,15 +90,6 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
testfun = name: attrs: runCommand "${python.name}-tests-${name}" ({
|
||||
inherit (python) pythonVersion;
|
||||
} // attrs) ''
|
||||
cp -r ${./tests} tests
|
||||
chmod -R +w tests
|
||||
substituteAllInPlace tests/test_python.py
|
||||
${attrs.interpreter} -m unittest discover --verbose tests #/test_python.py
|
||||
mkdir $out
|
||||
touch $out/success
|
||||
'';
|
||||
|
||||
in lib.mapAttrs testfun envs // integrationTests
|
||||
|
||||
in environmentTests // integrationTests
|
||||
|
||||
Reference in New Issue
Block a user