mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-21 20:47:00 -05:00
Bats: path_without: support multiple args
This commit is contained in:
parent
6185bb55e6
commit
876be1bb04
3 changed files with 19 additions and 17 deletions
|
@ -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"
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue