mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-16 07:23:51 -05:00
Add tests for conda
This commit is contained in:
@@ -44,7 +44,7 @@ for version_string in "${versions[@]}"; do
|
|||||||
if [[ "${version_string}" != "${version_string%/envs/*}" ]]; then
|
if [[ "${version_string}" != "${version_string%/envs/*}" ]]; then
|
||||||
conda_env="${version_string##*/envs/}"
|
conda_env="${version_string##*/envs/}"
|
||||||
if [ -f "${PREFIX}/envs/${conda_env}/bin/conda" ]; then
|
if [ -f "${PREFIX}/envs/${conda_env}/bin/conda" ]; then
|
||||||
VIRTUALENV_PREFIX_PATHS=("${VIRTUALENV_PREFIX_PATHS[@]}" "${PREFIX}/envs/${conda_env}")
|
VIRTUALENV_PREFIX_PATHS=("${VIRTUALENV_PREFIX_PATHS[@]}" "${PREFIX}")
|
||||||
else
|
else
|
||||||
echo "pyenv-virtualenv: version \`${version_string}' is not an environment of anaconda/miniconda" 1>&2
|
echo "pyenv-virtualenv: version \`${version_string}' is not an environment of anaconda/miniconda" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
149
test/conda-activate.bats
Normal file
149
test/conda-activate.bats
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
export HOME="${TMP}"
|
||||||
|
export PYENV_ROOT="${TMP}/pyenv"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "activate conda root from current version" {
|
||||||
|
export PYENV_VIRTUALENV_INIT=1
|
||||||
|
|
||||||
|
create_conda "anaconda-2.3.0"
|
||||||
|
stub pyenv-version-name "echo anaconda-2.3.0"
|
||||||
|
stub pyenv-virtualenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
|
||||||
|
stub pyenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
|
||||||
|
stub pyenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
|
||||||
|
|
||||||
|
PYENV_SHELL="bash" PYENV_VERSION="anaconda-2.3.0" run pyenv-sh-activate
|
||||||
|
|
||||||
|
unstub pyenv-version-name
|
||||||
|
unstub pyenv-virtualenv-prefix
|
||||||
|
unstub pyenv-prefix
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<EOS
|
||||||
|
unset PYENV_DEACTIVATE;
|
||||||
|
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0";
|
||||||
|
. "${PYENV_ROOT}/versions/anaconda-2.3.0/bin/activate" "root";
|
||||||
|
EOS
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "activate conda root from current version (fish)" {
|
||||||
|
export PYENV_VIRTUALENV_INIT=1
|
||||||
|
|
||||||
|
create_conda "anaconda-2.3.0"
|
||||||
|
stub pyenv-version-name "echo anaconda-2.3.0"
|
||||||
|
stub pyenv-virtualenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
|
||||||
|
stub pyenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
|
||||||
|
stub pyenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
|
||||||
|
|
||||||
|
PYENV_SHELL="fish" PYENV_VERSION="anaconda-2.3.0" run pyenv-sh-activate
|
||||||
|
|
||||||
|
unstub pyenv-version-name
|
||||||
|
unstub pyenv-virtualenv-prefix
|
||||||
|
unstub pyenv-prefix
|
||||||
|
|
||||||
|
assert_failure
|
||||||
|
assert_output <<EOS
|
||||||
|
pyenv-virtualenv: Only bash and zsh are supported by Anaconda/Miniconda
|
||||||
|
false
|
||||||
|
EOS
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "activate conda root from command-line argument" {
|
||||||
|
export PYENV_VIRTUALENV_INIT=1
|
||||||
|
|
||||||
|
create_conda "anaconda-2.3.0"
|
||||||
|
create_conda "miniconda-3.9.1"
|
||||||
|
stub pyenv-virtualenv-prefix "miniconda-3.9.1 : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1\""
|
||||||
|
stub pyenv-prefix "miniconda-3.9.1 : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1\""
|
||||||
|
stub pyenv-prefix "miniconda-3.9.1 : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1\""
|
||||||
|
|
||||||
|
PYENV_SHELL="bash" PYENV_VERSION="anaconda-2.3.0" run pyenv-sh-activate "miniconda-3.9.1"
|
||||||
|
|
||||||
|
unstub pyenv-virtualenv-prefix
|
||||||
|
unstub pyenv-prefix
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<EOS
|
||||||
|
pyenv shell "miniconda-3.9.1";
|
||||||
|
export PYENV_ACTIVATE_SHELL=1;
|
||||||
|
unset PYENV_DEACTIVATE;
|
||||||
|
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/miniconda-3.9.1";
|
||||||
|
. "${PYENV_ROOT}/versions/miniconda-3.9.1/bin/activate" "root";
|
||||||
|
EOS
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "activate conda env from current version" {
|
||||||
|
export PYENV_VIRTUALENV_INIT=1
|
||||||
|
|
||||||
|
create_conda "anaconda-2.3.0" "foo"
|
||||||
|
stub pyenv-version-name "echo anaconda-2.3.0/envs/foo"
|
||||||
|
stub pyenv-virtualenv-prefix "anaconda-2.3.0/envs/foo : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo\""
|
||||||
|
stub pyenv-prefix "anaconda-2.3.0/envs/foo : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo\""
|
||||||
|
stub pyenv-prefix "anaconda-2.3.0/envs/foo : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo\""
|
||||||
|
|
||||||
|
PYENV_SHELL="bash" PYENV_VERSION="anaconda-2.3.0/envs/foo" run pyenv-sh-activate
|
||||||
|
|
||||||
|
unstub pyenv-version-name
|
||||||
|
unstub pyenv-virtualenv-prefix
|
||||||
|
unstub pyenv-prefix
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<EOS
|
||||||
|
unset PYENV_DEACTIVATE;
|
||||||
|
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo";
|
||||||
|
. "${PYENV_ROOT}/versions/anaconda-2.3.0/bin/activate" "foo";
|
||||||
|
EOS
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "activate conda env from command-line argument" {
|
||||||
|
export PYENV_VIRTUALENV_INIT=1
|
||||||
|
|
||||||
|
create_conda "anaconda-2.3.0" "foo"
|
||||||
|
create_conda "miniconda-3.9.1" "bar"
|
||||||
|
stub pyenv-virtualenv-prefix "miniconda-3.9.1/envs/bar : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1\""
|
||||||
|
stub pyenv-prefix "miniconda-3.9.1/envs/bar : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar\""
|
||||||
|
stub pyenv-prefix "miniconda-3.9.1/envs/bar : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar\""
|
||||||
|
|
||||||
|
PYENV_SHELL="bash" PYENV_VERSION="anaconda-2.3.0/envs/foo" run pyenv-sh-activate "miniconda-3.9.1/envs/bar"
|
||||||
|
|
||||||
|
unstub pyenv-virtualenv-prefix
|
||||||
|
unstub pyenv-prefix
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<EOS
|
||||||
|
pyenv shell "miniconda-3.9.1/envs/bar";
|
||||||
|
export PYENV_ACTIVATE_SHELL=1;
|
||||||
|
unset PYENV_DEACTIVATE;
|
||||||
|
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar";
|
||||||
|
. "${PYENV_ROOT}/versions/miniconda-3.9.1/bin/activate" "bar";
|
||||||
|
EOS
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "activate conda env from command-line argument in short-form" {
|
||||||
|
export PYENV_VIRTUALENV_INIT=1
|
||||||
|
|
||||||
|
create_conda "miniconda-3.9.1" "bar"
|
||||||
|
stub pyenv-prefix "bar : false"
|
||||||
|
stub pyenv-version-name " : echo miniconda-3.9.1"
|
||||||
|
stub pyenv-virtualenv-prefix "miniconda-3.9.1/envs/bar : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar\""
|
||||||
|
stub pyenv-prefix "miniconda-3.9.1/envs/bar : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar\""
|
||||||
|
|
||||||
|
PYENV_SHELL="bash" PYENV_VERSION="miniconda-3.9.1" run pyenv-sh-activate "bar"
|
||||||
|
|
||||||
|
unstub pyenv-prefix
|
||||||
|
unstub pyenv-version-name
|
||||||
|
unstub pyenv-virtualenv-prefix
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<EOS
|
||||||
|
pyenv shell "miniconda-3.9.1/envs/bar";
|
||||||
|
export PYENV_ACTIVATE_SHELL=1;
|
||||||
|
unset PYENV_DEACTIVATE;
|
||||||
|
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar";
|
||||||
|
. "${PYENV_ROOT}/versions/miniconda-3.9.1/bin/activate" "bar";
|
||||||
|
EOS
|
||||||
|
}
|
||||||
64
test/conda-deactivate.bats
Normal file
64
test/conda-deactivate.bats
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
export PYENV_ROOT="${TMP}/pyenv"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "deactivate conda root" {
|
||||||
|
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0"
|
||||||
|
export PYENV_ACTIVATE_SHELL=
|
||||||
|
|
||||||
|
create_conda "anaconda-2.3.0"
|
||||||
|
|
||||||
|
PYENV_SHELL="bash" run pyenv-sh-deactivate
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<EOS
|
||||||
|
if [ -f "${PYENV_ROOT}/versions/anaconda-2.3.0/bin/deactivate" ]; then
|
||||||
|
export PYENV_DEACTIVATE="$PYENV_ACTIVATE";
|
||||||
|
unset PYENV_ACTIVATE;
|
||||||
|
. "${PYENV_ROOT}/versions/anaconda-2.3.0/bin/deactivate";
|
||||||
|
else
|
||||||
|
echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2;
|
||||||
|
false;
|
||||||
|
fi;
|
||||||
|
EOS
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "deactivate conda root (fish)" {
|
||||||
|
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0"
|
||||||
|
export PYENV_ACTIVATE_SHELL=
|
||||||
|
|
||||||
|
create_conda "anaconda-2.3.0"
|
||||||
|
|
||||||
|
PYENV_SHELL="fish" run pyenv-sh-deactivate
|
||||||
|
|
||||||
|
assert_failure
|
||||||
|
assert_output <<EOS
|
||||||
|
pyenv-virtualenv: Only bash and zsh are supported by Anaconda/Miniconda
|
||||||
|
false
|
||||||
|
EOS
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "deactivate conda env" {
|
||||||
|
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo"
|
||||||
|
export PYENV_ACTIVATE_SHELL=
|
||||||
|
|
||||||
|
create_conda "anaconda-2.3.0" "foo"
|
||||||
|
|
||||||
|
PYENV_SHELL="bash" run pyenv-sh-deactivate
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<EOS
|
||||||
|
if [ -f "${PYENV_ROOT}/versions/anaconda-2.3.0/bin/deactivate" ]; then
|
||||||
|
export PYENV_DEACTIVATE="$PYENV_ACTIVATE";
|
||||||
|
unset PYENV_ACTIVATE;
|
||||||
|
. "${PYENV_ROOT}/versions/anaconda-2.3.0/bin/deactivate";
|
||||||
|
else
|
||||||
|
echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2;
|
||||||
|
false;
|
||||||
|
fi;
|
||||||
|
EOS
|
||||||
|
}
|
||||||
41
test/conda-virtualenv-prefix.bats
Normal file
41
test/conda-virtualenv-prefix.bats
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
export PYENV_ROOT="${TMP}/pyenv"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "display conda root" {
|
||||||
|
create_conda "anaconda-2.3.0"
|
||||||
|
|
||||||
|
stub pyenv-version-name "echo anaconda-2.3.0"
|
||||||
|
stub pyenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
|
||||||
|
|
||||||
|
PYENV_VERSION="anaconda-2.3.0" run pyenv-virtualenv-prefix
|
||||||
|
|
||||||
|
unstub pyenv-version-name
|
||||||
|
unstub pyenv-prefix
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<OUT
|
||||||
|
${PYENV_ROOT}/versions/anaconda-2.3.0
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "display conda env" {
|
||||||
|
create_conda "anaconda-2.3.0" "foo"
|
||||||
|
|
||||||
|
stub pyenv-version-name "echo anaconda-2.3.0/envs/foo"
|
||||||
|
stub pyenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
|
||||||
|
|
||||||
|
PYENV_VERSION="anaconda-2.3.0/envs/foo" run pyenv-virtualenv-prefix
|
||||||
|
|
||||||
|
unstub pyenv-version-name
|
||||||
|
unstub pyenv-prefix
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<OUT
|
||||||
|
${PYENV_ROOT}/versions/anaconda-2.3.0
|
||||||
|
OUT
|
||||||
|
}
|
||||||
@@ -116,3 +116,19 @@ create_executable() {
|
|||||||
remove_executable() {
|
remove_executable() {
|
||||||
rm -f "${PYENV_ROOT}/versions/$1/bin/$2"
|
rm -f "${PYENV_ROOT}/versions/$1/bin/$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
create_conda() {
|
||||||
|
local version="$1"
|
||||||
|
shift 1
|
||||||
|
mkdir -p "${PYENV_ROOT}/versions/$version/bin"
|
||||||
|
touch "${PYENV_ROOT}/versions/$version/bin/activate"
|
||||||
|
touch "${PYENV_ROOT}/versions/$version/bin/conda"
|
||||||
|
chmod +x "${PYENV_ROOT}/versions/$version/bin/conda"
|
||||||
|
local conda_env
|
||||||
|
for conda_env; do
|
||||||
|
mkdir -p "${PYENV_ROOT}/versions/$version/envs/$conda_env/bin"
|
||||||
|
touch "${PYENV_ROOT}/versions/$version/envs/$conda_env/bin/activate"
|
||||||
|
touch "${PYENV_ROOT}/versions/$version/envs/$conda_env/bin/conda"
|
||||||
|
chmod +x "${PYENV_ROOT}/versions/$version/envs/$conda_env/bin/conda"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user