1
0
mirror of https://github.com/pyenv/pyenv.git synced 2025-11-08 11:33:49 -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:
rockandska
2025-09-17 02:53:37 +02:00
committed by GitHub
parent 7881c26b5a
commit 22a7c46d54
2 changed files with 70 additions and 0 deletions

View File

@@ -4,6 +4,9 @@ PYENV_REHASH_COMMAND="${PYENV_COMMAND##*/}"
# Remove any version information, from e.g. "pip2" or "pip3.10".
if [[ $PYENV_REHASH_COMMAND =~ ^(pip|easy_install)[23](\.[0-9]+)?$ ]]; then
PYENV_REHASH_COMMAND="${BASH_REMATCH[1]}"
# Check for ` -m pip ` in arguments
elif [[ "$*" =~ [[:space:]]-m[[:space:]]pip[[:space:]] ]]; then
PYENV_REHASH_COMMAND="pip"
fi
if [ -x "${PYENV_PIP_REHASH_ROOT}/${PYENV_REHASH_COMMAND}" ]; then

67
test/pip-rehash.bats Executable file
View 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
}