diff --git a/test/prefix.bats b/test/prefix.bats index 5da1a5f8..0cea7aa1 100644 --- a/test/prefix.bats +++ b/test/prefix.bats @@ -46,6 +46,6 @@ OUT } @test "prefix for invalid system" { - PATH="$(path_without python)" run pyenv-prefix system + PATH="$(path_without python python2 python3)" run pyenv-prefix system assert_failure "pyenv: system version not found in PATH" } diff --git a/test/test_helper.bash b/test/test_helper.bash index e11cd8f1..b11d65bd 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -111,24 +111,26 @@ assert() { # Output a modified PATH that ensures that the given executable is not present, # but in which system utils necessary for pyenv operation are still available. path_without() { - local exe="$1" local path=":${PATH}:" - local found alt util - for found in $(which -a "$exe"); do - found="${found%/*}" - if [ "$found" != "${PYENV_ROOT}/shims" ]; then - alt="${PYENV_TEST_DIR}/$(echo "${found#/}" | tr '/' '-')" - mkdir -p "$alt" - for util in bash head cut readlink greadlink; do - if [ -x "${found}/$util" ]; then - ln -s "${found}/$util" "${alt}/$util" - fi - done - path="${path/:${found}:/:${alt}:}" - fi + for exe; do + local found alt util + for found in $(PATH="$path" which -a "$exe"); do + found="${found%/*}" + if [ "$found" != "${PYENV_ROOT}/shims" ]; then + alt="${PYENV_TEST_DIR}/$(echo "${found#/}" | tr '/' '-')" + mkdir -p "$alt" + for util in bash head cut readlink greadlink which; do + if [ -x "${found}/$util" ]; then + ln -s "${found}/$util" "${alt}/$util" + fi + done + path="${path/:${found}:/:${alt}:}" + fi + done done path="${path#:}" - echo "${path%:}" + path="${path%:}" + echo "$path" } create_hook() { diff --git a/test/versions.bats b/test/versions.bats index 8ded5c4a..932883c7 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -25,7 +25,7 @@ stub_system_python() { } @test "not even system python available" { - PATH="$(path_without python)" run pyenv-versions + PATH="$(path_without python python2 python3)" run pyenv-versions assert_failure assert_output "Warning: no Python detected on the system" }