diff --git a/libexec/pyenv-which b/libexec/pyenv-which index ccef0083..3511aa33 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -45,7 +45,6 @@ for version in "${versions[@]}"; do PYENV_COMMAND_PATH="${PYENV_ROOT}/versions/${version}/bin/${PYENV_COMMAND}" fi if [ -x "$PYENV_COMMAND_PATH" ]; then - PYENV_VERSION="$version" break fi done @@ -59,10 +58,18 @@ done if [ -x "$PYENV_COMMAND_PATH" ]; then echo "$PYENV_COMMAND_PATH" -elif ! [ -d "${PYENV_ROOT}/versions/${PYENV_VERSION}" ]; then - echo "pyenv: version \`$PYENV_VERSION' is not installed" >&2 - exit 1 else + for version in "${versions[@]}"; do + any_not_installed=0 + if ! [ -d "${PYENV_ROOT}/versions/${version}" ]; then + echo "pyenv: version \`$version' is not installed" >&2 + any_not_installed=1 + fi + done + if [ "$any_not_installed" = 1 ]; then + exit 1 + fi + echo "pyenv: $PYENV_COMMAND: command not found" >&2 versions="$(pyenv-whence "$PYENV_COMMAND" || true)" diff --git a/test/which.bats b/test/which.bats index d3b69f2b..7812df1e 100644 --- a/test/which.bats +++ b/test/which.bats @@ -65,6 +65,15 @@ create_executable() { assert_failure "pyenv: version \`3.3' is not installed" } +@test "versions not installed" { + create_executable "3.4" "py.test" + PYENV_VERSION=2.7:3.3 run pyenv-which py.test + assert_failure <