#!/usr/bin/env bats load test_helper @test "outputs path to executable" { create_alt_executable_in_version "2.7" "python" create_alt_executable_in_version "3.4" "py.test" PYENV_VERSION=2.7 run pyenv-which python assert_success "${PYENV_ROOT}/versions/2.7/bin/python" PYENV_VERSION=3.4 run pyenv-which py.test assert_success "${PYENV_ROOT}/versions/3.4/bin/py.test" PYENV_VERSION=3.4:2.7 run pyenv-which py.test assert_success "${PYENV_ROOT}/versions/3.4/bin/py.test" } @test "searches PATH for system version" { create_path_executable "kill-all-humans" create_executable "${PYENV_ROOT}/shims" "kill-all-humans" PYENV_VERSION=system run pyenv-which kill-all-humans assert_success "${PYENV_TEST_DIR}/bin/kill-all-humans" } @test "searches PATH for system version (shims prepended)" { create_path_executable "kill-all-humans" create_executable "${PYENV_ROOT}/shims" "kill-all-humans" PATH="${PYENV_ROOT}/shims:$PATH" PYENV_VERSION=system run pyenv-which kill-all-humans assert_success "${PYENV_TEST_DIR}/bin/kill-all-humans" } @test "searches PATH for system version (shims appended)" { create_path_executable "kill-all-humans" create_executable "${PYENV_ROOT}/shims" "kill-all-humans" PATH="$PATH:${PYENV_ROOT}/shims" PYENV_VERSION=system run pyenv-which kill-all-humans assert_success "${PYENV_TEST_DIR}/bin/kill-all-humans" } @test "searches PATH for system version (shims spread)" { create_path_executable "kill-all-humans" create_executable "${PYENV_ROOT}/shims" "kill-all-humans" PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/shims:/tmp/non-existent:$PATH:${PYENV_ROOT}/shims" \ PYENV_VERSION=system run pyenv-which kill-all-humans assert_success "${PYENV_TEST_DIR}/bin/kill-all-humans" } @test "doesn't include current directory in PATH search" { bats_require_minimum_version 1.5.0 create_executable "$PYENV_TEST_DIR" kill-all-humans cd "$PYENV_TEST_DIR" PATH="$(path_without "kill-all-humans")" PYENV_VERSION=system run -127 pyenv-which kill-all-humans assert_failure "pyenv: kill-all-humans: command not found" } @test "version not installed" { bats_require_minimum_version 1.5.0 create_alt_executable_in_version "3.4" "py.test" PYENV_VERSION=3.3 run -127 pyenv-which py.test assert_failure < "${PYENV_ROOT}/version" <<<"3.4" create_alt_executable_in_version "3.4" "python" mkdir -p "$PYENV_TEST_DIR" cd "$PYENV_TEST_DIR" PYENV_VERSION= run pyenv-which python assert_success "${PYENV_ROOT}/versions/3.4/bin/python" } @test "tolerates nonexistent versions from pyenv-version-name" { mkdir -p "$PYENV_ROOT" cat > "${PYENV_ROOT}/version" <