Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

114 rader
1.7 KiB

  1. #!/usr/bin/env bats
  2. load test_helper
  3. setup() {
  4. export PATH="${PYENV_TEST_DIR}/bin:$PATH"
  5. }
  6. create_executable() {
  7. local name="$1"
  8. local bin="${PYENV_TEST_DIR}/bin"
  9. mkdir -p "$bin"
  10. sed -Ee '1s/^ +//' > "${bin}/$name"
  11. chmod +x "${bin}/$name"
  12. }
  13. @test "read from installed" {
  14. create_executable pyenv-versions <<!
  15. #!$BASH
  16. echo 4.5.6
  17. !
  18. run pyenv-latest 4
  19. assert_success
  20. assert_output <<!
  21. 4.5.6
  22. !
  23. }
  24. @test "read from known" {
  25. create_executable python-build <<!
  26. #!$BASH
  27. echo 4.5.6
  28. !
  29. run pyenv-latest -k 4
  30. assert_success
  31. assert_output <<!
  32. 4.5.6
  33. !
  34. }
  35. @test "installed version not found" {
  36. create_executable pyenv-versions <<!
  37. #!$BASH
  38. echo 3.5.6
  39. echo 3.10.8
  40. !
  41. run pyenv-latest 3.8
  42. assert_failure
  43. assert_output <<!
  44. pyenv: no installed versions match the prefix \`3.8'
  45. !
  46. }
  47. @test "known version not found" {
  48. create_executable python-build <<!
  49. #!$BASH
  50. echo 3.5.6
  51. echo 3.10.8
  52. !
  53. run pyenv-latest -k 3.8
  54. assert_failure
  55. assert_output <<!
  56. pyenv: no known versions match the prefix \`3.8'
  57. !
  58. }
  59. @test "complete name resolves to itself" {
  60. create_executable pyenv-versions <<!
  61. #!$BASH
  62. echo foo
  63. echo foo.bar
  64. !
  65. run pyenv-latest foo
  66. assert_success
  67. assert_output <<!
  68. foo
  69. !
  70. }
  71. @test "sort CPython" {
  72. create_executable pyenv-versions <<!
  73. #!$BASH
  74. echo 2.7.18
  75. echo 3.5.6
  76. echo 3.10.8
  77. echo 3.10.6
  78. !
  79. run pyenv-latest 3
  80. assert_success
  81. assert_output <<!
  82. 3.10.8
  83. !
  84. }
  85. @test "ignores rolling releases, branch tips, alternative srcs, prereleases and virtualenvs" {
  86. create_executable pyenv-versions <<!
  87. #!$BASH
  88. echo 3.8.5-dev
  89. echo 3.8.5-src
  90. echo 3.8.5-latest
  91. echo 3.8.5a2
  92. echo 3.8.5b3
  93. echo 3.8.5rc2
  94. echo 3.8.1
  95. echo 3.8.1/envs/foo
  96. !
  97. run pyenv-latest 3.8
  98. assert_success
  99. assert_output <<!
  100. 3.8.1
  101. !
  102. }