mirror of
https://github.com/pyenv/pyenv.git
synced 2024-12-04 21:58:30 -05:00
d061cb4651
This speeds up subsequent `rbenv init -` executions for the user who followed these instructions because the shell will no longer have to be detected each time.
115 lines
2.7 KiB
Bash
Executable file
115 lines
2.7 KiB
Bash
Executable file
#!/usr/bin/env bats
|
|
|
|
load test_helper
|
|
|
|
@test "creates shims and versions directories" {
|
|
assert [ ! -d "${RBENV_ROOT}/shims" ]
|
|
assert [ ! -d "${RBENV_ROOT}/versions" ]
|
|
run rbenv-init -
|
|
assert_success
|
|
assert [ -d "${RBENV_ROOT}/shims" ]
|
|
assert [ -d "${RBENV_ROOT}/versions" ]
|
|
}
|
|
|
|
@test "auto rehash" {
|
|
run rbenv-init -
|
|
assert_success
|
|
assert_line "command rbenv rehash 2>/dev/null"
|
|
}
|
|
|
|
@test "setup shell completions" {
|
|
root="$(cd $BATS_TEST_DIRNAME/.. && pwd)"
|
|
run rbenv-init - bash
|
|
assert_success
|
|
assert_line "source '${root}/test/../libexec/../completions/rbenv.bash'"
|
|
}
|
|
|
|
@test "detect parent shell" {
|
|
SHELL=/bin/false run rbenv-init -
|
|
assert_success
|
|
assert_line "export RBENV_SHELL=bash"
|
|
}
|
|
|
|
@test "detect parent shell from script" {
|
|
mkdir -p "$RBENV_TEST_DIR"
|
|
cd "$RBENV_TEST_DIR"
|
|
cat > myscript.sh <<OUT
|
|
#!/bin/sh
|
|
eval "\$(rbenv-init -)"
|
|
echo \$RBENV_SHELL
|
|
OUT
|
|
chmod +x myscript.sh
|
|
run ./myscript.sh
|
|
assert_success "sh"
|
|
}
|
|
|
|
@test "skip shell completions (fish)" {
|
|
root="$(cd $BATS_TEST_DIRNAME/.. && pwd)"
|
|
run rbenv-init - fish
|
|
assert_success
|
|
local line="$(grep '^source' <<<"$output")"
|
|
[ -z "$line" ] || flunk "did not expect line: $line"
|
|
}
|
|
|
|
@test "posix shell instructions" {
|
|
run rbenv-init bash
|
|
assert [ "$status" -eq 1 ]
|
|
assert_line 'eval "$(rbenv init - bash)"'
|
|
}
|
|
|
|
@test "fish instructions" {
|
|
run rbenv-init fish
|
|
assert [ "$status" -eq 1 ]
|
|
assert_line 'status --is-interactive; and rbenv init - fish | source'
|
|
}
|
|
|
|
@test "option to skip rehash" {
|
|
run rbenv-init - --no-rehash
|
|
assert_success
|
|
refute_line "rbenv rehash 2>/dev/null"
|
|
}
|
|
|
|
@test "adds shims to PATH" {
|
|
export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin"
|
|
run rbenv-init - bash
|
|
assert_success
|
|
assert_line 0 'export PATH="'${RBENV_ROOT}'/shims:${PATH}"'
|
|
}
|
|
|
|
@test "adds shims to PATH (fish)" {
|
|
export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin"
|
|
run rbenv-init - fish
|
|
assert_success
|
|
assert_line 0 "set -gx PATH '${RBENV_ROOT}/shims' \$PATH"
|
|
}
|
|
|
|
@test "can add shims to PATH more than once" {
|
|
export PATH="${RBENV_ROOT}/shims:$PATH"
|
|
run rbenv-init - bash
|
|
assert_success
|
|
assert_line 0 'export PATH="'${RBENV_ROOT}'/shims:${PATH}"'
|
|
}
|
|
|
|
@test "can add shims to PATH more than once (fish)" {
|
|
export PATH="${RBENV_ROOT}/shims:$PATH"
|
|
run rbenv-init - fish
|
|
assert_success
|
|
assert_line 0 "set -gx PATH '${RBENV_ROOT}/shims' \$PATH"
|
|
}
|
|
|
|
@test "outputs sh-compatible syntax" {
|
|
run rbenv-init - bash
|
|
assert_success
|
|
assert_line ' case "$command" in'
|
|
|
|
run rbenv-init - zsh
|
|
assert_success
|
|
assert_line ' case "$command" in'
|
|
}
|
|
|
|
@test "outputs fish-specific syntax (fish)" {
|
|
run rbenv-init - fish
|
|
assert_success
|
|
assert_line ' switch "$command"'
|
|
refute_line ' case "$command" in'
|
|
}
|