diff --git a/test/init.bats b/test/init.bats index 2b963249..54ae9a79 100755 --- a/test/init.bats +++ b/test/init.bats @@ -62,6 +62,19 @@ OUT assert_line 'pyenv init - fish | source' } +@test "setup shell completions (pwsh)" { + root="$(cd $BATS_TEST_DIRNAME/.. && pwd)" + run pyenv-init - pwsh + assert_success + assert_line "iex (gc ${root}/test/../libexec/../completions/pyenv.pwsh -Raw)" +} + +@test "pwsh instructions" { + run pyenv-init pwsh + assert [ "$status" -eq 1 ] + assert_line 'iex ((pyenv init -) -join "`n")' +} + @test "shell detection for installer" { run pyenv-init --detect-shell assert_success @@ -88,6 +101,13 @@ OUT assert_line "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" } +@test "adds shims to PATH (pwsh)" { + export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin" + run pyenv-init - pwsh + assert_success + assert_line '$Env:PATH="'${PYENV_ROOT}'/shims:$Env:PATH"' +} + @test "removes existing shims from PATH" { OLDPATH="$PATH" export PATH="${BATS_TEST_DIRNAME}/nonexistent:${PYENV_ROOT}/shims:$PATH" @@ -112,6 +132,19 @@ echo "\$PATH" assert_output "${PYENV_ROOT}/shims:${BATS_TEST_DIRNAME}/nonexistent:${OLDPATH//${PYENV_ROOT}\/shims:/}" } +@test "removes existing shims from PATH (pwsh)" { + command -v pwsh >/dev/null || skip "-- pwsh not installed" + OLDPATH="$PATH" + export PATH="${BATS_TEST_DIRNAME}/nonexistent:${PYENV_ROOT}/shims:$PATH" + run pwsh -noni -c - </dev/null || skip "-- pwsh not installed" + export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin" + run pwsh -noni -c - </dev/null || skip "-- pwsh not installed" + export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:${PYENV_ROOT}/shims:/bin:/usr/local/bin" + run pwsh -noni -c - </dev/null || true" assert [ -x "${PYENV_ROOT}/shims/python" ] } +@test "sh-rehash in pwsh" { + create_executable "3.4" "python" + PYENV_SHELL=pwsh run pyenv-sh-rehash + assert_success "" + assert [ -x "${PYENV_ROOT}/shims/python" ] +} + @test "shim sets _PYENV_SHIM_PATH when linked from elsewhere" { export PYENV_VERSION="custom" create_alt_executable python3 diff --git a/test/shell.bats b/test/shell.bats index daa5744b..553b9b01 100644 --- a/test/shell.bats +++ b/test/shell.bats @@ -31,6 +31,11 @@ load test_helper assert_success 'echo "$PYENV_VERSION"' } +@test "shell version (pwsh)" { + PYENV_SHELL=pwsh PYENV_VERSION="1.2.3" run pyenv-sh-shell + assert_success 'echo "$PYENV_VERSION"' +} + @test "shell revert" { PYENV_SHELL=bash run pyenv-sh-shell - assert_success @@ -43,6 +48,12 @@ load test_helper assert_line 0 'if set -q PYENV_VERSION_OLD' } +@test "shell revert (pwsh)" { + PYENV_SHELL=pwsh run pyenv-sh-shell - + assert_success + assert_line 0 'if set -q PYENV_VERSION_OLD' +} + @test "shell unset" { PYENV_SHELL=bash run pyenv-sh-shell --unset assert_success @@ -61,6 +72,14 @@ set -e PYENV_VERSION OUT } +@test "shell unset (pwsh)" { + PYENV_SHELL=pwsh run pyenv-sh-shell --unset + assert_success + assert_output <