25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.8 KiB

  1. #!/usr/bin/env bats
  2. load test_helper
  3. setup() {
  4. mkdir -p "$PYENV_TEST_DIR"
  5. cd "$PYENV_TEST_DIR"
  6. }
  7. create_file() {
  8. mkdir -p "$(dirname "$1")"
  9. echo "system" > "$1"
  10. }
  11. @test "detects global 'version' file" {
  12. create_file "${PYENV_ROOT}/version"
  13. run pyenv-version-file
  14. assert_success "${PYENV_ROOT}/version"
  15. }
  16. @test "prints global file if no version files exist" {
  17. assert [ ! -e "${PYENV_ROOT}/version" ]
  18. assert [ ! -e ".python-version" ]
  19. run pyenv-version-file
  20. assert_success "${PYENV_ROOT}/version"
  21. }
  22. @test "in current directory" {
  23. create_file ".python-version"
  24. run pyenv-version-file
  25. assert_success "${PYENV_TEST_DIR}/.python-version"
  26. }
  27. @test "in parent directory" {
  28. create_file ".python-version"
  29. mkdir -p project
  30. cd project
  31. run pyenv-version-file
  32. assert_success "${PYENV_TEST_DIR}/.python-version"
  33. }
  34. @test "topmost file has precedence" {
  35. create_file ".python-version"
  36. create_file "project/.python-version"
  37. cd project
  38. run pyenv-version-file
  39. assert_success "${PYENV_TEST_DIR}/project/.python-version"
  40. }
  41. @test "PYENV_DIR has precedence over PWD" {
  42. create_file "widget/.python-version"
  43. create_file "project/.python-version"
  44. cd project
  45. PYENV_DIR="${PYENV_TEST_DIR}/widget" run pyenv-version-file
  46. assert_success "${PYENV_TEST_DIR}/widget/.python-version"
  47. }
  48. @test "PWD is searched if PYENV_DIR yields no results" {
  49. mkdir -p "widget/blank"
  50. create_file "project/.python-version"
  51. cd project
  52. PYENV_DIR="${PYENV_TEST_DIR}/widget/blank" run pyenv-version-file
  53. assert_success "${PYENV_TEST_DIR}/project/.python-version"
  54. }
  55. @test "finds version file in target directory" {
  56. create_file "project/.python-version"
  57. run pyenv-version-file "${PWD}/project"
  58. assert_success "${PYENV_TEST_DIR}/project/.python-version"
  59. }
  60. @test "fails when no version file in target directory" {
  61. run pyenv-version-file "$PWD"
  62. assert_failure ""
  63. }