|
|
- #!/usr/bin/env bats
-
- load test_helper
- export PYENV_ROOT="${TMP}/pyenv"
-
- setup() {
- stub pyenv-hooks 'install : true'
- stub pyenv-rehash 'true'
- }
-
- stub_python_build() {
- stub python-build "--lib : $BATS_TEST_DIRNAME/../bin/python-build --lib" "$@"
- }
-
- @test "install proper" {
- stub_python_build 'echo python-build "$@"'
-
- run pyenv-install 3.4.2
- assert_success "python-build 3.4.2 ${PYENV_ROOT}/versions/3.4.2"
-
- unstub python-build
- unstub pyenv-hooks
- unstub pyenv-rehash
- }
-
- @test "install pyenv local version by default" {
- stub_python_build 'echo python-build "$1"'
- stub pyenv-local 'echo 3.4.2'
-
- run pyenv-install
- assert_success "python-build 3.4.2"
-
- unstub python-build
- unstub pyenv-local
- }
-
- @test "list available versions" {
- stub_python_build \
- "--definitions : echo 2.6.9 2.7.9-rc1 2.7.9-rc2 3.4.2 | tr ' ' $'\\n'"
-
- run pyenv-install --list
- assert_success
- assert_output <<OUT
- Available versions:
- 2.6.9
- 2.7.9-rc1
- 2.7.9-rc2
- 3.4.2
- OUT
-
- unstub python-build
- }
-
- @test "nonexistent version" {
- stub brew false
- stub_python_build 'echo ERROR >&2 && exit 2' \
- "--definitions : echo 2.6.9 2.7.9-rc1 2.7.9-rc2 3.4.2 | tr ' ' $'\\n'"
-
- run pyenv-install 2.7.9
- assert_failure
- assert_output <<OUT
- ERROR
-
- The following versions contain \`2.7.9' in the name:
- 2.7.9-rc1
- 2.7.9-rc2
-
- See all available versions with \`pyenv install --list'.
-
- If the version you need is missing, try upgrading pyenv:
-
- cd ${BATS_TEST_DIRNAME}/../../.. && git pull
- OUT
-
- unstub python-build
- }
-
- @test "Homebrew upgrade instructions" {
- stub brew "--prefix : echo '${BATS_TEST_DIRNAME%/*}'"
- stub_python_build 'echo ERROR >&2 && exit 2' \
- "--definitions : true"
-
- run pyenv-install 1.9.3
- assert_failure
- assert_output <<OUT
- ERROR
-
- See all available versions with \`pyenv install --list'.
-
- If the version you need is missing, try upgrading pyenv:
-
- brew update && brew upgrade pyenv
- OUT
-
- unstub brew
- unstub python-build
- }
-
- @test "no build definitions from plugins" {
- assert [ ! -e "${PYENV_ROOT}/plugins" ]
- stub_python_build 'echo $PYTHON_BUILD_DEFINITIONS'
-
- run pyenv-install 3.4.2
- assert_success ""
- }
-
- @test "some build definitions from plugins" {
- mkdir -p "${PYENV_ROOT}/plugins/foo/share/python-build"
- mkdir -p "${PYENV_ROOT}/plugins/bar/share/python-build"
- stub_python_build "echo \$PYTHON_BUILD_DEFINITIONS | tr ':' $'\\n'"
-
- run pyenv-install 3.4.2
- assert_success
- assert_output <<OUT
-
- ${PYENV_ROOT}/plugins/bar/share/python-build
- ${PYENV_ROOT}/plugins/foo/share/python-build
- OUT
- }
-
- @test "list build definitions from plugins" {
- mkdir -p "${PYENV_ROOT}/plugins/foo/share/python-build"
- mkdir -p "${PYENV_ROOT}/plugins/bar/share/python-build"
- stub_python_build "--definitions : echo \$PYTHON_BUILD_DEFINITIONS | tr ':' $'\\n'"
-
- run pyenv-install --list
- assert_success
- assert_output <<OUT
- Available versions:
-
- ${PYENV_ROOT}/plugins/bar/share/python-build
- ${PYENV_ROOT}/plugins/foo/share/python-build
- OUT
- }
-
- @test "completion results include build definitions from plugins" {
- mkdir -p "${PYENV_ROOT}/plugins/foo/share/python-build"
- mkdir -p "${PYENV_ROOT}/plugins/bar/share/python-build"
- stub python-build "--definitions : echo \$PYTHON_BUILD_DEFINITIONS | tr ':' $'\\n'"
-
- run pyenv-install --complete
- assert_success
- assert_output <<OUT
-
- ${PYENV_ROOT}/plugins/bar/share/python-build
- ${PYENV_ROOT}/plugins/foo/share/python-build
- OUT
- }
-
- @test "not enough arguments for pyenv-install" {
- stub_python_build
- run pyenv-install
- assert_failure
- assert_output_contains 'Usage: pyenv install'
- }
-
- @test "too many arguments for pyenv-install" {
- stub_python_build
- run pyenv-install 3.4.1 3.4.2
- assert_failure
- assert_output_contains 'Usage: pyenv install'
- }
-
- @test "show help for pyenv-install" {
- stub_python_build
- run pyenv-install -h
- assert_success
- assert_output_contains 'Usage: pyenv install'
- }
-
- @test "not enough arguments pyenv-uninstall" {
- run pyenv-uninstall
- assert_failure
- assert_output_contains 'Usage: pyenv uninstall'
- }
-
- @test "too many arguments for pyenv-uninstall" {
- run pyenv-uninstall 3.4.1 3.4.2
- assert_failure
- assert_output_contains 'Usage: pyenv uninstall'
- }
-
- @test "show help for pyenv-uninstall" {
- run pyenv-uninstall -h
- assert_success
- assert_output_contains 'Usage: pyenv uninstall'
- }
|