mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-13 14:03:53 -05:00
Merge branch 'ensurepip'
This commit is contained in:
@@ -142,46 +142,53 @@ venv() {
|
|||||||
local args=("$@")
|
local args=("$@")
|
||||||
if [ -n "${USE_PYVENV}" ]; then
|
if [ -n "${USE_PYVENV}" ]; then
|
||||||
pyenv-exec pyvenv "${args[@]}"
|
pyenv-exec pyvenv "${args[@]}"
|
||||||
|
|
||||||
local last="${args[${#args[@]}-1]}"
|
|
||||||
ensurepip "${last##*/}"
|
|
||||||
else
|
else
|
||||||
pyenv-exec virtualenv "${args[@]}"
|
pyenv-exec virtualenv "${args[@]}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
install_setuptools() {
|
build_package_ez_setup() {
|
||||||
local version="$1"
|
local ez_setup="${PYENV_VIRTUALENV_CACHE_PATH}/ez_setup.py"
|
||||||
|
rm -f "${ez_setup}"
|
||||||
{ if [ "${EZ_SETUP+defined}" ] && [ -f "${EZ_SETUP}" ]; then
|
{ if [ "${EZ_SETUP+defined}" ] && [ -f "${EZ_SETUP}" ]; then
|
||||||
if [ -n "$VERBOSE" ]; then
|
|
||||||
echo "Installing setuptools from ${EZ_SETUP}..." 1>&2
|
echo "Installing setuptools from ${EZ_SETUP}..." 1>&2
|
||||||
fi
|
|
||||||
cat "${EZ_SETUP}"
|
cat "${EZ_SETUP}"
|
||||||
else
|
else
|
||||||
[ -n "${EZ_SETUP_URL}" ] || EZ_SETUP_URL="https://bootstrap.pypa.io/ez_setup.py"
|
[ -n "${EZ_SETUP_URL}" ] || EZ_SETUP_URL="https://bootstrap.pypa.io/ez_setup.py"
|
||||||
if [ -n "$VERBOSE" ]; then
|
|
||||||
echo "Installing setuptools from ${EZ_SETUP_URL}..." 1>&2
|
echo "Installing setuptools from ${EZ_SETUP_URL}..." 1>&2
|
||||||
fi
|
|
||||||
http get "${EZ_SETUP_URL}"
|
http get "${EZ_SETUP_URL}"
|
||||||
fi
|
fi
|
||||||
} | PYENV_VERSION="${version}" pyenv-exec python
|
} 1> "${ez_setup}"
|
||||||
|
pyenv-exec python "${ez_setup}" ${EZ_SETUP_OPTS} 1>&2 || {
|
||||||
|
echo "error: failed to install setuptools via ez_setup.py" >&2
|
||||||
|
return 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
install_pip() {
|
build_package_get_pip() {
|
||||||
local version="$1"
|
local get_pip="${PYENV_VIRTUALENV_CACHE_PATH}/get-pip.py"
|
||||||
|
rm -f "${get_pip}"
|
||||||
{ if [ "${GET_PIP+defined}" ] && [ -f "${GET_PIP}" ]; then
|
{ if [ "${GET_PIP+defined}" ] && [ -f "${GET_PIP}" ]; then
|
||||||
if [ -n "$VERBOSE" ]; then
|
|
||||||
echo "Installing pip from ${GET_PIP}..." 1>&2
|
echo "Installing pip from ${GET_PIP}..." 1>&2
|
||||||
fi
|
|
||||||
cat "${GET_PIP}"
|
cat "${GET_PIP}"
|
||||||
else
|
else
|
||||||
[ -n "${GET_PIP_URL}" ] || GET_PIP_URL="https://bootstrap.pypa.io/get-pip.py"
|
[ -n "${GET_PIP_URL}" ] || GET_PIP_URL="https://bootstrap.pypa.io/get-pip.py"
|
||||||
if [ -n "$VERBOSE" ]; then
|
|
||||||
echo "Installing pip from ${GET_PIP_URL}..." 1>&2
|
echo "Installing pip from ${GET_PIP_URL}..." 1>&2
|
||||||
fi
|
|
||||||
http get "${GET_PIP_URL}"
|
http get "${GET_PIP_URL}"
|
||||||
fi
|
fi
|
||||||
} | PYENV_VERSION="${version}" pyenv-exec python
|
} 1> "${get_pip}"
|
||||||
|
pyenv-exec python "${get_pip}" ${GET_PIP_OPTS} 1>&2 || {
|
||||||
|
echo "error: failed to install pip via get-pip.py" >&2
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
build_package_ensurepip() {
|
||||||
|
pyenv-exec python -m ensurepip 2>/dev/null|| {
|
||||||
|
build_package_ez_setup "$@" && build_package_get_pip "$@"
|
||||||
|
} || return 1
|
||||||
|
|
||||||
|
# create_symlinks "$(pyenv-exec python -c 'import sys;v=sys.version_info;sys.stdout.write("python%d.%d"%(v[0],v[1]))')"
|
||||||
}
|
}
|
||||||
|
|
||||||
install_virtualenv() {
|
install_virtualenv() {
|
||||||
@@ -190,21 +197,8 @@ install_virtualenv() {
|
|||||||
PYENV_VERSION="${version}" pyenv-exec pip install $QUIET $VERBOSE "virtualenv${VIRTUALENV_VERSION%==}"
|
PYENV_VERSION="${version}" pyenv-exec pip install $QUIET $VERBOSE "virtualenv${VIRTUALENV_VERSION%==}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ensurepip() {
|
|
||||||
local version="$1"
|
|
||||||
PYENV_VERSION="${version}" pyenv-exec python -m ensurepip 2>/dev/null || {
|
|
||||||
PYENV_VERSION="${version}" pyenv-exec python -c "import setuptools" 1>/dev/null 2>&1 || {
|
|
||||||
install_setuptools "${version}"
|
|
||||||
} 1>&2
|
|
||||||
PYENV_VERSION="${version}" pyenv-which pip 1>/dev/null 2>&1 || {
|
|
||||||
install_pip "${version}"
|
|
||||||
} 1>&2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
create_symlinks() {
|
create_symlinks() {
|
||||||
local version="$1"
|
local suffix="$1"
|
||||||
local suffix="$(PYENV_VERSION="${version}" pyenv-exec python -c 'import sys;v=sys.version_info;sys.stdout.write("%d.%d"%(v[0],v[1]))')"
|
|
||||||
|
|
||||||
local file link
|
local file link
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
@@ -429,12 +423,17 @@ mkdir -p "${PYENV_VIRTUALENV_CACHE_PATH}"
|
|||||||
cd "${PYENV_VIRTUALENV_CACHE_PATH}"
|
cd "${PYENV_VIRTUALENV_CACHE_PATH}"
|
||||||
venv $QUIET $VERBOSE "${VIRTUALENV_OPTIONS[@]}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
venv $QUIET $VERBOSE "${VIRTUALENV_OPTIONS[@]}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
||||||
|
|
||||||
|
## Install setuptools and pip
|
||||||
|
( export PYENV_VERSION="${VIRTUALENV_NAME}"
|
||||||
|
build_package_ensurepip
|
||||||
|
)
|
||||||
|
|
||||||
## Migrate previously installed packages from requirements.txt
|
## Migrate previously installed packages from requirements.txt
|
||||||
if [ -n "$UPGRADE" ]; then
|
if [ -n "$UPGRADE" ]; then
|
||||||
upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
create_symlinks "${VIRTUALENV_NAME}"
|
create_symlinks "$(PYENV_VERSION="${VIRTUALENV_NAME}" pyenv-exec python -c 'import sys;v=sys.version_info;sys.stdout.write("python%d.%d"%(v[0],v[1]))')"
|
||||||
|
|
||||||
# Execute `after_virtualenv` hooks
|
# Execute `after_virtualenv` hooks
|
||||||
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
||||||
|
|||||||
80
test/pip.bats
Normal file
80
test/pip.bats
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load test_helper
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
export PYENV_ROOT="${TMP}/pyenv"
|
||||||
|
}
|
||||||
|
|
||||||
|
stub_pyenv() {
|
||||||
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
|
stub pyenv-hooks "virtualenv : echo"
|
||||||
|
stub pyenv-rehash " : echo rehashed"
|
||||||
|
}
|
||||||
|
|
||||||
|
unstub_pyenv() {
|
||||||
|
unstub pyenv-version-name
|
||||||
|
unstub pyenv-prefix
|
||||||
|
unstub pyenv-hooks
|
||||||
|
unstub pyenv-rehash
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "install pip with ensurepip" {
|
||||||
|
export PYENV_VERSION="3.4.1"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
|
stub pyenv-exec "pyvenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/venv/bin"
|
||||||
|
stub pyenv-exec "python -m ensurepip : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/venv/bin/pip3.4"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
|
||||||
|
remove_executable "3.4.1" "virtualenv"
|
||||||
|
create_executable "3.4.1" "pyvenv"
|
||||||
|
|
||||||
|
run pyenv-virtualenv venv
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<OUT
|
||||||
|
PYENV_VERSION=3.4.1 pyvenv ${PYENV_ROOT}/versions/venv
|
||||||
|
PYENV_VERSION=venv python -m ensurepip
|
||||||
|
rehashed
|
||||||
|
OUT
|
||||||
|
assert [ -e "${PYENV_ROOT}/versions/venv/bin/pip" ]
|
||||||
|
|
||||||
|
unstub_pyenv
|
||||||
|
unstub pyenv-exec
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "install pip without using ensurepip" {
|
||||||
|
export PYENV_VERSION="3.3.5"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
|
stub pyenv-exec "pyvenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/venv/bin"
|
||||||
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/venv/bin/easy_install"
|
||||||
|
stub pyenv-exec "python */get-pip.py : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/venv/bin/pip3.3"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
|
remove_executable "3.3.5" "virtualenv"
|
||||||
|
create_executable "3.3.5" "pyvenv"
|
||||||
|
|
||||||
|
run pyenv-virtualenv venv
|
||||||
|
|
||||||
|
assert_success
|
||||||
|
assert_output <<OUT
|
||||||
|
PYENV_VERSION=3.3.5 pyvenv ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
PYENV_VERSION=venv python ${TMP}/pyenv/cache/ez_setup.py
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
|
PYENV_VERSION=venv python ${TMP}/pyenv/cache/get-pip.py
|
||||||
|
rehashed
|
||||||
|
OUT
|
||||||
|
assert [ -e "${PYENV_ROOT}/versions/venv/bin/pip" ]
|
||||||
|
|
||||||
|
unstub_pyenv
|
||||||
|
unstub pyenv-exec
|
||||||
|
}
|
||||||
109
test/pyvenv.bats
109
test/pyvenv.bats
@@ -7,7 +7,6 @@ setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
stub_pyenv() {
|
stub_pyenv() {
|
||||||
export PYENV_VERSION="$1"
|
|
||||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-hooks "virtualenv : echo"
|
stub pyenv-hooks "virtualenv : echo"
|
||||||
@@ -15,7 +14,6 @@ stub_pyenv() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
unstub_pyenv() {
|
unstub_pyenv() {
|
||||||
unset PYENV_VERSION
|
|
||||||
unstub pyenv-version-name
|
unstub pyenv-version-name
|
||||||
unstub pyenv-prefix
|
unstub pyenv-prefix
|
||||||
unstub pyenv-hooks
|
unstub pyenv-hooks
|
||||||
@@ -23,12 +21,13 @@ unstub_pyenv() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "use pyvenv if virtualenv is not available" {
|
@test "use pyvenv if virtualenv is not available" {
|
||||||
stub_pyenv "3.4.1"
|
export PYENV_VERSION="3.4.1"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pyvenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "bin=\"${PYENV_ROOT}/versions/venv/bin\";mkdir -p \"\$bin\";touch \"\$bin/pip3.4\";echo PYENV_VERSION=\${PYENV_VERSION} ensurepip"
|
stub pyenv-exec "python -m ensurepip : true"
|
||||||
stub pyenv-exec "echo 3.4"
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
|
||||||
remove_executable "3.4.1" "virtualenv"
|
remove_executable "3.4.1" "virtualenv"
|
||||||
create_executable "3.4.1" "pyvenv"
|
create_executable "3.4.1" "pyvenv"
|
||||||
@@ -38,21 +37,21 @@ unstub_pyenv() {
|
|||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.4.1 pyvenv ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.4.1 pyvenv ${PYENV_ROOT}/versions/venv
|
||||||
PYENV_VERSION=venv ensurepip
|
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
assert [ -e "${PYENV_ROOT}/versions/venv/bin/pip" ]
|
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "not use pyvenv if virtualenv is available" {
|
@test "not use pyvenv if virtualenv is available" {
|
||||||
stub_pyenv "3.4.1"
|
export PYENV_VERSION="3.4.1"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo 3.4"
|
stub pyenv-exec "python -m ensurepip : true"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
|
||||||
create_executable "3.4.1" "virtualenv"
|
create_executable "3.4.1" "virtualenv"
|
||||||
create_executable "3.4.1" "pyvenv"
|
create_executable "3.4.1" "pyvenv"
|
||||||
@@ -70,12 +69,18 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "install virtualenv if pyvenv is not avaialble" {
|
@test "install virtualenv if pyvenv is not avaialble" {
|
||||||
stub_pyenv "3.2.1"
|
export PYENV_VERSION="3.2.1"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo 3.2"
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
remove_executable "3.2.1" "virtualenv"
|
remove_executable "3.2.1" "virtualenv"
|
||||||
remove_executable "3.2.1" "pyvenv"
|
remove_executable "3.2.1" "pyvenv"
|
||||||
@@ -86,20 +91,25 @@ OUT
|
|||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.2.1 pip install virtualenv
|
PYENV_VERSION=3.2.1 pip install virtualenv
|
||||||
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "install virtualenv if -p has given" {
|
@test "install virtualenv if -p has given" {
|
||||||
stub_pyenv "3.4.1"
|
export PYENV_VERSION="3.4.1"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv --python=python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo 3.4"
|
stub pyenv-exec "python -m ensurepip : true"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
|
||||||
remove_executable "3.4.1" "virtualenv"
|
remove_executable "3.4.1" "virtualenv"
|
||||||
create_executable "3.4.1" "pyvenv"
|
create_executable "3.4.1" "pyvenv"
|
||||||
@@ -118,12 +128,14 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "install virtualenv if --python has given" {
|
@test "install virtualenv if --python has given" {
|
||||||
stub_pyenv "3.4.1"
|
export PYENV_VERSION="3.4.1"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv --python=python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo 3.4"
|
stub pyenv-exec "python -m ensurepip : true"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
|
||||||
remove_executable "3.4.1" "virtualenv"
|
remove_executable "3.4.1" "virtualenv"
|
||||||
create_executable "3.4.1" "pyvenv"
|
create_executable "3.4.1" "pyvenv"
|
||||||
@@ -142,12 +154,18 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "install virtualenv with unsetting troublesome pip options" {
|
@test "install virtualenv with unsetting troublesome pip options" {
|
||||||
stub_pyenv "3.2.1"
|
export PYENV_VERSION="3.2.1"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-exec "echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo 3.2"
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
remove_executable "3.2.1" "virtualenv"
|
remove_executable "3.2.1" "virtualenv"
|
||||||
remove_executable "3.2.1" "pyvenv"
|
remove_executable "3.2.1" "pyvenv"
|
||||||
@@ -158,43 +176,12 @@ OUT
|
|||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 pip install virtualenv
|
PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 pip install virtualenv
|
||||||
PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
}
|
unstub curl
|
||||||
|
|
||||||
@test "install pip without using ensurepip" {
|
|
||||||
stub_pyenv "3.3.5"
|
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
|
||||||
stub pyenv-which "pip : echo no pip; false"
|
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} no ensurepip; false"
|
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} no setuptools; false"
|
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} setuptools"
|
|
||||||
stub pyenv-exec "bin=\"${PYENV_ROOT}/versions/venv/bin\";mkdir -p \"\$bin\";touch \"\$bin/pip\";echo PYENV_VERSION=\${PYENV_VERSION} pip"
|
|
||||||
stub pyenv-exec "echo 3.3"
|
|
||||||
stub curl "echo ez_setup.py"
|
|
||||||
stub curl "echo get_pip.py"
|
|
||||||
|
|
||||||
remove_executable "3.3.5" "virtualenv"
|
|
||||||
create_executable "3.3.5" "pyvenv"
|
|
||||||
|
|
||||||
run pyenv-virtualenv venv
|
|
||||||
|
|
||||||
assert_success
|
|
||||||
assert_output <<OUT
|
|
||||||
PYENV_VERSION=3.3.5 pyvenv ${PYENV_ROOT}/versions/venv
|
|
||||||
PYENV_VERSION=venv no ensurepip
|
|
||||||
PYENV_VERSION=venv setuptools
|
|
||||||
PYENV_VERSION=venv pip
|
|
||||||
rehashed
|
|
||||||
OUT
|
|
||||||
assert [ -e "${PYENV_ROOT}/versions/venv/bin/pip" ]
|
|
||||||
|
|
||||||
unstub_pyenv
|
|
||||||
unstub pyenv-which
|
|
||||||
unstub pyenv-exec
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
stub_pyenv() {
|
stub_pyenv() {
|
||||||
export PYENV_VERSION="$1"
|
|
||||||
|
|
||||||
create_executable "${PYENV_VERSION}" "virtualenv"
|
create_executable "${PYENV_VERSION}" "virtualenv"
|
||||||
remove_executable "${PYENV_VERSION}" "pyvenv"
|
remove_executable "${PYENV_VERSION}" "pyvenv"
|
||||||
|
|
||||||
@@ -20,82 +18,117 @@ stub_pyenv() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
unstub_pyenv() {
|
unstub_pyenv() {
|
||||||
unset PYENV_VERSION
|
|
||||||
unstub pyenv-prefix
|
unstub pyenv-prefix
|
||||||
unstub pyenv-hooks
|
unstub pyenv-hooks
|
||||||
unstub pyenv-rehash
|
unstub pyenv-rehash
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "create virtualenv from given version" {
|
@test "create virtualenv from given version" {
|
||||||
stub_pyenv "3.2.1"
|
export PYENV_VERSION="3.2.1"
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-exec "echo 3.2"
|
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
run pyenv-virtualenv "3.2.1" "venv"
|
run pyenv-virtualenv "3.2.1" "venv"
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "create virtualenv from current version" {
|
@test "create virtualenv from current version" {
|
||||||
stub_pyenv "3.2.1"
|
export PYENV_VERSION="3.2.1"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo 3.2"
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
run pyenv-virtualenv venv
|
run pyenv-virtualenv venv
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-version-name
|
unstub pyenv-version-name
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "create virtualenv with short options" {
|
@test "create virtualenv with short options" {
|
||||||
stub_pyenv "3.2.1"
|
export PYENV_VERSION="3.2.1"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo 3.2"
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
run pyenv-virtualenv -v -p python venv
|
run pyenv-virtualenv -v -p python venv
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.2.1 virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.2.1 virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-version-name
|
unstub pyenv-version-name
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "create virtualenv with long options" {
|
@test "create virtualenv with long options" {
|
||||||
stub_pyenv "3.2.1"
|
export PYENV_VERSION="3.2.1"
|
||||||
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "echo 3.2"
|
stub pyenv-exec "python -m ensurepip : false"
|
||||||
|
stub pyenv-exec "python */ez_setup.py : true"
|
||||||
|
stub pyenv-exec "python */get-pip.py : true"
|
||||||
|
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||||
|
stub curl true
|
||||||
|
stub curl true
|
||||||
|
|
||||||
run pyenv-virtualenv --verbose --python=python venv
|
run pyenv-virtualenv --verbose --python=python venv
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.2.1 virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv
|
PYENV_VERSION=3.2.1 virtualenv --verbose --python=python ${PYENV_ROOT}/versions/venv
|
||||||
|
Installing setuptools from https://bootstrap.pypa.io/ez_setup.py...
|
||||||
|
Installing pip from https://bootstrap.pypa.io/get-pip.py...
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub_pyenv
|
unstub_pyenv
|
||||||
unstub pyenv-version-name
|
unstub pyenv-version-name
|
||||||
unstub pyenv-exec
|
unstub pyenv-exec
|
||||||
|
unstub curl
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user