#!/usr/bin/env bats load test_helper create_executable() { name="${1?}" shift 1 bin="${PYENV_ROOT}/versions/${PYENV_VERSION}/bin" mkdir -p "$bin" { if [ $# -eq 0 ]; then cat - else echo "$@" fi } | sed -Ee '1s/^ +//' > "${bin}/$name" chmod +x "${bin}/$name" } @test "fails with invalid version" { export PYENV_VERSION="3.4" run pyenv-exec python -V assert_failure "pyenv: version \`3.4' is not installed (set by PYENV_VERSION environment variable)" } @test "fails with invalid version set from file" { mkdir -p "$PYENV_TEST_DIR" cd "$PYENV_TEST_DIR" echo 2.7 > .python-version run pyenv-exec rspec assert_failure "pyenv: version \`2.7' is not installed (set by $PWD/.python-version)" } @test "completes with names of executables" { export PYENV_VERSION="3.4" create_executable "fab" "#!/bin/sh" create_executable "python" "#!/bin/sh" pyenv-rehash run pyenv-completions exec assert_success assert_output <" { export PYENV_VERSION="3.4" # emulate `python -S' behavior create_executable "python" </dev/null; then \$BASH "\$found" else echo "python: no Python script found in input (LoadError)" >&2 exit 1 fi else echo 'python 3.4 (pyenv test)' fi SH create_executable "fab" <