Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

99 рядки
2.5 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. touch "$1"
  10. }
  11. @test "prints global file if no version files exist" {
  12. assert [ ! -e "${PYENV_ROOT}/version" ]
  13. assert [ ! -e ".python-version" ]
  14. run pyenv-version-file
  15. assert_success "${PYENV_ROOT}/version"
  16. }
  17. @test "detects 'global' file" {
  18. create_file "${PYENV_ROOT}/global"
  19. run pyenv-version-file
  20. assert_success "${PYENV_ROOT}/global"
  21. }
  22. @test "detects 'default' file" {
  23. create_file "${PYENV_ROOT}/default"
  24. run pyenv-version-file
  25. assert_success "${PYENV_ROOT}/default"
  26. }
  27. @test "'version' has precedence over 'global' and 'default'" {
  28. create_file "${PYENV_ROOT}/version"
  29. create_file "${PYENV_ROOT}/global"
  30. create_file "${PYENV_ROOT}/default"
  31. run pyenv-version-file
  32. assert_success "${PYENV_ROOT}/version"
  33. }
  34. @test "in current directory" {
  35. create_file ".python-version"
  36. run pyenv-version-file
  37. assert_success "${PYENV_TEST_DIR}/.python-version"
  38. }
  39. @test "legacy file in current directory" {
  40. create_file ".pyenv-version"
  41. run pyenv-version-file
  42. assert_success "${PYENV_TEST_DIR}/.pyenv-version"
  43. }
  44. @test ".python-version has precedence over legacy file" {
  45. create_file ".python-version"
  46. create_file ".pyenv-version"
  47. run pyenv-version-file
  48. assert_success "${PYENV_TEST_DIR}/.python-version"
  49. }
  50. @test "in parent directory" {
  51. create_file ".python-version"
  52. mkdir -p project
  53. cd project
  54. run pyenv-version-file
  55. assert_success "${PYENV_TEST_DIR}/.python-version"
  56. }
  57. @test "topmost file has precedence" {
  58. create_file ".python-version"
  59. create_file "project/.python-version"
  60. cd project
  61. run pyenv-version-file
  62. assert_success "${PYENV_TEST_DIR}/project/.python-version"
  63. }
  64. @test "legacy file has precedence if higher" {
  65. create_file ".python-version"
  66. create_file "project/.pyenv-version"
  67. cd project
  68. run pyenv-version-file
  69. assert_success "${PYENV_TEST_DIR}/project/.pyenv-version"
  70. }
  71. @test "PYENV_DIR has precedence over PWD" {
  72. create_file "widget/.python-version"
  73. create_file "project/.python-version"
  74. cd project
  75. PYENV_DIR="${PYENV_TEST_DIR}/widget" run pyenv-version-file
  76. assert_success "${PYENV_TEST_DIR}/widget/.python-version"
  77. }
  78. @test "PWD is searched if PYENV_DIR yields no results" {
  79. mkdir -p "widget/blank"
  80. create_file "project/.python-version"
  81. cd project
  82. PYENV_DIR="${PYENV_TEST_DIR}/widget/blank" run pyenv-version-file
  83. assert_success "${PYENV_TEST_DIR}/project/.python-version"
  84. }