Browse Source

Add test helpers for virtualenv, pyvenv and conda

pull/125/head
Yamashita, Yuu 8 years ago
parent
commit
48b491f343
10 changed files with 113 additions and 84 deletions
  1. +14
    -7
      test/conda-activate.bats
  2. +9
    -5
      test/conda-deactivate.bats
  3. +4
    -4
      test/conda-prefix.bats
  4. +10
    -4
      test/hooks.bats
  5. +4
    -6
      test/pip.bats
  6. +3
    -2
      test/python.bats
  7. +13
    -30
      test/pyvenv.bats
  8. +50
    -16
      test/test_helper.bash
  9. +4
    -6
      test/version.bats
  10. +2
    -4
      test/virtualenv.bats

+ 14
- 7
test/conda-activate.bats View File

@ -20,7 +20,7 @@ setup() {
@test "activate conda root from current version" {
export PYENV_VIRTUALENV_INIT=1
create_conda "anaconda-2.3.0"
setup_conda "anaconda-2.3.0"
stub pyenv-version-name "echo anaconda-2.3.0"
stub pyenv-virtualenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
stub pyenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
@ -43,12 +43,13 @@ EOS
unstub pyenv-virtualenv-prefix
unstub pyenv-prefix
unstub pyenv-sh-deactivate
teardown_conda "anaconda-2.3.0"
}
@test "activate conda root from current version (fish)" {
export PYENV_VIRTUALENV_INIT=1
create_conda "anaconda-2.3.0"
setup_conda "anaconda-2.3.0"
stub pyenv-version-name "echo anaconda-2.3.0"
stub pyenv-virtualenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
stub pyenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
@ -69,13 +70,14 @@ EOS
unstub pyenv-virtualenv-prefix
unstub pyenv-prefix
unstub pyenv-sh-deactivate
teardown_conda "anaconda-2.3.0"
}
@test "activate conda root from command-line argument" {
export PYENV_VIRTUALENV_INIT=1
create_conda "anaconda-2.3.0"
create_conda "miniconda-3.9.1"
setup_conda "anaconda-2.3.0"
setup_conda "miniconda-3.9.1"
stub pyenv-virtualenv-prefix "miniconda-3.9.1 : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1\""
stub pyenv-prefix "miniconda-3.9.1 : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1\""
stub pyenv-sh-deactivate "--force --quiet : echo deactivated"
@ -98,12 +100,14 @@ EOS
unstub pyenv-virtualenv-prefix
unstub pyenv-prefix
unstub pyenv-sh-deactivate
teardown_conda "anaconda-2.3.0"
teardown_conda "miniconda-3.9.1"
}
@test "activate conda env from current version" {
export PYENV_VIRTUALENV_INIT=1
create_conda "anaconda-2.3.0" "foo"
setup_conda "anaconda-2.3.0" "foo"
stub pyenv-version-name "echo anaconda-2.3.0/envs/foo"
stub pyenv-virtualenv-prefix "anaconda-2.3.0/envs/foo : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo\""
stub pyenv-prefix "anaconda-2.3.0/envs/foo : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo\""
@ -126,13 +130,14 @@ EOS
unstub pyenv-virtualenv-prefix
unstub pyenv-prefix
unstub pyenv-sh-deactivate
teardown_conda "anaconda-2.3.0" "foo"
}
@test "activate conda env from command-line argument" {
export PYENV_VIRTUALENV_INIT=1
create_conda "anaconda-2.3.0" "foo"
create_conda "miniconda-3.9.1" "bar"
setup_conda "anaconda-2.3.0" "foo"
setup_conda "miniconda-3.9.1" "bar"
stub pyenv-virtualenv-prefix "miniconda-3.9.1/envs/bar : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1\""
stub pyenv-prefix "miniconda-3.9.1/envs/bar : echo \"${PYENV_ROOT}/versions/miniconda-3.9.1/envs/bar\""
stub pyenv-sh-deactivate "--force --quiet : echo deactivated"
@ -155,4 +160,6 @@ EOS
unstub pyenv-virtualenv-prefix
unstub pyenv-prefix
unstub pyenv-sh-deactivate
teardown_conda "anaconda-2.3.0" "foo"
teardown_conda "miniconda-3.9.1" "bar"
}

+ 9
- 5
test/conda-deactivate.bats View File

@ -21,7 +21,7 @@ setup() {
export PYENV_ACTIVATE_SHELL=
export CONDA_DEFAULT_ENV="root"
create_conda "anaconda-2.3.0"
setup_conda "anaconda-2.3.0"
PYENV_SHELL="bash" run pyenv-sh-deactivate
@ -46,6 +46,8 @@ if declare -f deactivate 1>/dev/null 2>&1; then
unset -f deactivate;
fi;
EOS
teardown_conda "anaconda-2.3.0"
}
@test "deactivate conda root (fish)" {
@ -53,8 +55,7 @@ EOS
export PYENV_ACTIVATE_SHELL=
export CONDA_DEFAULT_ENV="root"
create_conda "anaconda-2.3.0"
setup_conda "anaconda-2.3.0"
PYENV_SHELL="fish" run pyenv-sh-deactivate
@ -75,6 +76,8 @@ if functions -g deactivate;
functions -e deactivate;
end;
EOS
teardown_conda "anaconda-2.3.0"
}
@test "deactivate conda env" {
@ -82,8 +85,7 @@ EOS
export PYENV_ACTIVATE_SHELL=
export CONDA_DEFAULT_ENV="foo"
create_conda "anaconda-2.3.0" "foo"
setup_conda "anaconda-2.3.0" "foo"
PYENV_SHELL="bash" run pyenv-sh-deactivate
@ -108,4 +110,6 @@ if declare -f deactivate 1>/dev/null 2>&1; then
unset -f deactivate;
fi;
EOS
teardown_conda "anaconda-2.3.0" "foo"
}

+ 4
- 4
test/conda-prefix.bats View File

@ -7,8 +7,7 @@ setup() {
}
@test "display conda root" {
create_conda "anaconda-2.3.0"
setup_conda "anaconda-2.3.0"
stub pyenv-version-name "echo anaconda-2.3.0"
stub pyenv-prefix "anaconda-2.3.0 : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0\""
@ -21,11 +20,11 @@ OUT
unstub pyenv-version-name
unstub pyenv-prefix
teardown_conda "anaconda-2.3.0"
}
@test "display conda env" {
create_conda "anaconda-2.3.0" "foo"
setup_conda "anaconda-2.3.0" "foo"
stub pyenv-version-name "echo anaconda-2.3.0/envs/foo"
stub pyenv-prefix "anaconda-2.3.0/envs/foo : echo \"${PYENV_ROOT}/versions/anaconda-2.3.0/envs/foo\""
@ -38,4 +37,5 @@ OUT
unstub pyenv-version-name
unstub pyenv-prefix
teardown_conda "anaconda-2.3.0" "foo"
}

+ 10
- 4
test/hooks.bats View File

@ -13,23 +13,29 @@ setup() {
before_virtualenv 'echo before: \$VIRTUALENV_PATH'
after_virtualenv 'echo after: \$STATUS'
OUT
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.2.1'"
setup_version "3.2.1"
create_executable "3.2.1" "virtualenv"
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.2.1'"
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.2.1'"
stub pyenv-hooks "virtualenv : echo '$HOOK_PATH'/virtualenv.bash"
stub pyenv-exec "echo PYENV_VERSION=3.2.1 \"\$@\""
stub pyenv-exec "echo PYENV_VERSION=3.2.1 \"\$@\""
stub pyenv-rehash "echo rehashed"
create_executable "3.2.1" "virtualenv"
remove_executable "3.2.1" "pyvenv"
run pyenv-virtualenv "3.2.1" venv
assert_success
assert_output <<-OUT
before: ${PYENV_ROOT}/versions/3.2.1/envs/venv
PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/3.2.1/envs/venv
PYENV_VERSION=3.2.1 python -s -m ensurepip
after: 0
rehashed
OUT
unstub pyenv-prefix
unstub pyenv-hooks
unstub pyenv-exec
unstub pyenv-rehash
teardown_version "3.2.1"
}

+ 4
- 6
test/pip.bats View File

@ -22,14 +22,12 @@ unstub_pyenv() {
@test "install pip with ensurepip" {
export PYENV_VERSION="3.4.1"
setup_pyvenv "3.4.1"
stub_pyenv "${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"
remove_executable "3.4.1" "virtualenv"
create_executable "3.4.1" "pyvenv"
run pyenv-virtualenv venv
assert_success
@ -42,10 +40,12 @@ OUT
unstub_pyenv
unstub pyenv-exec
teardown_pyvenv "3.4.1"
}
@test "install pip without using ensurepip" {
export PYENV_VERSION="3.3.5"
setup_pyvenv "3.3.5"
stub_pyenv "${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"
@ -53,9 +53,6 @@ OUT
stub pyenv-exec "python -s */get-pip.py : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/3.3.5/envs/venv/bin/pip"
stub curl true
remove_executable "3.3.5" "virtualenv"
create_executable "3.3.5" "pyvenv"
run pyenv-virtualenv venv
assert_success
@ -69,4 +66,5 @@ OUT
unstub_pyenv
unstub pyenv-exec
teardown_pyvenv "3.3.5"
}

+ 3
- 2
test/python.bats View File

@ -5,8 +5,8 @@ load test_helper
setup() {
export PYENV_ROOT="${TMP}/pyenv"
export PYENV_VERSION="2.7.8"
create_executable "${PYENV_VERSION}" "virtualenv"
remove_executable "${PYENV_VERSION}" "pyvenv"
setup_version "2.7.8"
create_executable "2.7.8" "virtualenv"
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}'"
@ -22,6 +22,7 @@ teardown() {
unstub pyenv-prefix
unstub pyenv-hooks
unstub pyenv-rehash
teardown_version "2.7.8"
rm -fr "$TMP"/*
}

+ 13
- 30
test/pyvenv.bats View File

@ -22,16 +22,12 @@ unstub_pyenv() {
@test "use pyvenv if virtualenv is not available" {
export PYENV_VERSION="3.4.1"
setup_pyvenv "3.4.1"
stub_pyenv "${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
assert_success
@ -42,20 +38,18 @@ OUT
unstub_pyenv
unstub pyenv-exec
teardown_pyvenv "3.4.1"
}
@test "not use pyvenv if virtualenv is available" {
export PYENV_VERSION="3.4.1"
setup_pyvenv "3.4.1"
create_executable "3.4.1" "virtualenv"
stub_pyenv "${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
assert_success
@ -66,10 +60,12 @@ OUT
unstub_pyenv
unstub pyenv-exec
teardown_pyvenv "3.4.1"
}
@test "install virtualenv if pyvenv is not avaialble" {
export PYENV_VERSION="3.2.1"
setup_version "3.2.1"
stub_pyenv "${PYENV_VERSION}"
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
@ -78,11 +74,6 @@ OUT
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
assert_success
@ -96,21 +87,18 @@ OUT
unstub_pyenv
unstub pyenv-exec
unstub curl
teardown_version "3.2.1"
}
@test "install virtualenv if -p has given" {
export PYENV_VERSION="3.4.1"
setup_pyvenv "3.4.1"
stub_pyenv "${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
assert_output <<OUT
@ -122,21 +110,18 @@ OUT
unstub_pyenv
unstub pyenv-exec
teardown_pyvenv "3.4.1"
}
@test "install virtualenv if --python has given" {
export PYENV_VERSION="3.4.1"
setup_pyvenv "3.4.1"
stub_pyenv "${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
assert_output <<OUT
@ -148,10 +133,12 @@ OUT
unstub_pyenv
unstub pyenv-exec
teardown_pyvenv "3.4.1"
}
@test "install virtualenv with unsetting troublesome pip options" {
export PYENV_VERSION="3.2.1"
setup_version "3.2.1"
stub_pyenv "${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} \"\$@\""
@ -160,11 +147,6 @@ OUT
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
assert_success
@ -178,4 +160,5 @@ OUT
unstub_pyenv
unstub pyenv-exec
unstub curl
teardown_version "3.2.1"
}

+ 50
- 16
test/test_helper.bash View File

@ -117,22 +117,56 @@ remove_executable() {
rm -f "${PYENV_ROOT}/versions/$1/bin/$2"
}
create_conda() {
local version="$1"
setup_version() {
create_executable "$1" "python"
remove_executable "$1" "activate"
remove_executable "$1" "pyvenv"
remove_executable "$1" "conda"
}
teardown_version() {
rm -fr "${PYENV_ROOT}/versions/$1"
}
setup_virtualenv() {
create_executable "$1" "python"
create_executable "$1" "activate"
remove_executable "$1" "pyvenv"
remove_executable "$1" "conda"
}
teardown_virtualenv() {
rm -fr "${PYENV_ROOT}/versions/$1"
}
setup_pyvenv() {
create_executable "$1" "python"
create_executable "$1" "activate"
create_executable "$1" "pyvenv"
remove_executable "$1" "conda"
}
teardown_pyvenv() {
rm -fr "${PYENV_ROOT}/versions/$1"
}
setup_conda() {
create_executable "$1" "python"
create_executable "$1" "activate"
remove_executable "$1" "pyvenv"
create_executable "$1" "conda"
local conda="$1"
shift 1
mkdir -p "${PYENV_ROOT}/versions/$version/bin"
touch "${PYENV_ROOT}/versions/$version/bin/activate"
touch "${PYENV_ROOT}/versions/$version/bin/conda"
touch "${PYENV_ROOT}/versions/$version/bin/python"
chmod +x "${PYENV_ROOT}/versions/$version/bin/conda"
chmod +x "${PYENV_ROOT}/versions/$version/bin/python"
local conda_env
for conda_env; do
mkdir -p "${PYENV_ROOT}/versions/$version/envs/$conda_env/bin"
touch "${PYENV_ROOT}/versions/$version/envs/$conda_env/bin/activate"
touch "${PYENV_ROOT}/versions/$version/envs/$conda_env/bin/conda"
touch "${PYENV_ROOT}/versions/$version/envs/$conda_env/bin/python"
chmod +x "${PYENV_ROOT}/versions/$version/envs/$conda_env/bin/conda"
chmod +x "${PYENV_ROOT}/versions/$version/envs/$conda_env/bin/python"
local env
for env; do
create_executable "${conda}/envs/${env}" "python"
create_executable "${conda}/envs/${env}" "activate"
remove_executable "${conda}/envs/${env}" "pyvenv"
create_executable "${conda}/envs/${env}" "conda"
done
}
teardown_conda() {
rm -fr "${PYENV_ROOT}/versions/$1"
}

+ 4
- 6
test/version.bats View File

@ -8,12 +8,10 @@ setup() {
}
@test "display virtualenv version" {
setup_virtualenv "2.7.7"
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/2.7.7'"
stub pyenv-exec "virtualenv --version : echo \"1.11\""
create_executable "2.7.7" "virtualenv"
remove_executable "2.7.7" "pyvenv"
run pyenv-virtualenv --version
assert_success
@ -21,19 +19,19 @@ setup() {
unstub pyenv-prefix
unstub pyenv-exec
teardown_virtualenv "2.7.7"
}
@test "display pyvenv version" {
setup_pyvenv "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\""
remove_executable "3.4.1" "virtualenv"
create_executable "3.4.1" "pyvenv"
run pyenv-virtualenv --version
assert_success
assert_output "pyenv-virtualenv ${PYENV_VIRTUALENV_VERSION} (pyvenv 3.4.1)"
unstub pyenv-prefix
teardown_pyvenv "3.4.1"
}

+ 2
- 4
test/virtualenv.bats View File

@ -7,11 +7,8 @@ setup() {
}
stub_pyenv() {
create_executable "${PYENV_VERSION}" "python"
setup_version "${PYENV_VERSION}"
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-hooks "virtualenv : echo"
@ -22,6 +19,7 @@ unstub_pyenv() {
unstub pyenv-prefix
unstub pyenv-hooks
unstub pyenv-rehash
teardown_version "${PYENV_VERSION}"
}
@test "create virtualenv from given version" {

Loading…
Cancel
Save