diff --git a/bin/pyenv-virtualenv b/bin/pyenv-virtualenv index df65e04..414f526 100755 --- a/bin/pyenv-virtualenv +++ b/bin/pyenv-virtualenv @@ -137,13 +137,14 @@ usage() { detect_venv() { # Check the existence of executables as a workaround for the issue with pyenv-which-ext # https://github.com/yyuu/pyenv-virtualenv/issues/26 - if [ -x "$(pyenv-prefix)/bin/conda" ]; then + local prefix="$(pyenv-prefix)" + if [ -x "${prefix}/bin/conda" ]; then HAS_CONDA=1 else - if [ -x "$(pyenv-prefix)/bin/virtualenv" ]; then + if [ -x "${prefix}/bin/virtualenv" ]; then HAS_VIRTUALENV=1 fi - if [ -x "$(pyenv-prefix)/bin/pyvenv" ]; then + if [ -x "${prefix}/bin/pyvenv" ]; then HAS_PYVENV=1 fi fi diff --git a/test/pip.bats b/test/pip.bats index fa4fde4..1d8abff 100644 --- a/test/pip.bats +++ b/test/pip.bats @@ -24,8 +24,6 @@ unstub_pyenv() { 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-exec "pyvenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/3.4.1/envs/venv/bin" stub pyenv-exec "python -s -m ensurepip : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/3.4.1/envs/venv/bin/pip" @@ -50,8 +48,6 @@ OUT 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-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'" stub pyenv-exec "pyvenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/3.3.5/envs/venv/bin" stub pyenv-exec "python -s -m ensurepip : false" stub pyenv-exec "python -s */get-pip.py : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/3.3.5/envs/venv/bin/pip" diff --git a/test/pyvenv.bats b/test/pyvenv.bats index 9748651..f93b83f 100644 --- a/test/pyvenv.bats +++ b/test/pyvenv.bats @@ -24,13 +24,13 @@ unstub_pyenv() { 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-exec "pyvenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" stub pyenv-exec "python -s -m ensurepip : true" + create_executable "3.4.1" "python" remove_executable "3.4.1" "virtualenv" create_executable "3.4.1" "pyvenv" + remove_executable "3.4.1" "conda" run pyenv-virtualenv venv @@ -48,13 +48,13 @@ OUT 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-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" stub pyenv-exec "python -s -m ensurepip : true" + create_executable "3.4.1" "python" create_executable "3.4.1" "virtualenv" create_executable "3.4.1" "pyvenv" + remove_executable "3.4.1" "conda" run pyenv-virtualenv venv @@ -72,16 +72,16 @@ OUT 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-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" stub pyenv-exec "python -s -m ensurepip : false" stub pyenv-exec "python -s */get-pip.py : true" stub curl true + create_executable "3.2.1" "python" remove_executable "3.2.1" "virtualenv" remove_executable "3.2.1" "pyvenv" + remove_executable "3.2.1" "conda" run pyenv-virtualenv venv @@ -102,14 +102,14 @@ OUT 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-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" stub pyenv-exec "python -s -m ensurepip : true" + create_executable "3.4.1" "python" remove_executable "3.4.1" "virtualenv" create_executable "3.4.1" "pyvenv" + remove_executable "3.4.1" "conda" run pyenv-virtualenv -p ${TMP}/python3 venv @@ -128,14 +128,14 @@ OUT 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-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" stub pyenv-exec "python -s -m ensurepip : true" + create_executable "3.4.1" "python" remove_executable "3.4.1" "virtualenv" create_executable "3.4.1" "pyvenv" + remove_executable "3.4.1" "conda" run pyenv-virtualenv --python=${TMP}/python3 venv @@ -154,16 +154,16 @@ OUT 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-exec "pip install virtualenv : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" stub pyenv-exec "virtualenv * : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" stub pyenv-exec "python -s -m ensurepip : false" stub pyenv-exec "python -s */get-pip.py : true" stub curl true + create_executable "3.2.1" "python" remove_executable "3.2.1" "virtualenv" remove_executable "3.2.1" "pyvenv" + remove_executable "3.2.1" "conda" PIP_REQUIRE_VENV="true" run pyenv-virtualenv venv diff --git a/test/version.bats b/test/version.bats index a8a617d..f0e07c8 100644 --- a/test/version.bats +++ b/test/version.bats @@ -8,7 +8,6 @@ setup() { } @test "display virtualenv version" { - stub pyenv-prefix "echo '${PYENV_ROOT}/versions/2.7.7'" stub pyenv-prefix "echo '${PYENV_ROOT}/versions/2.7.7'" stub pyenv-exec "virtualenv --version : echo \"1.11\"" @@ -25,7 +24,6 @@ setup() { } @test "display pyvenv version" { - stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.4.1'" stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.4.1'" stub pyenv-which "pyvenv : echo \"${PYENV_ROOT}/versions/3.4.1/bin/pyvenv\"" diff --git a/test/virtualenv.bats b/test/virtualenv.bats index 641ea05..a62c7f4 100644 --- a/test/virtualenv.bats +++ b/test/virtualenv.bats @@ -7,11 +7,11 @@ setup() { } stub_pyenv() { + create_executable "${PYENV_VERSION}" "python" create_executable "${PYENV_VERSION}" "virtualenv" remove_executable "${PYENV_VERSION}" "pyvenv" + remove_executable "${PYENV_VERSION}" "conda" - 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-hooks "virtualenv : echo"