Merge pull request #111 from yyuu/activate-on-multiple-versions

Change `activate` behavior on multiple versions
This commit is contained in:
Yamashita, Yuu
2015-11-08 18:42:09 +09:00
8 changed files with 194 additions and 224 deletions

View File

@@ -14,6 +14,8 @@
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
unset DEACTIVATE
unset FORCE
unset QUIET unset QUIET
unset VERBOSE unset VERBOSE
@@ -24,14 +26,20 @@ while [ $# -gt 0 ]; do
echo --unset echo --unset
exec pyenv-virtualenvs --bare exec pyenv-virtualenvs --bare
;; ;;
"--no-error" | "--quiet" ) "-d" | "--deactivate" )
DEACTIVATE=1
;;
"-f" | "--force" )
FORCE=1
;;
"-q" | "--quiet" )
QUIET=1 QUIET=1
;; ;;
"--unset" ) "--unset" )
echo "pyenv deactivate" echo "pyenv deactivate"
exit exit
;; ;;
"--verbose" ) "-v" | "--verbose" )
VERBOSE=1 VERBOSE=1
;; ;;
* ) * )
@@ -56,82 +64,105 @@ if [ -z "${PYENV_VIRTUALENV_INIT}" ]; then
no_shell= no_shell=
fi fi
if [ "${#versions[@]}" -gt 1 ]; then venv="${versions}"
[ -n "$QUIET" ] || echo "pyenv-virtualenv: cannot activate multiple versions at once: ${versions[@]}" 1>&2
if ! pyenv-virtualenv-prefix "${venv}" 1>/dev/null 2>&1; then
if [ -z "$QUIET" ]; then
echo "pyenv-virtualenv: version \`${venv}' is not a virtualenv" 1>&2
fi
echo "false" echo "false"
exit 1 exit 1
fi fi
if pyenv-prefix "${versions}" 1>/dev/null 2>&1; then # exit as error if there are multiple virtualenvs
if ! pyenv-virtualenv-prefix "${versions}" 1>/dev/null 2>&1; then # https://github.com/yyuu/pyenv-virtualenv/issues/105
[ -n "$QUIET" ] || echo "pyenv-virtualenv: version \`${versions}' is not a virtualenv" 1>&2 for version in "${versions[@]}"; do
echo "false" if [[ "${version}" != "${venv}" ]]; then
exit 1 if pyenv-virtualenv-prefix "${version}" 1>/dev/null 2>&1; then
if [ -z "$QUIET" ]; then
echo "pyenv-virtualenv: cannot activate multiple versions at once: ${versions[@]}" 1>&2
fi
echo "false"
exit 1
fi
fi fi
else done
version="$(pyenv-version-name)"
versions="${version%/envs/*}/envs/${versions}" shell="${PYENV_SHELL:-${SHELL##*/}}"
if ! pyenv-virtualenv-prefix "${versions}" 1>/dev/null 2>&1; then prefix="$(pyenv-prefix "${venv}")"
[ -n "$QUIET" ] || echo "pyenv-virtualenv: version \`${versions}' is not an environment of anaconda/miniconda" 1>&2
if [[ "${VIRTUAL_ENV}" == "${prefix}" ]]; then
if [ -z "${QUIET}" ]; then
echo "pyenv-virtualenv: version \`${venv}' is already activated" 1>&2
fi
echo "true"
exit 0
fi
if [[ "${PYENV_DEACTIVATE}" == "${prefix}" ]]; then
if [ -z "${FORCE}" ]; then
if [ -z "${QUIET}" ]; then
echo "pyenv-virtualenv: \`${venv}' is marked deactivated. use \`pyenv activate --force ${venv}' to activate forcibly." 1>&2
fi
echo "false" echo "false"
exit 1 exit 1
fi fi
fi fi
shell="${PYENV_SHELL:-${SHELL##*/}}"
prefix="$(pyenv-prefix "${versions}")"
# Display setup instruction, if pyenv-virtualenv has not been initialized. # Display setup instruction, if pyenv-virtualenv has not been initialized.
# if 'pyenv virtualenv-init -' is not found in "$profile" # if 'pyenv virtualenv-init -' is not found in "$profile"
if [ -z "$PYENV_VIRTUALENV_INIT" ]; then if [ -z "$PYENV_VIRTUALENV_INIT" ]; then
pyenv-virtualenv-init >&2 || true pyenv-virtualenv-init >&2 || true
fi fi
echo "pyenv-virtualenv: activate ${versions}" 1>&2 if [ -n "${DEACTIVATE}" ]; then
pyenv-sh-deactivate ${QUIET+--quiet} ${VERBOSE+--verbose}
if [ -z "$no_shell" ]; then
echo "pyenv shell \"${versions}\";"
# shell version set in pyenv-sh-activate should be unset
# https://github.com/yyuu/pyenv-virtualenv/issues/61
case "$shell" in
fish )
echo "setenv PYENV_ACTIVATE_SHELL 1;"
;;
* )
echo "export PYENV_ACTIVATE_SHELL=1;"
;;
esac
fi fi
echo "pyenv-virtualenv: activate ${venv}" 1>&2
if [ -z "$no_shell" ]; then
# shell version set in pyenv-sh-activate should be unset
# https://github.com/yyuu/pyenv-virtualenv/issues/61
OLDIFS="$IFS"
IFS=:
case "$shell" in
fish )
cat <<EOS
setenv PYENV_VERSION "${versions[*]}";
setenv PYENV_ACTIVATE_SHELL 1;
EOS
;;
* )
cat <<EOS
export PYENV_VERSION="${versions[*]}";
export PYENV_ACTIVATE_SHELL=1;
EOS
;;
esac
IFS="$OLDIFS"
fi
# virtualenv/pyvenv
case "${shell}" in case "${shell}" in
fish ) fish )
cat <<EOS cat <<EOS
set -e PYENV_DEACTIVATE; set -e PYENV_DEACTIVATE;
setenv PYENV_ACTIVATE "${prefix}"; setenv VIRTUAL_ENV "${prefix}";
EOS EOS
;; ;;
* ) * )
cat <<EOS cat <<EOS
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
export PYENV_ACTIVATE="${prefix}"; export VIRTUAL_ENV="${prefix}";
EOS EOS
;; ;;
esac esac
# virtualenv/pyvenv
case "${shell}" in
fish )
echo "setenv VIRTUAL_ENV \"${prefix}\";"
;;
* )
echo "export VIRTUAL_ENV=\"${prefix}\";"
;;
esac
# anaconda/miniconda # anaconda/miniconda
if [ -x "${prefix}/bin/conda" ]; then if [ -x "${prefix}/bin/conda" ]; then
if [[ "${versions}" != "${versions%/envs/*}" ]]; then if [[ "${venv}" != "${venv%/envs/*}" ]]; then
CONDA_DEFAULT_ENV="${versions##*/envs/}" CONDA_DEFAULT_ENV="${venv##*/envs/}"
else else
CONDA_DEFAULT_ENV="root" CONDA_DEFAULT_ENV="root"
fi fi

View File

@@ -9,15 +9,19 @@
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
unset FORCE
unset QUIET unset QUIET
unset VERBOSE unset VERBOSE
while [ $# -gt 0 ]; do while [ $# -gt 0 ]; do
case "$1" in case "$1" in
"--no-error" | "--quiet") "-f" | "--force" )
FORCE=1
;;
"-q" | "--quiet")
QUIET=1 QUIET=1
;; ;;
"--verbose" ) "-v" | "--verbose" )
VERBOSE=1 VERBOSE=1
;; ;;
* ) * )
@@ -27,58 +31,57 @@ while [ $# -gt 0 ]; do
shift 1 shift 1
done done
shell="$(basename "${PYENV_SHELL:-$SHELL}")" if [ -z "${VIRTUAL_ENV}" ]; then
prefix="${VIRTUAL_ENV:-${PYENV_ACTIVATE}}" if [ -z "$QUIET" ]; then
echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2
if [ -z "${prefix}" ]; then fi
[ -n "$QUIET" ] || echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2
echo "false" echo "false"
exit 1 exit 1
fi fi
shell="$(basename "${PYENV_SHELL:-$SHELL}")"
prefix="${VIRTUAL_ENV}"
if [[ "${prefix}" != "${prefix%/envs/*}" ]]; then if [[ "${prefix}" != "${prefix%/envs/*}" ]]; then
version="$(basename "${prefix%/envs/*}")/envs/${prefix##*/}" venv="$(basename "${prefix%/envs/*}")/envs/${prefix##*/}"
else else
version="${prefix##*/}" venv="${prefix##*/}"
fi fi
echo "pyenv-virtualenv: deactivate ${version}" 1>&2
echo "pyenv-virtualenv: deactivate ${venv}" 1>&2
if [ -n "${PYENV_ACTIVATE_SHELL}" ]; then if [ -n "${PYENV_ACTIVATE_SHELL}" ]; then
# shell version set in pyenv-sh-activate should be unset # shell version set in pyenv-sh-activate should be unset
# https://github.com/yyuu/pyenv-virtualenv/issues/61 # https://github.com/yyuu/pyenv-virtualenv/issues/61
echo "pyenv shell --unset;"
case "$shell" in case "$shell" in
fish ) fish )
echo "set -e PYENV_ACTIVATE_SHELL;" cat <<EOS
set -e PYENV_VERSION;
set -e PYENV_ACTIVATE_SHELL;
EOS
;; ;;
* ) * )
echo "unset PYENV_ACTIVATE_SHELL;" cat <<EOS
unset PYENV_VERSION;
unset PYENV_ACTIVATE_SHELL;
EOS
;; ;;
esac esac
fi fi
case "${shell}" in
fish )
cat <<EOS
setenv PYENV_DEACTIVATE "$prefix";
set -e PYENV_ACTIVATE;
EOS
;;
* )
cat <<EOS
export PYENV_DEACTIVATE="$prefix";
unset PYENV_ACTIVATE;
EOS
;;
esac
# virtualenv/pyvenv # virtualenv/pyvenv
case "${shell}" in case "${shell}" in
fish ) fish )
echo "set -e VIRTUAL_ENV;" cat <<EOS
setenv PYENV_DEACTIVATE "${VIRTUAL_ENV}";
set -e VIRTUAL_ENV;
EOS
;; ;;
* ) * )
echo "unset VIRTUAL_ENV;" cat <<EOS
export PYENV_DEACTIVATE="${VIRTUAL_ENV}";
unset VIRTUAL_ENV;
EOS
;; ;;
esac esac

View File

@@ -104,14 +104,9 @@ fish )
function _pyenv_virtualenv_hook --on-event fish_prompt; function _pyenv_virtualenv_hook --on-event fish_prompt;
set -l ret \$status set -l ret \$status
if [ -n "\$VIRTUAL_ENV" ] if [ -n "\$VIRTUAL_ENV" ]
if [ "\$VIRTUAL_ENV" != (pyenv prefix 2>/dev/null; or true) ] pyenv activate --deactivate --quiet; or pyenv deactivate --quiet; or true
pyenv deactivate --quiet; or true
pyenv activate --quiet; or true
end
else else
if [ "\$PYENV_DEACTIVATE" != (pyenv prefix 2>/dev/null; or true) ] pyenv activate --quiet; or true
pyenv activate --quiet; or true
end
end end
return \$ret return \$ret
end end
@@ -133,14 +128,9 @@ if [[ "$shell" != "fish" ]]; then
cat <<EOS cat <<EOS
local ret=\$? local ret=\$?
if [ -n "\$VIRTUAL_ENV" ]; then if [ -n "\$VIRTUAL_ENV" ]; then
if [ "\$VIRTUAL_ENV" != "\$(pyenv prefix 2>/dev/null || true)" ]; then eval "\$(pyenv sh-activate --deactivate --quiet || pyenv sh-deactivate --quiet || true)" || true
eval "\$(pyenv sh-deactivate --quiet || true)" || true
eval "\$(pyenv sh-activate --quiet || true)" || true
fi
else else
if [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then eval "\$(pyenv sh-activate --quiet || true)" || true
eval "\$(pyenv sh-activate --quiet || true)" || true
fi
fi fi
return \$ret return \$ret
}; };

View File

@@ -13,7 +13,6 @@ setup() {
stub pyenv-version-name "echo venv" stub pyenv-version-name "echo venv"
stub pyenv-virtualenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\"" stub pyenv-virtualenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\"" stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
PYENV_SHELL="bash" PYENV_VERSION="venv" run pyenv-sh-activate PYENV_SHELL="bash" PYENV_VERSION="venv" run pyenv-sh-activate
@@ -25,7 +24,6 @@ setup() {
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: activate venv pyenv-virtualenv: activate venv
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv";
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"; export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv";
EOS EOS
} }
@@ -36,7 +34,6 @@ EOS
stub pyenv-version-name "echo venv" stub pyenv-version-name "echo venv"
stub pyenv-virtualenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\"" stub pyenv-virtualenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\"" stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
PYENV_SHELL="bash" PYENV_VERSION="venv" run pyenv-sh-activate --verbose PYENV_SHELL="bash" PYENV_VERSION="venv" run pyenv-sh-activate --verbose
@@ -48,7 +45,6 @@ EOS
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: activate venv pyenv-virtualenv: activate venv
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv";
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"; export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv";
EOS EOS
} }
@@ -59,7 +55,6 @@ EOS
stub pyenv-version-name "echo venv" stub pyenv-version-name "echo venv"
stub pyenv-virtualenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\"" stub pyenv-virtualenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\"" stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
PYENV_SHELL="bash" PYENV_VERSION="venv" run pyenv-sh-activate PYENV_SHELL="bash" PYENV_VERSION="venv" run pyenv-sh-activate
@@ -75,10 +70,9 @@ EOS
eval "\$(pyenv virtualenv-init -)" eval "\$(pyenv virtualenv-init -)"
pyenv-virtualenv: activate venv pyenv-virtualenv: activate venv
pyenv shell "venv"; export PYENV_VERSION="venv";
export PYENV_ACTIVATE_SHELL=1; export PYENV_ACTIVATE_SHELL=1;
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv";
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"; export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv";
EOS EOS
} }
@@ -89,7 +83,6 @@ EOS
stub pyenv-version-name "echo venv" stub pyenv-version-name "echo venv"
stub pyenv-virtualenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\"" stub pyenv-virtualenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\"" stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
PYENV_SHELL="fish" PYENV_VERSION="venv" run pyenv-sh-activate PYENV_SHELL="fish" PYENV_VERSION="venv" run pyenv-sh-activate
@@ -101,7 +94,6 @@ EOS
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: activate venv pyenv-virtualenv: activate venv
set -e PYENV_DEACTIVATE; set -e PYENV_DEACTIVATE;
setenv PYENV_ACTIVATE "${PYENV_ROOT}/versions/venv";
setenv VIRTUAL_ENV "${PYENV_ROOT}/versions/venv"; setenv VIRTUAL_ENV "${PYENV_ROOT}/versions/venv";
EOS EOS
} }
@@ -112,7 +104,6 @@ EOS
stub pyenv-version-name "echo venv" stub pyenv-version-name "echo venv"
stub pyenv-virtualenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\"" stub pyenv-virtualenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\"" stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
stub pyenv-prefix "venv : echo \"${PYENV_ROOT}/versions/venv\""
PYENV_SHELL="fish" PYENV_VERSION="venv" run pyenv-sh-activate PYENV_SHELL="fish" PYENV_VERSION="venv" run pyenv-sh-activate
@@ -128,10 +119,9 @@ EOS
status --is-interactive; and . (pyenv virtualenv-init -|psub) status --is-interactive; and . (pyenv virtualenv-init -|psub)
pyenv-virtualenv: activate venv pyenv-virtualenv: activate venv
pyenv shell "venv"; setenv PYENV_VERSION "venv";
setenv PYENV_ACTIVATE_SHELL 1; setenv PYENV_ACTIVATE_SHELL 1;
set -e PYENV_DEACTIVATE; set -e PYENV_DEACTIVATE;
setenv PYENV_ACTIVATE "${PYENV_ROOT}/versions/venv";
setenv VIRTUAL_ENV "${PYENV_ROOT}/versions/venv"; setenv VIRTUAL_ENV "${PYENV_ROOT}/versions/venv";
EOS EOS
} }
@@ -141,7 +131,6 @@ EOS
stub pyenv-virtualenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\"" stub pyenv-virtualenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\"" stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
PYENV_SHELL="bash" PYENV_VERSION="venv" run pyenv-sh-activate "venv27" PYENV_SHELL="bash" PYENV_VERSION="venv" run pyenv-sh-activate "venv27"
@@ -151,10 +140,9 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: activate venv27 pyenv-virtualenv: activate venv27
pyenv shell "venv27"; export PYENV_VERSION="venv27";
export PYENV_ACTIVATE_SHELL=1; export PYENV_ACTIVATE_SHELL=1;
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv27";
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv27"; export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv27";
EOS EOS
} }
@@ -164,7 +152,6 @@ EOS
stub pyenv-virtualenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\"" stub pyenv-virtualenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\"" stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
PYENV_SHELL="bash" PYENV_VERSION="venv" run pyenv-sh-activate "venv27" PYENV_SHELL="bash" PYENV_VERSION="venv" run pyenv-sh-activate "venv27"
@@ -179,10 +166,9 @@ EOS
eval "\$(pyenv virtualenv-init -)" eval "\$(pyenv virtualenv-init -)"
pyenv-virtualenv: activate venv27 pyenv-virtualenv: activate venv27
pyenv shell "venv27"; export PYENV_VERSION="venv27";
export PYENV_ACTIVATE_SHELL=1; export PYENV_ACTIVATE_SHELL=1;
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv27";
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv27"; export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv27";
EOS EOS
} }
@@ -192,7 +178,6 @@ EOS
stub pyenv-virtualenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\"" stub pyenv-virtualenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\"" stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
PYENV_SHELL="fish" PYENV_VERSION="venv" run pyenv-sh-activate "venv27" PYENV_SHELL="fish" PYENV_VERSION="venv" run pyenv-sh-activate "venv27"
@@ -202,10 +187,9 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: activate venv27 pyenv-virtualenv: activate venv27
pyenv shell "venv27"; setenv PYENV_VERSION "venv27";
setenv PYENV_ACTIVATE_SHELL 1; setenv PYENV_ACTIVATE_SHELL 1;
set -e PYENV_DEACTIVATE; set -e PYENV_DEACTIVATE;
setenv PYENV_ACTIVATE "${PYENV_ROOT}/versions/venv27";
setenv VIRTUAL_ENV "${PYENV_ROOT}/versions/venv27"; setenv VIRTUAL_ENV "${PYENV_ROOT}/versions/venv27";
EOS EOS
} }
@@ -215,7 +199,6 @@ EOS
stub pyenv-virtualenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\"" stub pyenv-virtualenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\"" stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
PYENV_SHELL="fish" PYENV_VERSION="venv" run pyenv-sh-activate "venv27" PYENV_SHELL="fish" PYENV_VERSION="venv" run pyenv-sh-activate "venv27"
@@ -230,10 +213,9 @@ EOS
status --is-interactive; and . (pyenv virtualenv-init -|psub) status --is-interactive; and . (pyenv virtualenv-init -|psub)
pyenv-virtualenv: activate venv27 pyenv-virtualenv: activate venv27
pyenv shell "venv27"; setenv PYENV_VERSION "venv27";
setenv PYENV_ACTIVATE_SHELL 1; setenv PYENV_ACTIVATE_SHELL 1;
set -e PYENV_DEACTIVATE; set -e PYENV_DEACTIVATE;
setenv PYENV_ACTIVATE "${PYENV_ROOT}/versions/venv27";
setenv VIRTUAL_ENV "${PYENV_ROOT}/versions/venv27"; setenv VIRTUAL_ENV "${PYENV_ROOT}/versions/venv27";
EOS EOS
} }
@@ -249,12 +231,10 @@ EOS
@test "should fail if the version is not a virtualenv" { @test "should fail if the version is not a virtualenv" {
stub pyenv-virtualenv-prefix "3.3.3 : false" stub pyenv-virtualenv-prefix "3.3.3 : false"
stub pyenv-prefix "3.3.3 : echo \"${PYENV_ROOT}/versions/3.3.3\""
run pyenv-sh-activate "3.3.3" run pyenv-sh-activate "3.3.3"
unstub pyenv-virtualenv-prefix unstub pyenv-virtualenv-prefix
unstub pyenv-prefix
assert_failure assert_failure
assert_output <<EOS assert_output <<EOS
@@ -265,12 +245,10 @@ EOS
@test "should fail if the version is not a virtualenv (quiet)" { @test "should fail if the version is not a virtualenv (quiet)" {
stub pyenv-virtualenv-prefix "3.3.3 : false" stub pyenv-virtualenv-prefix "3.3.3 : false"
stub pyenv-prefix "3.3.3 : echo \"${PYENV_ROOT}/versions/3.3.3\""
run pyenv-sh-activate --quiet "3.3.3" run pyenv-sh-activate --quiet "3.3.3"
unstub pyenv-virtualenv-prefix unstub pyenv-virtualenv-prefix
unstub pyenv-prefix
assert_failure assert_failure
assert_output <<EOS assert_output <<EOS
@@ -279,8 +257,13 @@ EOS
} }
@test "should fail if there are multiple versions" { @test "should fail if there are multiple versions" {
stub pyenv-virtualenv-prefix "venv : true"
stub pyenv-virtualenv-prefix "venv27 : true"
run pyenv-sh-activate "venv" "venv27" run pyenv-sh-activate "venv" "venv27"
unstub pyenv-virtualenv-prefix
assert_failure assert_failure
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: cannot activate multiple versions at once: venv venv27 pyenv-virtualenv: cannot activate multiple versions at once: venv venv27
@@ -288,15 +271,58 @@ false
EOS EOS
} }
@test "should fail if there are multiple versions (quiet)" { @test "should fail if there are multiple virtualenvs (quiet)" {
stub pyenv-virtualenv-prefix "venv : true"
stub pyenv-virtualenv-prefix "venv27 : true"
run pyenv-sh-activate --quiet "venv" "venv27" run pyenv-sh-activate --quiet "venv" "venv27"
unstub pyenv-virtualenv-prefix
assert_failure assert_failure
assert_output <<EOS assert_output <<EOS
false false
EOS EOS
} }
@test "should fail if the first version is not a virtualenv" {
export PYENV_VIRTUALENV_INIT=1
stub pyenv-virtualenv-prefix "2.7.10 : false"
run pyenv-sh-activate "2.7.10" "venv27"
unstub pyenv-virtualenv-prefix
assert_failure
assert_output <<EOS
pyenv-virtualenv: version \`2.7.10' is not a virtualenv
false
EOS
}
@test "activate if the first virtualenv is a virtualenv" {
export PYENV_VIRTUALENV_INIT=1
stub pyenv-virtualenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
stub pyenv-virtualenv-prefix "2.7.10 : false"
stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
run pyenv-sh-activate "venv27" "2.7.10"
unstub pyenv-virtualenv-prefix
unstub pyenv-prefix
assert_success
assert_output <<EOS
pyenv-virtualenv: activate venv27
export PYENV_VERSION="venv27:2.7.10";
export PYENV_ACTIVATE_SHELL=1;
unset PYENV_DEACTIVATE;
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv27";
EOS
}
@test "should fail if activate is invoked as a command" { @test "should fail if activate is invoked as a command" {
run pyenv-activate run pyenv-activate

View File

@@ -14,7 +14,6 @@ setup() {
stub pyenv-version-name "echo 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-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\""
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 PYENV_SHELL="bash" PYENV_VERSION="anaconda-2.3.0" run pyenv-sh-activate
@@ -26,7 +25,6 @@ setup() {
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: activate anaconda-2.3.0 pyenv-virtualenv: activate anaconda-2.3.0
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0";
export VIRTUAL_ENV="${PYENV_ROOT}/versions/anaconda-2.3.0"; export VIRTUAL_ENV="${PYENV_ROOT}/versions/anaconda-2.3.0";
export CONDA_DEFAULT_ENV="root"; export CONDA_DEFAULT_ENV="root";
EOS EOS
@@ -39,7 +37,6 @@ EOS
stub pyenv-version-name "echo 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-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\""
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 PYENV_SHELL="fish" PYENV_VERSION="anaconda-2.3.0" run pyenv-sh-activate
@@ -51,7 +48,6 @@ EOS
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: activate anaconda-2.3.0 pyenv-virtualenv: activate anaconda-2.3.0
set -e PYENV_DEACTIVATE; set -e PYENV_DEACTIVATE;
setenv PYENV_ACTIVATE "${TMP}/pyenv/versions/anaconda-2.3.0";
setenv VIRTUAL_ENV "${TMP}/pyenv/versions/anaconda-2.3.0"; setenv VIRTUAL_ENV "${TMP}/pyenv/versions/anaconda-2.3.0";
setenv CONDA_DEFAULT_ENV "root"; setenv CONDA_DEFAULT_ENV "root";
EOS EOS
@@ -64,7 +60,6 @@ EOS
create_conda "miniconda-3.9.1" create_conda "miniconda-3.9.1"
stub pyenv-virtualenv-prefix "miniconda-3.9.1 : echo \"${PYENV_ROOT}/versions/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\""
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" PYENV_SHELL="bash" PYENV_VERSION="anaconda-2.3.0" run pyenv-sh-activate "miniconda-3.9.1"
@@ -74,10 +69,9 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: activate miniconda-3.9.1 pyenv-virtualenv: activate miniconda-3.9.1
pyenv shell "miniconda-3.9.1"; export PYENV_VERSION="miniconda-3.9.1";
export PYENV_ACTIVATE_SHELL=1; export PYENV_ACTIVATE_SHELL=1;
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/miniconda-3.9.1";
export VIRTUAL_ENV="${PYENV_ROOT}/versions/miniconda-3.9.1"; export VIRTUAL_ENV="${PYENV_ROOT}/versions/miniconda-3.9.1";
export CONDA_DEFAULT_ENV="root"; export CONDA_DEFAULT_ENV="root";
EOS EOS
@@ -90,7 +84,6 @@ EOS
stub pyenv-version-name "echo anaconda-2.3.0/envs/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-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\""
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 PYENV_SHELL="bash" PYENV_VERSION="anaconda-2.3.0/envs/foo" run pyenv-sh-activate
@@ -102,7 +95,6 @@ EOS
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: activate anaconda-2.3.0/envs/foo pyenv-virtualenv: activate anaconda-2.3.0/envs/foo
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo";
export VIRTUAL_ENV="${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo"; export VIRTUAL_ENV="${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo";
export CONDA_DEFAULT_ENV="foo"; export CONDA_DEFAULT_ENV="foo";
EOS EOS
@@ -115,7 +107,6 @@ EOS
create_conda "miniconda-3.9.1" "bar" 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-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\""
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" PYENV_SHELL="bash" PYENV_VERSION="anaconda-2.3.0/envs/foo" run pyenv-sh-activate "miniconda-3.9.1/envs/bar"
@@ -125,37 +116,9 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: activate miniconda-3.9.1/envs/bar pyenv-virtualenv: activate miniconda-3.9.1/envs/bar
pyenv shell "miniconda-3.9.1/envs/bar"; export PYENV_VERSION="miniconda-3.9.1/envs/bar";
export PYENV_ACTIVATE_SHELL=1; export PYENV_ACTIVATE_SHELL=1;
unset PYENV_DEACTIVATE; unset PYENV_DEACTIVATE;
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar";
export VIRTUAL_ENV="${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar";
export CONDA_DEFAULT_ENV="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-virtualenv: activate miniconda-3.9.1/envs/bar
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";
export VIRTUAL_ENV="${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar"; export VIRTUAL_ENV="${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar";
export CONDA_DEFAULT_ENV="bar"; export CONDA_DEFAULT_ENV="bar";
EOS EOS

View File

@@ -8,7 +8,6 @@ setup() {
@test "deactivate conda root" { @test "deactivate conda root" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/anaconda-2.3.0" export VIRTUAL_ENV="${PYENV_ROOT}/versions/anaconda-2.3.0"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0"
export PYENV_ACTIVATE_SHELL= export PYENV_ACTIVATE_SHELL=
export CONDA_DEFAULT_ENV="root" export CONDA_DEFAULT_ENV="root"
@@ -19,8 +18,7 @@ setup() {
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate anaconda-2.3.0 pyenv-virtualenv: deactivate anaconda-2.3.0
export PYENV_DEACTIVATE="$PYENV_ACTIVATE"; export PYENV_DEACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0";
unset PYENV_ACTIVATE;
unset VIRTUAL_ENV; unset VIRTUAL_ENV;
unset CONDA_DEFAULT_ENV; unset CONDA_DEFAULT_ENV;
EOS EOS
@@ -28,7 +26,6 @@ EOS
@test "deactivate conda root (fish)" { @test "deactivate conda root (fish)" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/anaconda-2.3.0" export VIRTUAL_ENV="${PYENV_ROOT}/versions/anaconda-2.3.0"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0"
export PYENV_ACTIVATE_SHELL= export PYENV_ACTIVATE_SHELL=
export CONDA_DEFAULT_ENV="root" export CONDA_DEFAULT_ENV="root"
@@ -40,8 +37,7 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate anaconda-2.3.0 pyenv-virtualenv: deactivate anaconda-2.3.0
setenv PYENV_DEACTIVATE "${TMP}/pyenv/versions/anaconda-2.3.0"; setenv PYENV_DEACTIVATE "${PYENV_ROOT}/versions/anaconda-2.3.0";
set -e PYENV_ACTIVATE;
set -e VIRTUAL_ENV; set -e VIRTUAL_ENV;
set -e CONDA_DEFAULT_ENV; set -e CONDA_DEFAULT_ENV;
EOS EOS
@@ -49,7 +45,6 @@ EOS
@test "deactivate conda env" { @test "deactivate conda env" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo" export VIRTUAL_ENV="${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo"
export PYENV_ACTIVATE_SHELL= export PYENV_ACTIVATE_SHELL=
export CONDA_DEFAULT_ENV="foo" export CONDA_DEFAULT_ENV="foo"
@@ -61,8 +56,7 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate anaconda-2.3.0/envs/foo pyenv-virtualenv: deactivate anaconda-2.3.0/envs/foo
export PYENV_DEACTIVATE="$PYENV_ACTIVATE"; export PYENV_DEACTIVATE="${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo";
unset PYENV_ACTIVATE;
unset VIRTUAL_ENV; unset VIRTUAL_ENV;
unset CONDA_DEFAULT_ENV; unset CONDA_DEFAULT_ENV;
EOS EOS

View File

@@ -8,7 +8,6 @@ setup() {
@test "deactivate virtualenv" { @test "deactivate virtualenv" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE_SHELL= export PYENV_ACTIVATE_SHELL=
PYENV_SHELL="bash" run pyenv-sh-deactivate PYENV_SHELL="bash" run pyenv-sh-deactivate
@@ -16,15 +15,13 @@ setup() {
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
export PYENV_DEACTIVATE="$PYENV_ACTIVATE"; export PYENV_DEACTIVATE="${PYENV_ROOT}/versions/venv";
unset PYENV_ACTIVATE;
unset VIRTUAL_ENV; unset VIRTUAL_ENV;
EOS EOS
} }
@test "deactivate virtualenv (verbose)" { @test "deactivate virtualenv (verbose)" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE_SHELL= export PYENV_ACTIVATE_SHELL=
PYENV_SHELL="bash" run pyenv-sh-deactivate --verbose PYENV_SHELL="bash" run pyenv-sh-deactivate --verbose
@@ -32,15 +29,13 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
export PYENV_DEACTIVATE="$PYENV_ACTIVATE"; export PYENV_DEACTIVATE="${PYENV_ROOT}/versions/venv";
unset PYENV_ACTIVATE;
unset VIRTUAL_ENV; unset VIRTUAL_ENV;
EOS EOS
} }
@test "deactivate virtualenv (quiet)" { @test "deactivate virtualenv (quiet)" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE_SHELL= export PYENV_ACTIVATE_SHELL=
PYENV_SHELL="bash" run pyenv-sh-deactivate --quiet PYENV_SHELL="bash" run pyenv-sh-deactivate --quiet
@@ -48,15 +43,13 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
export PYENV_DEACTIVATE="$PYENV_ACTIVATE"; export PYENV_DEACTIVATE="${PYENV_ROOT}/versions/venv";
unset PYENV_ACTIVATE;
unset VIRTUAL_ENV; unset VIRTUAL_ENV;
EOS EOS
} }
@test "deactivate virtualenv (with shell activation)" { @test "deactivate virtualenv (with shell activation)" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE_SHELL=1 export PYENV_ACTIVATE_SHELL=1
PYENV_SHELL="bash" run pyenv-sh-deactivate PYENV_SHELL="bash" run pyenv-sh-deactivate
@@ -64,17 +57,15 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
pyenv shell --unset; unset PYENV_VERSION;
unset PYENV_ACTIVATE_SHELL; unset PYENV_ACTIVATE_SHELL;
export PYENV_DEACTIVATE="$PYENV_ACTIVATE"; export PYENV_DEACTIVATE="${PYENV_ROOT}/versions/venv";
unset PYENV_ACTIVATE;
unset VIRTUAL_ENV; unset VIRTUAL_ENV;
EOS EOS
} }
@test "deactivate virtualenv (with shell activation) (quiet)" { @test "deactivate virtualenv (with shell activation) (quiet)" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE_SHELL=1 export PYENV_ACTIVATE_SHELL=1
PYENV_SHELL="bash" run pyenv-sh-deactivate --quiet PYENV_SHELL="bash" run pyenv-sh-deactivate --quiet
@@ -82,17 +73,15 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
pyenv shell --unset; unset PYENV_VERSION;
unset PYENV_ACTIVATE_SHELL; unset PYENV_ACTIVATE_SHELL;
export PYENV_DEACTIVATE="$PYENV_ACTIVATE"; export PYENV_DEACTIVATE="${PYENV_ROOT}/versions/venv";
unset PYENV_ACTIVATE;
unset VIRTUAL_ENV; unset VIRTUAL_ENV;
EOS EOS
} }
@test "deactivate virtualenv which has been activated manually" { @test "deactivate virtualenv which has been activated manually" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE=
export PYENV_ACTIVATE_SHELL= export PYENV_ACTIVATE_SHELL=
PYENV_SHELL="bash" run pyenv-sh-deactivate PYENV_SHELL="bash" run pyenv-sh-deactivate
@@ -100,15 +89,13 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
export PYENV_DEACTIVATE="$VIRTUAL_ENV"; export PYENV_DEACTIVATE="${PYENV_ROOT}/versions/venv";
unset PYENV_ACTIVATE;
unset VIRTUAL_ENV; unset VIRTUAL_ENV;
EOS EOS
} }
@test "deactivate virtualenv (fish)" { @test "deactivate virtualenv (fish)" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE_SHELL= export PYENV_ACTIVATE_SHELL=
PYENV_SHELL="fish" run pyenv-sh-deactivate PYENV_SHELL="fish" run pyenv-sh-deactivate
@@ -116,15 +103,13 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
setenv PYENV_DEACTIVATE "$PYENV_ACTIVATE"; setenv PYENV_DEACTIVATE "${PYENV_ROOT}/versions/venv";
set -e PYENV_ACTIVATE;
set -e VIRTUAL_ENV; set -e VIRTUAL_ENV;
EOS EOS
} }
@test "deactivate virtualenv (fish) (quiet)" { @test "deactivate virtualenv (fish) (quiet)" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE_SHELL= export PYENV_ACTIVATE_SHELL=
PYENV_SHELL="fish" run pyenv-sh-deactivate --quiet PYENV_SHELL="fish" run pyenv-sh-deactivate --quiet
@@ -132,15 +117,13 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
setenv PYENV_DEACTIVATE "$PYENV_ACTIVATE"; setenv PYENV_DEACTIVATE "${PYENV_ROOT}/versions/venv";
set -e PYENV_ACTIVATE;
set -e VIRTUAL_ENV; set -e VIRTUAL_ENV;
EOS EOS
} }
@test "deactivate virtualenv (fish) (with shell activation)" { @test "deactivate virtualenv (fish) (with shell activation)" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE_SHELL=1 export PYENV_ACTIVATE_SHELL=1
PYENV_SHELL="fish" run pyenv-sh-deactivate PYENV_SHELL="fish" run pyenv-sh-deactivate
@@ -148,17 +131,15 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
pyenv shell --unset; set -e PYENV_VERSION;
set -e PYENV_ACTIVATE_SHELL; set -e PYENV_ACTIVATE_SHELL;
setenv PYENV_DEACTIVATE "$PYENV_ACTIVATE"; setenv PYENV_DEACTIVATE "${PYENV_ROOT}/versions/venv";
set -e PYENV_ACTIVATE;
set -e VIRTUAL_ENV; set -e VIRTUAL_ENV;
EOS EOS
} }
@test "deactivate virtualenv (fish) (with shell activation) (quiet)" { @test "deactivate virtualenv (fish) (with shell activation) (quiet)" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE_SHELL=1 export PYENV_ACTIVATE_SHELL=1
PYENV_SHELL="fish" run pyenv-sh-deactivate --quiet PYENV_SHELL="fish" run pyenv-sh-deactivate --quiet
@@ -166,17 +147,15 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
pyenv shell --unset; set -e PYENV_VERSION;
set -e PYENV_ACTIVATE_SHELL; set -e PYENV_ACTIVATE_SHELL;
setenv PYENV_DEACTIVATE "$PYENV_ACTIVATE"; setenv PYENV_DEACTIVATE "${PYENV_ROOT}/versions/venv";
set -e PYENV_ACTIVATE;
set -e VIRTUAL_ENV; set -e VIRTUAL_ENV;
EOS EOS
} }
@test "deactivate virtualenv which has been activated manually (fish)" { @test "deactivate virtualenv which has been activated manually (fish)" {
export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv" export VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
export PYENV_ACTIVATE=
export PYENV_ACTIVATE_SHELL= export PYENV_ACTIVATE_SHELL=
PYENV_SHELL="fish" run pyenv-sh-deactivate PYENV_SHELL="fish" run pyenv-sh-deactivate
@@ -184,8 +163,7 @@ EOS
assert_success assert_success
assert_output <<EOS assert_output <<EOS
pyenv-virtualenv: deactivate venv pyenv-virtualenv: deactivate venv
setenv PYENV_DEACTIVATE "$VIRTUAL_ENV"; setenv PYENV_DEACTIVATE "${PYENV_ROOT}/versions/venv";
set -e PYENV_ACTIVATE;
set -e VIRTUAL_ENV; set -e VIRTUAL_ENV;
EOS EOS
} }

View File

@@ -55,14 +55,9 @@ export PYENV_VIRTUALENV_INIT=1;
_pyenv_virtualenv_hook() { _pyenv_virtualenv_hook() {
local ret=\$? local ret=\$?
if [ -n "\$VIRTUAL_ENV" ]; then if [ -n "\$VIRTUAL_ENV" ]; then
if [ "\$VIRTUAL_ENV" != "\$(pyenv prefix 2>/dev/null || true)" ]; then eval "\$(pyenv sh-activate --deactivate --quiet || pyenv sh-deactivate --quiet || true)" || true
eval "\$(pyenv sh-deactivate --quiet || true)" || true
eval "\$(pyenv sh-activate --quiet || true)" || true
fi
else else
if [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then eval "\$(pyenv sh-activate --quiet || true)" || true
eval "\$(pyenv sh-activate --quiet || true)" || true
fi
fi fi
return \$ret return \$ret
}; };
@@ -82,14 +77,9 @@ setenv PYENV_VIRTUALENV_INIT 1;
function _pyenv_virtualenv_hook --on-event fish_prompt; function _pyenv_virtualenv_hook --on-event fish_prompt;
set -l ret \$status set -l ret \$status
if [ -n "\$VIRTUAL_ENV" ] if [ -n "\$VIRTUAL_ENV" ]
if [ "\$VIRTUAL_ENV" != (pyenv prefix 2>/dev/null; or true) ] pyenv activate --deactivate --quiet; or pyenv deactivate --quiet; or true
pyenv deactivate --quiet; or true
pyenv activate --quiet; or true
end
else else
if [ "\$PYENV_DEACTIVATE" != (pyenv prefix 2>/dev/null; or true) ] pyenv activate --quiet; or true
pyenv activate --quiet; or true
end
end end
return \$ret return \$ret
end end
@@ -106,14 +96,9 @@ export PYENV_VIRTUALENV_INIT=1;
_pyenv_virtualenv_hook() { _pyenv_virtualenv_hook() {
local ret=\$? local ret=\$?
if [ -n "\$VIRTUAL_ENV" ]; then if [ -n "\$VIRTUAL_ENV" ]; then
if [ "\$VIRTUAL_ENV" != "\$(pyenv prefix 2>/dev/null || true)" ]; then eval "\$(pyenv sh-activate --deactivate --quiet || pyenv sh-deactivate --quiet || true)" || true
eval "\$(pyenv sh-deactivate --quiet || true)" || true
eval "\$(pyenv sh-activate --quiet || true)" || true
fi
else else
if [ "\$PYENV_DEACTIVATE" != "\$(pyenv prefix 2>/dev/null || true)" ]; then eval "\$(pyenv sh-activate --quiet || true)" || true
eval "\$(pyenv sh-activate --quiet || true)" || true
fi
fi fi
return \$ret return \$ret
}; };