#!/usr/bin/env bats load test_helper setup() { export PYENV_ROOT="${TMP}/pyenv" } 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" stub pyenv-rehash " : echo rehashed" } unstub_pyenv() { unset PYENV_VERSION unstub pyenv-version-name unstub pyenv-prefix unstub pyenv-hooks unstub pyenv-rehash } create_executable() { mkdir -p "${PYENV_ROOT}/versions/$1/bin" touch "${PYENV_ROOT}/versions/$1/bin/$2" chmod +x "${PYENV_ROOT}/versions/$1/bin/$2" } remove_executable() { rm -f "${PYENV_ROOT}/versions/$1/bin/$2" } @test "use pyvenv if virtualenv is not available" { stub_pyenv "3.4.0" stub pyenv-which "virtualenv : false" \ "pyvenv : echo '${PYENV_ROOT}/versions/bin/pyvenv'" stub pyenv-exec "echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"" \ "bin=\"${PYENV_ROOT}/versions/venv/bin\";mkdir -p \"\$bin\";touch \"\$bin/pip3.4\";echo PYENV_VERSION=\${PYENV_VERSION} ensurepip" \ "echo pip3.4" stub pyenv-prefix "venv : echo '${PYENV_ROOT}/versions/venv'" run pyenv-virtualenv venv unstub_pyenv unstub pyenv-which unstub pyenv-exec assert_success assert_output <