mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-13 14:03:53 -05:00
Display the version of pyvenv if USE_PYVENV is set
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# pyenv-virtualenv (a.k.a. [python-virtualenv](https://github.com/yyuu/python-virtualenv))
|
||||
# pyenv-virtualenv
|
||||
|
||||
[](https://travis-ci.org/yyuu/pyenv-virtualenv)
|
||||
|
||||
|
||||
@@ -103,8 +103,17 @@ http_get_wget() {
|
||||
}
|
||||
|
||||
version() {
|
||||
local version="$(venv --version 2>/dev/null || true)"
|
||||
echo "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (virtualenv ${version:-unknown})"
|
||||
detect_venv
|
||||
local version
|
||||
if [ -n "$USE_PYVENV" ]; then
|
||||
version="$(pyenv-which pyvenv 2>/dev/null || true)"
|
||||
version="${version#$(pyenv-root)/versions/}"
|
||||
version="${version%/bin/pyvenv}"
|
||||
echo "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (pyvenv ${version:-unknown})"
|
||||
else
|
||||
version="$(venv --version 2>/dev/null || true)"
|
||||
echo "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (virtualenv ${version:-unknown})"
|
||||
fi
|
||||
}
|
||||
|
||||
usage() {
|
||||
@@ -114,6 +123,19 @@ usage() {
|
||||
[ -z "$1" ] || exit "$1"
|
||||
}
|
||||
|
||||
detect_venv() {
|
||||
if pyenv-which "virtualenv" 1>/dev/null 2>&1; then
|
||||
HAS_VIRTUALENV=1
|
||||
fi
|
||||
if pyenv-which "pyvenv" 1>/dev/null 2>&1; then
|
||||
HAS_PYVENV=1
|
||||
fi
|
||||
# Use pyvenv only if virtualenv is not installed and there is pyvenv
|
||||
if [ -n "${HAS_PYVENV}" ] && [ -z "${HAS_VIRTUALENV}" ]; then
|
||||
USE_PYVENV=1
|
||||
fi
|
||||
}
|
||||
|
||||
venv() {
|
||||
local args=("$@")
|
||||
if [ -n "${USE_PYVENV}" ]; then
|
||||
@@ -305,17 +327,7 @@ VIRTUALENV_PATH="${PYENV_ROOT}/versions/${VIRTUALENV_NAME}"
|
||||
unset HAS_VIRTUALENV
|
||||
unset HAS_PYVENV
|
||||
unset USE_PYVENV
|
||||
|
||||
if pyenv-which "virtualenv" 1>/dev/null 2>&1; then
|
||||
HAS_VIRTUALENV=1
|
||||
fi
|
||||
if pyenv-which "pyvenv" 1>/dev/null 2>&1; then
|
||||
HAS_PYVENV=1
|
||||
fi
|
||||
# Use pyvenv only if virtualenv is not installed and there is pyvenv
|
||||
if [ -n "${HAS_PYVENV}" ] && [ -z "${HAS_VIRTUALENV}" ]; then
|
||||
USE_PYVENV=1
|
||||
fi
|
||||
detect_venv
|
||||
|
||||
if [ -n "${USE_PYVENV}" ]; then
|
||||
# Unset some arguments not supported by pyvenv
|
||||
|
||||
37
test/version.bats
Normal file
37
test/version.bats
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bats
|
||||
|
||||
load test_helper
|
||||
|
||||
setup() {
|
||||
export PYENV_ROOT="${TMP}/pyenv"
|
||||
export PYENV_VIRTUALENV_VERSION="20140110.1"
|
||||
}
|
||||
|
||||
@test "display virtualenv version" {
|
||||
stub pyenv-which "virtualenv : true"
|
||||
stub pyenv-which "pyvenv : true"
|
||||
stub pyenv-exec "virtualenv --version : echo \"1.11\""
|
||||
|
||||
run pyenv-virtualenv --version
|
||||
|
||||
unstub pyenv-which
|
||||
unstub pyenv-exec
|
||||
|
||||
assert_success
|
||||
assert_output "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (virtualenv 1.11)"
|
||||
}
|
||||
|
||||
@test "display pyvenv version" {
|
||||
stub pyenv-which "virtualenv : false"
|
||||
stub pyenv-which "pyvenv : echo \"${PYENV_ROOT}/versions/3.3.3/bin/pyvenv\""
|
||||
stub pyenv-which "pyvenv : echo \"${PYENV_ROOT}/versions/3.3.3/bin/pyvenv\""
|
||||
stub pyenv-root "echo \"${PYENV_ROOT}\""
|
||||
|
||||
run pyenv-virtualenv --version
|
||||
|
||||
unstub pyenv-which
|
||||
unstub pyenv-root
|
||||
|
||||
assert_success
|
||||
assert_output "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (pyvenv 3.3.3)"
|
||||
}
|
||||
Reference in New Issue
Block a user