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.

137 line
3.6 KiB

10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
10 年之前
9 年之前
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. create_executable "${PYENV_VERSION}" "virtualenv"
  8. remove_executable "${PYENV_VERSION}" "pyvenv"
  9. stub pyenv-prefix "echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  10. stub pyenv-prefix "echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  11. stub pyenv-prefix "echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  12. stub pyenv-prefix "echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
  13. stub pyenv-hooks "virtualenv : echo"
  14. stub pyenv-rehash " : echo rehashed"
  15. }
  16. unstub_pyenv() {
  17. unstub pyenv-prefix
  18. unstub pyenv-hooks
  19. unstub pyenv-rehash
  20. }
  21. @test "create virtualenv from given version" {
  22. export PYENV_VERSION="3.2.1"
  23. stub_pyenv "${PYENV_VERSION}"
  24. stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  25. stub pyenv-exec "python -s -m ensurepip : false"
  26. stub pyenv-exec "python -s */get-pip.py : true"
  27. stub curl true
  28. run pyenv-virtualenv "3.2.1" "venv"
  29. assert_success
  30. assert_output <<OUT
  31. PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/3.2.1/envs/venv
  32. Installing pip from https://bootstrap.pypa.io/get-pip.py...
  33. rehashed
  34. OUT
  35. unstub_pyenv
  36. unstub pyenv-exec
  37. unstub curl
  38. }
  39. @test "create virtualenv from current version" {
  40. export PYENV_VERSION="3.2.1"
  41. stub_pyenv "${PYENV_VERSION}"
  42. stub pyenv-version-name "echo \${PYENV_VERSION}"
  43. stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  44. stub pyenv-exec "python -s -m ensurepip : false"
  45. stub pyenv-exec "python -s */get-pip.py : true"
  46. stub curl true
  47. run pyenv-virtualenv venv
  48. assert_success
  49. assert_output <<OUT
  50. PYENV_VERSION=3.2.1 virtualenv ${PYENV_ROOT}/versions/3.2.1/envs/venv
  51. Installing pip from https://bootstrap.pypa.io/get-pip.py...
  52. rehashed
  53. OUT
  54. unstub_pyenv
  55. unstub pyenv-version-name
  56. unstub pyenv-exec
  57. unstub curl
  58. }
  59. @test "create virtualenv with short options" {
  60. export PYENV_VERSION="3.2.1"
  61. stub_pyenv "${PYENV_VERSION}"
  62. stub pyenv-version-name "echo \${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. run pyenv-virtualenv -v -p ${TMP}/python venv
  68. assert_output <<OUT
  69. PYENV_VERSION=3.2.1 virtualenv --verbose --python=${TMP}/python ${PYENV_ROOT}/versions/3.2.1/envs/venv
  70. Installing pip from https://bootstrap.pypa.io/get-pip.py...
  71. rehashed
  72. OUT
  73. assert_success
  74. unstub_pyenv
  75. unstub pyenv-version-name
  76. unstub pyenv-exec
  77. unstub curl
  78. }
  79. @test "create virtualenv with long options" {
  80. export PYENV_VERSION="3.2.1"
  81. stub_pyenv "${PYENV_VERSION}"
  82. stub pyenv-version-name "echo \${PYENV_VERSION}"
  83. stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
  84. stub pyenv-exec "python -s -m ensurepip : false"
  85. stub pyenv-exec "python -s */get-pip.py : true"
  86. stub curl true
  87. run pyenv-virtualenv --verbose --python=${TMP}/python venv
  88. assert_output <<OUT
  89. PYENV_VERSION=3.2.1 virtualenv --verbose --python=${TMP}/python ${PYENV_ROOT}/versions/3.2.1/envs/venv
  90. Installing pip from https://bootstrap.pypa.io/get-pip.py...
  91. rehashed
  92. OUT
  93. assert_success
  94. unstub_pyenv
  95. unstub pyenv-version-name
  96. unstub pyenv-exec
  97. unstub curl
  98. }
  99. @test "no whitespace allowed in virtualenv name" {
  100. run pyenv-virtualenv "3.2.1" "foo bar"
  101. assert_failure
  102. assert_output <<OUT
  103. pyenv-virtualenv: no whitespace allowed in virtualenv name.
  104. OUT
  105. }
  106. @test "no tab allowed in virtualenv name" {
  107. run pyenv-virtualenv "3.2.1" "foo bar baz"
  108. assert_failure
  109. assert_output <<OUT
  110. pyenv-virtualenv: no whitespace allowed in virtualenv name.
  111. OUT
  112. }