mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-13 05:53:52 -05:00
Merge branch 'ensurepip'
This commit is contained in:
@@ -142,46 +142,53 @@ venv() {
|
||||
local args=("$@")
|
||||
if [ -n "${USE_PYVENV}" ]; then
|
||||
pyenv-exec pyvenv "${args[@]}"
|
||||
|
||||
local last="${args[${#args[@]}-1]}"
|
||||
ensurepip "${last##*/}"
|
||||
else
|
||||
pyenv-exec virtualenv "${args[@]}"
|
||||
fi
|
||||
}
|
||||
|
||||
install_setuptools() {
|
||||
local version="$1"
|
||||
build_package_ez_setup() {
|
||||
local ez_setup="${PYENV_VIRTUALENV_CACHE_PATH}/ez_setup.py"
|
||||
rm -f "${ez_setup}"
|
||||
{ if [ "${EZ_SETUP+defined}" ] && [ -f "${EZ_SETUP}" ]; then
|
||||
if [ -n "$VERBOSE" ]; then
|
||||
echo "Installing setuptools from ${EZ_SETUP}..." 1>&2
|
||||
fi
|
||||
cat "${EZ_SETUP}"
|
||||
else
|
||||
[ -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
|
||||
fi
|
||||
http get "${EZ_SETUP_URL}"
|
||||
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() {
|
||||
local version="$1"
|
||||
build_package_get_pip() {
|
||||
local get_pip="${PYENV_VIRTUALENV_CACHE_PATH}/get-pip.py"
|
||||
rm -f "${get_pip}"
|
||||
{ if [ "${GET_PIP+defined}" ] && [ -f "${GET_PIP}" ]; then
|
||||
if [ -n "$VERBOSE" ]; then
|
||||
echo "Installing pip from ${GET_PIP}..." 1>&2
|
||||
fi
|
||||
cat "${GET_PIP}"
|
||||
else
|
||||
[ -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
|
||||
fi
|
||||
http get "${GET_PIP_URL}"
|
||||
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() {
|
||||
@@ -190,21 +197,8 @@ install_virtualenv() {
|
||||
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() {
|
||||
local version="$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 suffix="$1"
|
||||
|
||||
local file link
|
||||
shopt -s nullglob
|
||||
@@ -429,12 +423,17 @@ mkdir -p "${PYENV_VIRTUALENV_CACHE_PATH}"
|
||||
cd "${PYENV_VIRTUALENV_CACHE_PATH}"
|
||||
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
|
||||
if [ -n "$UPGRADE" ]; then
|
||||
upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
||||
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
|
||||
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() {
|
||||
export PYENV_VERSION="$1"
|
||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||
stub pyenv-hooks "virtualenv : echo"
|
||||
@@ -15,7 +14,6 @@ stub_pyenv() {
|
||||
}
|
||||
|
||||
unstub_pyenv() {
|
||||
unset PYENV_VERSION
|
||||
unstub pyenv-version-name
|
||||
unstub pyenv-prefix
|
||||
unstub pyenv-hooks
|
||||
@@ -23,12 +21,13 @@ unstub_pyenv() {
|
||||
}
|
||||
|
||||
@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-exec "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 "echo 3.4"
|
||||
stub pyenv-exec "pyvenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : true"
|
||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||
|
||||
remove_executable "3.4.1" "virtualenv"
|
||||
create_executable "3.4.1" "pyvenv"
|
||||
@@ -38,21 +37,21 @@ unstub_pyenv() {
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
PYENV_VERSION=3.4.1 pyvenv ${PYENV_ROOT}/versions/venv
|
||||
PYENV_VERSION=venv ensurepip
|
||||
rehashed
|
||||
OUT
|
||||
assert [ -e "${PYENV_ROOT}/versions/venv/bin/pip" ]
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-exec
|
||||
}
|
||||
|
||||
@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-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "echo 3.4"
|
||||
stub pyenv-exec "virtualenv ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
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" "pyvenv"
|
||||
@@ -70,12 +69,18 @@ OUT
|
||||
}
|
||||
|
||||
@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-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "echo 3.2"
|
||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
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
|
||||
|
||||
remove_executable "3.2.1" "virtualenv"
|
||||
remove_executable "3.2.1" "pyvenv"
|
||||
@@ -86,20 +91,25 @@ OUT
|
||||
assert_output <<OUT
|
||||
PYENV_VERSION=3.2.1 pip install virtualenv
|
||||
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
|
||||
OUT
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-exec
|
||||
unstub curl
|
||||
}
|
||||
|
||||
@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-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "echo 3.4"
|
||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "virtualenv --python=python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : true"
|
||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||
|
||||
remove_executable "3.4.1" "virtualenv"
|
||||
create_executable "3.4.1" "pyvenv"
|
||||
@@ -118,12 +128,14 @@ OUT
|
||||
}
|
||||
|
||||
@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-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "echo 3.4"
|
||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "virtualenv --python=python3 ${PYENV_ROOT}/versions/venv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "python -m ensurepip : true"
|
||||
stub pyenv-exec "python -c * : echo ${PYENV_VERSION%.*}"
|
||||
|
||||
remove_executable "3.4.1" "virtualenv"
|
||||
create_executable "3.4.1" "pyvenv"
|
||||
@@ -142,12 +154,18 @@ OUT
|
||||
}
|
||||
|
||||
@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-exec "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 "echo 3.2"
|
||||
stub pyenv-exec "pip install virtualenv : 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 "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" "pyvenv"
|
||||
@@ -158,43 +176,12 @@ OUT
|
||||
assert_output <<OUT
|
||||
PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 pip install virtualenv
|
||||
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
|
||||
OUT
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-exec
|
||||
}
|
||||
|
||||
@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
|
||||
unstub curl
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ setup() {
|
||||
}
|
||||
|
||||
stub_pyenv() {
|
||||
export PYENV_VERSION="$1"
|
||||
|
||||
create_executable "${PYENV_VERSION}" "virtualenv"
|
||||
remove_executable "${PYENV_VERSION}" "pyvenv"
|
||||
|
||||
@@ -20,82 +18,117 @@ stub_pyenv() {
|
||||
}
|
||||
|
||||
unstub_pyenv() {
|
||||
unset PYENV_VERSION
|
||||
unstub pyenv-prefix
|
||||
unstub pyenv-hooks
|
||||
unstub pyenv-rehash
|
||||
}
|
||||
|
||||
@test "create virtualenv from given version" {
|
||||
stub_pyenv "3.2.1"
|
||||
stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "echo 3.2"
|
||||
export PYENV_VERSION="3.2.1"
|
||||
stub_pyenv "${PYENV_VERSION}"
|
||||
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"
|
||||
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
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
|
||||
OUT
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-exec
|
||||
unstub curl
|
||||
}
|
||||
|
||||
@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-exec "echo PYENV_VERSION=\${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 venv
|
||||
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
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
|
||||
OUT
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-version-name
|
||||
unstub pyenv-exec
|
||||
unstub curl
|
||||
}
|
||||
|
||||
@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-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "echo 3.2"
|
||||
stub pyenv-exec "virtualenv --verbose --python=python ${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 -v -p python venv
|
||||
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
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
|
||||
OUT
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-version-name
|
||||
unstub pyenv-exec
|
||||
unstub curl
|
||||
}
|
||||
|
||||
@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-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||
stub pyenv-exec "echo 3.2"
|
||||
stub pyenv-exec "virtualenv --verbose --python=python ${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 --verbose --python=python venv
|
||||
|
||||
assert_success
|
||||
assert_output <<OUT
|
||||
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
|
||||
OUT
|
||||
|
||||
unstub_pyenv
|
||||
unstub pyenv-version-name
|
||||
unstub pyenv-exec
|
||||
unstub curl
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user