You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

181 lines
5.7 KiB

пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
  1. #!/usr/bin/env bats
  2. load test_helper
  3. setup() {
  4. export PYENV_ROOT="${TMP}/pyenv"
  5. }
  6. stub_pyenv() {
  7. stub pyenv-version-name "echo \${PYENV_VERSION}"
  8. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  9. stub pyenv-hooks "virtualenv : echo"
  10. stub pyenv-rehash " : echo rehashed"
  11. }
  12. unstub_pyenv() {
  13. unstub pyenv-version-name
  14. unstub pyenv-prefix
  15. unstub pyenv-hooks
  16. unstub pyenv-rehash
  17. }
  18. @test "use pyvenv if virtualenv is not available" {
  19. export PYENV_VERSION="3.4.1"
  20. stub_pyenv "${PYENV_VERSION}"
  21. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  22. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  23. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  24. stub pyenv-exec "pyvenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  25. stub pyenv-exec "python -s -m ensurepip : true"
  26. remove_executable "3.4.1" "virtualenv"
  27. create_executable "3.4.1" "pyvenv"
  28. run pyenv-virtualenv venv
  29. assert_success
  30. assert_output <<OUT
  31. PYENV_VERSION=3.4.1 pyvenv ${PYENV_ROOT}/versions/3.4.1/envs/venv
  32. rehashed
  33. OUT
  34. unstub_pyenv
  35. unstub pyenv-exec
  36. }
  37. @test "not use pyvenv if virtualenv is available" {
  38. export PYENV_VERSION="3.4.1"
  39. stub_pyenv "${PYENV_VERSION}"
  40. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  41. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  42. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  43. stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  44. stub pyenv-exec "python -s -m ensurepip : true"
  45. create_executable "3.4.1" "virtualenv"
  46. create_executable "3.4.1" "pyvenv"
  47. run pyenv-virtualenv venv
  48. assert_success
  49. assert_output <<OUT
  50. PYENV_VERSION=3.4.1 virtualenv ${PYENV_ROOT}/versions/3.4.1/envs/venv
  51. rehashed
  52. OUT
  53. unstub_pyenv
  54. unstub pyenv-exec
  55. }
  56. @test "install virtualenv if pyvenv is not avaialble" {
  57. export PYENV_VERSION="3.2.1"
  58. stub_pyenv "${PYENV_VERSION}"
  59. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  60. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  61. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  62. stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  63. stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  64. stub pyenv-exec "python -s -m ensurepip : false"
  65. stub pyenv-exec "python -s */get-pip.py : true"
  66. stub curl true
  67. remove_executable "3.2.1" "virtualenv"
  68. remove_executable "3.2.1" "pyvenv"
  69. run pyenv-virtualenv venv
  70. assert_success
  71. assert_output <<OUT
  72. PYENV_VERSION=3.2.1 pip install virtualenv
  73. PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/3.2.1/envs/venv
  74. Installing pip from https://bootstrap.pypa.io/get-pip.py...
  75. rehashed
  76. OUT
  77. unstub_pyenv
  78. unstub pyenv-exec
  79. unstub curl
  80. }
  81. @test "install virtualenv if -p has given" {
  82. export PYENV_VERSION="3.4.1"
  83. stub_pyenv "${PYENV_VERSION}"
  84. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  85. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  86. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  87. stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  88. stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  89. stub pyenv-exec "python -s -m ensurepip : true"
  90. remove_executable "3.4.1" "virtualenv"
  91. create_executable "3.4.1" "pyvenv"
  92. run pyenv-virtualenv -p ${TMP}/python3 venv
  93. assert_output <<OUT
  94. PYENV_VERSION=3.4.1 pip install virtualenv
  95. PYENV_VERSION=3.4.1 virtualenv --python=${TMP}/python3 ${PYENV_ROOT}/versions/3.4.1/envs/venv
  96. rehashed
  97. OUT
  98. assert_success
  99. unstub_pyenv
  100. unstub pyenv-exec
  101. }
  102. @test "install virtualenv if --python has given" {
  103. export PYENV_VERSION="3.4.1"
  104. stub_pyenv "${PYENV_VERSION}"
  105. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  106. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  107. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  108. stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  109. stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  110. stub pyenv-exec "python -s -m ensurepip : true"
  111. remove_executable "3.4.1" "virtualenv"
  112. create_executable "3.4.1" "pyvenv"
  113. run pyenv-virtualenv --python=${TMP}/python3 venv
  114. assert_output <<OUT
  115. PYENV_VERSION=3.4.1 pip install virtualenv
  116. PYENV_VERSION=3.4.1 virtualenv --python=${TMP}/python3 ${PYENV_ROOT}/versions/3.4.1/envs/venv
  117. rehashed
  118. OUT
  119. assert_success
  120. unstub_pyenv
  121. unstub pyenv-exec
  122. }
  123. @test "install virtualenv with unsetting troublesome pip options" {
  124. export PYENV_VERSION="3.2.1"
  125. stub_pyenv "${PYENV_VERSION}"
  126. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  127. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  128. stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  129. stub pyenv-exec "pip install virtualenv : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  130. stub pyenv-exec "virtualenv * : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  131. stub pyenv-exec "python -s -m ensurepip : false"
  132. stub pyenv-exec "python -s */get-pip.py : true"
  133. stub curl true
  134. remove_executable "3.2.1" "virtualenv"
  135. remove_executable "3.2.1" "pyvenv"
  136. PIP_REQUIRE_VENV="true" run pyenv-virtualenv venv
  137. assert_success
  138. assert_output <<OUT
  139. PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 pip install virtualenv
  140. PIP_REQUIRE_VENV= PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/3.2.1/envs/venv
  141. Installing pip from https://bootstrap.pypa.io/get-pip.py...
  142. rehashed
  143. OUT
  144. unstub_pyenv
  145. unstub pyenv-exec
  146. unstub curl
  147. }