Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

145 lignes
3.8 KiB

  1. #!/usr/bin/env bats
  2. load test_helper
  3. setup() {
  4. export PYENV_ROOT="${TMP}/pyenv"
  5. }
  6. create_virtualenv() {
  7. mkdir -p "${PYENV_ROOT}/versions/$1/bin"
  8. touch "${PYENV_ROOT}/versions/$1/bin/activate"
  9. }
  10. remove_virtualenv() {
  11. rm -fr "${PYENV_ROOT}/versions/$1"
  12. }
  13. @test "display prefix with using sys.real_prefix" {
  14. stub pyenv-version-name "echo venv27"
  15. stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\""
  16. stub pyenv-exec "echo \"${PYENV_ROOT}/versions/2.7.6\""
  17. create_virtualenv "venv27"
  18. PYENV_VERSION="venv27" run pyenv-virtualenv-prefix
  19. unstub pyenv-version-name
  20. unstub pyenv-prefix
  21. unstub pyenv-exec
  22. remove_virtualenv "venv27"
  23. assert_success
  24. assert_output <<OUT
  25. ${PYENV_ROOT}/versions/2.7.6
  26. OUT
  27. }
  28. @test "display prefixes with using sys.real_prefix" {
  29. stub pyenv-version-name "echo venv27:venv32"
  30. stub pyenv-prefix "venv27 : echo \"${PYENV_ROOT}/versions/venv27\"" \
  31. "venv32 : echo \"${PYENV_ROOT}/versions/venv32\""
  32. stub pyenv-exec "echo \"${PYENV_ROOT}/versions/2.7.6\"" \
  33. "echo \"${PYENV_ROOT}/versions/3.2.1\""
  34. create_virtualenv "venv27"
  35. create_virtualenv "venv32"
  36. PYENV_VERSION="venv27:venv32" run pyenv-virtualenv-prefix
  37. unstub pyenv-version-name
  38. unstub pyenv-prefix
  39. unstub pyenv-exec
  40. remove_virtualenv "venv27"
  41. remove_virtualenv "venv32"
  42. assert_success
  43. assert_output <<OUT
  44. ${PYENV_ROOT}/versions/2.7.6:${PYENV_ROOT}/versions/3.2.1
  45. OUT
  46. }
  47. @test "display prefix with using sys.base_prefix" {
  48. stub pyenv-version-name "echo venv33"
  49. stub pyenv-prefix "venv33 : echo \"${PYENV_ROOT}/versions/venv33\""
  50. stub pyenv-exec "false" \
  51. "echo \"${PYENV_ROOT}/versions/3.3.3\""
  52. create_virtualenv "venv33"
  53. PYENV_VERSION="venv33" run pyenv-virtualenv-prefix
  54. unstub pyenv-version-name
  55. unstub pyenv-prefix
  56. unstub pyenv-exec
  57. remove_virtualenv "venv33"
  58. assert_success
  59. assert_output <<OUT
  60. ${PYENV_ROOT}/versions/3.3.3
  61. OUT
  62. }
  63. @test "display prefixes with using sys.base_prefix" {
  64. stub pyenv-version-name "echo venv33:venv34"
  65. stub pyenv-prefix "venv33 : echo \"${PYENV_ROOT}/versions/venv33\"" \
  66. "venv34 : echo \"${PYENV_ROOT}/versions/venv34\""
  67. stub pyenv-exec "false" \
  68. "echo \"${PYENV_ROOT}/versions/3.3.3\"" \
  69. "false" \
  70. "echo \"${PYENV_ROOT}/versions/3.4.0\""
  71. create_virtualenv "venv33"
  72. create_virtualenv "venv34"
  73. PYENV_VERSION="venv33:venv34" run pyenv-virtualenv-prefix
  74. unstub pyenv-version-name
  75. unstub pyenv-prefix
  76. unstub pyenv-exec
  77. remove_virtualenv "venv33"
  78. remove_virtualenv "venv34"
  79. assert_success
  80. assert_output <<OUT
  81. ${PYENV_ROOT}/versions/3.3.3:${PYENV_ROOT}/versions/3.4.0
  82. OUT
  83. }
  84. @test "should fail if the version is not a virtualenv" {
  85. stub pyenv-version-name "echo 3.4.0"
  86. stub pyenv-prefix "3.4.0 : echo \"${PYENV_ROOT}/versions/3.4.0\""
  87. mkdir -p "${PYENV_ROOT}/versions/3.4.0"
  88. PYENV_VERSION="3.4.0" run pyenv-virtualenv-prefix
  89. unstub pyenv-version-name
  90. unstub pyenv-prefix
  91. rmdir "${PYENV_ROOT}/versions/3.4.0"
  92. assert_failure
  93. assert_output <<OUT
  94. pyenv-virtualenv: version \`3.4.0' is not a virtualenv
  95. OUT
  96. }
  97. @test "should fail if one of the versions is not a virtualenv" {
  98. stub pyenv-version-name "echo venv33:3.4.0"
  99. stub pyenv-prefix "venv33 : echo \"${PYENV_ROOT}/versions/venv33\"" \
  100. "3.4.0 : echo \"${PYENV_ROOT}/versions/3.4.0\""
  101. stub pyenv-exec "false" \
  102. "echo \"${PYENV_ROOT}/versions/3.3.3\""
  103. create_virtualenv "venv33"
  104. mkdir -p "${PYENV_ROOT}/versions/3.4.0"
  105. PYENV_VERSION="venv33:3.4.0" run pyenv-virtualenv-prefix
  106. unstub pyenv-version-name
  107. unstub pyenv-prefix
  108. unstub pyenv-exec
  109. remove_virtualenv "venv33"
  110. rmdir "${PYENV_ROOT}/versions/3.4.0"
  111. assert_failure
  112. assert_output <<OUT
  113. pyenv-virtualenv: version \`3.4.0' is not a virtualenv
  114. OUT
  115. }