mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-10 04:23:47 -05:00
upgrade pip detetcion in pip-rehash to accept multiple variations: (#3330)
- pip - pipX - pipX.Y - * -m pip Co-authored-by: Christian Fredrik Johnsen <christian@johnsen.no>
This commit is contained in:
@@ -4,6 +4,9 @@ PYENV_REHASH_COMMAND="${PYENV_COMMAND##*/}"
|
|||||||
# Remove any version information, from e.g. "pip2" or "pip3.10".
|
# Remove any version information, from e.g. "pip2" or "pip3.10".
|
||||||
if [[ $PYENV_REHASH_COMMAND =~ ^(pip|easy_install)[23](\.[0-9]+)?$ ]]; then
|
if [[ $PYENV_REHASH_COMMAND =~ ^(pip|easy_install)[23](\.[0-9]+)?$ ]]; then
|
||||||
PYENV_REHASH_COMMAND="${BASH_REMATCH[1]}"
|
PYENV_REHASH_COMMAND="${BASH_REMATCH[1]}"
|
||||||
|
# Check for ` -m pip ` in arguments
|
||||||
|
elif [[ "$*" =~ [[:space:]]-m[[:space:]]pip[[:space:]] ]]; then
|
||||||
|
PYENV_REHASH_COMMAND="pip"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -x "${PYENV_PIP_REHASH_ROOT}/${PYENV_REHASH_COMMAND}" ]; then
|
if [ -x "${PYENV_PIP_REHASH_ROOT}/${PYENV_REHASH_COMMAND}" ]; then
|
||||||
|
|||||||
67
test/pip-rehash.bats
Executable file
67
test/pip-rehash.bats
Executable file
@@ -0,0 +1,67 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
|
||||||
|
create_executable() {
|
||||||
|
local bin="${PYENV_ROOT}/versions/${PYENV_VERSION}/bin"
|
||||||
|
mkdir -p "$bin"
|
||||||
|
echo "#!/bin/sh" > "${bin}/$1"
|
||||||
|
chmod +x "${bin}/$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
copy_src_pyenvd() {
|
||||||
|
mkdir -p "${PYENV_ROOT}"
|
||||||
|
cp -r "${BATS_TEST_DIRNAME}/../pyenv.d" "${PYENV_ROOT}"
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "pip-rehash triggered when using 'pip'" {
|
||||||
|
export PYENV_VERSION="3.7.14"
|
||||||
|
create_executable "example"
|
||||||
|
create_executable "pip"
|
||||||
|
copy_src_pyenvd
|
||||||
|
run command -v example 2> /dev/null
|
||||||
|
assert_failure
|
||||||
|
run pyenv-exec pip install example
|
||||||
|
assert_success
|
||||||
|
run command -v example 2> /dev/null
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "pip-rehash triggered when using 'pip3'" {
|
||||||
|
export PYENV_VERSION="3.7.14"
|
||||||
|
create_executable "example"
|
||||||
|
create_executable "pip3"
|
||||||
|
copy_src_pyenvd
|
||||||
|
run command -v example 2> /dev/null
|
||||||
|
assert_failure
|
||||||
|
run pyenv-exec pip3 install example
|
||||||
|
assert_success
|
||||||
|
run command -v example 2> /dev/null
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "pip-rehash triggered when using 'pip3.x'" {
|
||||||
|
export PYENV_VERSION="3.7.14"
|
||||||
|
create_executable "example"
|
||||||
|
create_executable "pip3.7"
|
||||||
|
copy_src_pyenvd
|
||||||
|
run command -v example 2> /dev/null
|
||||||
|
assert_failure
|
||||||
|
run pyenv-exec pip3.7 install example
|
||||||
|
assert_success
|
||||||
|
run command -v example 2> /dev/null
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "pip-rehash triggered when using 'python -m pip install'" {
|
||||||
|
export PYENV_VERSION="3.7.14"
|
||||||
|
create_executable "example"
|
||||||
|
create_executable "python"
|
||||||
|
copy_src_pyenvd
|
||||||
|
run command -v example 2> /dev/null
|
||||||
|
assert_failure
|
||||||
|
run pyenv-exec python -m pip install example
|
||||||
|
assert_success
|
||||||
|
run command -v example 2> /dev/null
|
||||||
|
assert_success
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user