mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-12 21:43:51 -05:00
Compare commits
6 Commits
master
...
e83e7496fa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e83e7496fa | ||
|
|
6c523f4ce3 | ||
|
|
119c4db68c | ||
|
|
83fae32522 | ||
|
|
96d066e44c | ||
|
|
9f3afd0cfb |
7
.github/workflows/tests.yml
vendored
7
.github/workflows/tests.yml
vendored
@@ -6,11 +6,10 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
- ubuntu-24.04
|
|
||||||
- ubuntu-22.04
|
- ubuntu-22.04
|
||||||
- macos-15
|
- ubuntu-20.04
|
||||||
- macos-14
|
- macos-12
|
||||||
- macos-13
|
- macos-11
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|||||||
45
CHANGELOG.md
45
CHANGELOG.md
@@ -1,50 +1,5 @@
|
|||||||
## Version History
|
## Version History
|
||||||
|
|
||||||
#### 1.2.4
|
|
||||||
* Fix failing to detect `-m venv` when "python" is not provided by the distro by @native-api in https://github.com/pyenv/pyenv-virtualenv/pull/479
|
|
||||||
* README: Remove dollar signs from commands that are meant to be copied by @galonsky in https://github.com/pyenv/pyenv-virtualenv/pull/481
|
|
||||||
* Reflect pyenv-latest switch change in 2.4.8 by @native-api in https://github.com/pyenv/pyenv-virtualenv/pull/484
|
|
||||||
|
|
||||||
#### 1.2.3
|
|
||||||
* Fix: add `colorize` helper by @silverjam in https://github.com/pyenv/pyenv-virtualenv/pull/470
|
|
||||||
* Bump pyenv-virtualenv reporting version to match release by @ushuz in https://github.com/pyenv/pyenv-virtualenv/pull/471
|
|
||||||
* Add fish prompt changing by @romirk in https://github.com/pyenv/pyenv-virtualenv/pull/475
|
|
||||||
* Don't activate if a 3rd-party venv is activated over ours by @native-api in https://github.com/pyenv/pyenv-virtualenv/pull/478
|
|
||||||
|
|
||||||
#### 1.2.2
|
|
||||||
* Prompt removal was never done and is not planned anymore by @native-api in https://github.com/pyenv/pyenv-virtualenv/pull/447
|
|
||||||
* Update PYENV_VIRTUALENV_VERSION by @jack-mcivor in https://github.com/pyenv/pyenv-virtualenv/pull/449
|
|
||||||
* Add activate/deactivate hooks by @joshfrench in https://github.com/pyenv/pyenv-virtualenv/pull/452
|
|
||||||
* More helpful error message when requesting a nonexistent base version by @MarcinKonowalczyk in https://github.com/pyenv/pyenv-virtualenv/pull/454
|
|
||||||
* Add fish install oneliner by @ElijahLynn in https://github.com/pyenv/pyenv-virtualenv/pull/322
|
|
||||||
* Link python*-config into VE by @native-api in https://github.com/pyenv/pyenv-virtualenv/pull/460
|
|
||||||
|
|
||||||
#### 1.2.1
|
|
||||||
* Support prefixes resolved by pyenv-latest as base version names by @native-api in https://github.com/pyenv/pyenv-virtualenv/pull/446
|
|
||||||
|
|
||||||
#### 1.2.0
|
|
||||||
* ~/.*rc should be modified instead of ~/.*profile by @native-api in https://github.com/pyenv/pyenv-virtualenv/pull/384
|
|
||||||
* Fixes #394 - update pyenv virtualenvs to list virtualenvs start with dot prefixes by @Gauravtalreja1 in https://github.com/pyenv/pyenv-virtualenv/pull/395
|
|
||||||
* Fix installation steps to allow for Pyenv 2 by @native-api in https://github.com/pyenv/pyenv-virtualenv/pull/388
|
|
||||||
* Fix get-pip.py URLs for older versions of Python by @jivanf in https://github.com/pyenv/pyenv-virtualenv/pull/403
|
|
||||||
* Add (y/N) prompt help text by @sh-cho in https://github.com/pyenv/pyenv-virtualenv/pull/404
|
|
||||||
* perf(sh-activate): avoid a pyenv-version-name call by @scop in https://github.com/pyenv/pyenv-virtualenv/pull/380
|
|
||||||
* Fix unbound variable errors when running `pyenv activate` with `set -u` Use default empty value. This fixes #422. by @ackalker in https://github.com/pyenv/pyenv-virtualenv/pull/423
|
|
||||||
* Fix another unbound variable error by @ackalker in https://github.com/pyenv/pyenv-virtualenv/pull/424
|
|
||||||
* Update `get-pip.py` URLs in `pyenv-virtualenv` by @mcdonnnj in https://github.com/pyenv/pyenv-virtualenv/pull/426
|
|
||||||
* Deduplicate shims in $PATH for the fish shell during initialization by @ericvw in https://github.com/pyenv/pyenv-virtualenv/pull/430
|
|
||||||
* Upgrade uninstall hook after pyenv/pyenv#2432 by @laggardkernel in https://github.com/pyenv/pyenv-virtualenv/pull/438
|
|
||||||
* Stop delete force failing when virtualenv does not exist by @eganjs in https://github.com/pyenv/pyenv-virtualenv/pull/330
|
|
||||||
* fix: relative path to pyenv-realpath.dylib by @scop in https://github.com/pyenv/pyenv-virtualenv/pull/378
|
|
||||||
* Spelling fixes by @scop in https://github.com/pyenv/pyenv-virtualenv/pull/352
|
|
||||||
* Clone bats with --depth=1, gitignore it by @scop in https://github.com/pyenv/pyenv-virtualenv/pull/351
|
|
||||||
* set -u fixes by @scop in https://github.com/pyenv/pyenv-virtualenv/pull/350
|
|
||||||
* Set up Github Actions CI by @native-api in https://github.com/pyenv/pyenv-virtualenv/pull/440
|
|
||||||
* Enhance documentation about options for `pyenv virtualenv` by @pylipp in https://github.com/pyenv/pyenv-virtualenv/pull/425
|
|
||||||
* Return control to pyenv-uninstall in uninstall/envs.bash by @aiguofer in https://github.com/pyenv/pyenv-virtualenv/pull/321
|
|
||||||
* Use realpath of scripts to determine relative locations by @andrew-christianson in https://github.com/pyenv/pyenv-virtualenv/pull/308
|
|
||||||
* Shell detect improvements by @scop in https://github.com/pyenv/pyenv-virtualenv/pull/377
|
|
||||||
|
|
||||||
#### 1.1.5
|
#### 1.1.5
|
||||||
|
|
||||||
* Fix install script (#290, #302)
|
* Fix install script (#290, #302)
|
||||||
|
|||||||
2
LICENSE
2
LICENSE
@@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2025 Yamashita, Yuu
|
Copyright (c) 2015 Yamashita, Yuu
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
Creating a release
|
|
||||||
==================
|
|
||||||
|
|
||||||
The release of the new version of Pyenv is done via GitHub Releases.
|
|
||||||
|
|
||||||
Release checklist:
|
|
||||||
* Start [drafting a new release on GitHub](https://github.com/pyenv/pyenv-virtualenv/releases) to generate a summary of changes. Save the summary locally.
|
|
||||||
* The summary may need editing. E.g. rephrase entries, delete/merge entries that are too minor or irrelevant to the users (e.g. typo fixes, CI)
|
|
||||||
* Push the version number in `bin/pyenv-virtualenv`
|
|
||||||
* Minor version is pushed if there are significant functional changes (not e.g. bugfixes/formula adaptations/supporting niche use cases).
|
|
||||||
* Major version is pushed if there are breaking changes
|
|
||||||
* Update `CHANGELOG.md` with the new version number and the edited summary (only the changes section), reformatting it like the rest of the changelog sections
|
|
||||||
* Commit the changes locally into `master`
|
|
||||||
* Create a new tag with the new version number and push the changes including the tag
|
|
||||||
* Create a new release on GitHub based on the tag, using the saved summary
|
|
||||||
32
README.md
32
README.md
@@ -28,33 +28,27 @@ From inside that directory you can:
|
|||||||
- Get the latest development release by running `git pull` to download the
|
- Get the latest development release by running `git pull` to download the
|
||||||
latest changes.
|
latest changes.
|
||||||
|
|
||||||
💡 **WSL note:** If you're using WSL, we recommend setting Git to use Unix-style line endings to prevent script execution errors:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git config --global core.autocrlf input
|
|
||||||
```
|
|
||||||
|
|
||||||
1. **Check out pyenv-virtualenv into plugin directory**
|
1. **Check out pyenv-virtualenv into plugin directory**
|
||||||
|
|
||||||
```bash
|
```sh
|
||||||
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
|
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
|
||||||
```
|
```
|
||||||
|
|
||||||
For the Fish shell:
|
For the Fish shell:
|
||||||
|
|
||||||
```fish
|
```sh
|
||||||
git clone https://github.com/pyenv/pyenv-virtualenv.git (pyenv root)/plugins/pyenv-virtualenv
|
$ git clone https://github.com/pyenv/pyenv-virtualenv.git (pyenv root)/plugins/pyenv-virtualenv
|
||||||
```
|
```
|
||||||
|
|
||||||
2. (OPTIONAL) **Add `pyenv virtualenv-init` to your shell** to enable auto-activation of virtualenvs. This is entirely optional but pretty useful. See "Activate virtualenv" below.
|
2. (OPTIONAL) **Add `pyenv virtualenv-init` to your shell** to enable auto-activation of virtualenvs. This is entirely optional but pretty useful. See "Activate virtualenv" below.
|
||||||
|
|
||||||
```bash
|
```sh
|
||||||
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
|
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
|
||||||
```
|
```
|
||||||
|
|
||||||
**Fish shell note**: Add this to your `~/.config/fish/config.fish`
|
**Fish shell note**: Add this to your `~/.config/fish/config.fish`
|
||||||
|
|
||||||
```fish
|
```sh
|
||||||
status --is-interactive; and pyenv virtualenv-init - | source
|
status --is-interactive; and pyenv virtualenv-init - | source
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -62,8 +56,8 @@ git config --global core.autocrlf input
|
|||||||
|
|
||||||
3. **Restart your shell to enable pyenv-virtualenv**
|
3. **Restart your shell to enable pyenv-virtualenv**
|
||||||
|
|
||||||
```bash
|
```sh
|
||||||
exec "$SHELL"
|
$ exec "$SHELL"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
@@ -78,17 +72,17 @@ installed, you will also be able to use the `pyenv virtualenv` command.
|
|||||||
with Homebrew.*
|
with Homebrew.*
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
brew install pyenv-virtualenv
|
$ brew install pyenv-virtualenv
|
||||||
```
|
```
|
||||||
|
|
||||||
Or, if you would like to install the latest development release:
|
Or, if you would like to install the latest development release:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
brew install --HEAD pyenv-virtualenv
|
$ brew install --HEAD pyenv-virtualenv
|
||||||
```
|
```
|
||||||
|
|
||||||
After installation, you'll still need to do
|
After installation, you'll still need to do
|
||||||
[Pyenv shell setup steps](https://github.com/pyenv/pyenv#b-set-up-your-shell-environment-for-pyenv)
|
[Pyenv shell setup steps](https://github.com/pyenv/pyenv#basic-github-checkout)
|
||||||
then add
|
then add
|
||||||
```sh
|
```sh
|
||||||
eval "$(pyenv virtualenv-init -)"
|
eval "$(pyenv virtualenv-init -)"
|
||||||
@@ -105,7 +99,7 @@ To create a virtualenv for the Python version used with pyenv, run
|
|||||||
of the virtualenv directory. For example,
|
of the virtualenv directory. For example,
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
pyenv virtualenv 2.7.10 my-virtual-env-2.7.10
|
$ pyenv virtualenv 2.7.10 my-virtual-env-2.7.10
|
||||||
```
|
```
|
||||||
|
|
||||||
will create a virtualenv based on Python 2.7.10 under `$(pyenv root)/versions` in a
|
will create a virtualenv based on Python 2.7.10 under `$(pyenv root)/versions` in a
|
||||||
|
|||||||
@@ -22,8 +22,10 @@ fi
|
|||||||
|
|
||||||
{ printf "\x1B[31;1m"
|
{ printf "\x1B[31;1m"
|
||||||
echo
|
echo
|
||||||
echo "\`pyenv activate' requires Pyenv and Pyenv-Virtualenv to be loaded into your shell."
|
echo "Failed to activate virtualenv."
|
||||||
echo "Check your shell configuration and Pyenv and Pyenv-Virtualenv installation instructions."
|
echo
|
||||||
|
echo "Perhaps pyenv-virtualenv has not been loaded into your shell properly."
|
||||||
|
echo "Please restart current shell and try again."
|
||||||
echo
|
echo
|
||||||
printf "\x1B[0m"
|
printf "\x1B[0m"
|
||||||
} 1>&2
|
} 1>&2
|
||||||
|
|||||||
@@ -11,8 +11,10 @@ set -e
|
|||||||
|
|
||||||
{ printf "\x1B[31;1m"
|
{ printf "\x1B[31;1m"
|
||||||
echo
|
echo
|
||||||
echo "\`pyenv deactivate' requires Pyenv and Pyenv-Virtualenv to be loaded into your shell."
|
echo "Failed to deactivate virtualenv."
|
||||||
echo "Check your shell configuration and Pyenv and Pyenv-Virtualenv installation instructions."
|
echo
|
||||||
|
echo "Perhaps pyenv-virtualenv has not been loaded into your shell properly."
|
||||||
|
echo "Please restart current shell and try again."
|
||||||
echo
|
echo
|
||||||
printf "\x1B[0m"
|
printf "\x1B[0m"
|
||||||
} 1>&2
|
} 1>&2
|
||||||
|
|||||||
@@ -96,8 +96,8 @@ fi
|
|||||||
venv="${versions}"
|
venv="${versions}"
|
||||||
|
|
||||||
if [ -n "${VIRTUAL_ENV}" ]; then
|
if [ -n "${VIRTUAL_ENV}" ]; then
|
||||||
# exit as success if a non-pyenv virtualenv is active
|
# exit as success if some virtualenv is already activated outside from pyenv-virtualenv
|
||||||
if [[ -z $PYENV_VIRTUAL_ENV || $PYENV_VIRTUAL_ENV != "$VIRTUAL_ENV" ]]; then
|
if [ -z "${PYENV_VIRTUAL_ENV}" ]; then
|
||||||
if [ -z "${FORCE}" ]; then
|
if [ -z "${FORCE}" ]; then
|
||||||
if [ -z "${QUIET}" ]; then
|
if [ -z "${QUIET}" ]; then
|
||||||
echo "pyenv-virtualenv: virtualenv \`${VIRTUAL_ENV}' is already activated" 1>&2
|
echo "pyenv-virtualenv: virtualenv \`${VIRTUAL_ENV}' is already activated" 1>&2
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# -u/--upgrade Imply --force
|
# -u/--upgrade Imply --force
|
||||||
#
|
#
|
||||||
|
|
||||||
PYENV_VIRTUALENV_VERSION="1.2.4"
|
PYENV_VIRTUALENV_VERSION="1.2.2"
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
[ -n "$PYENV_DEBUG" ] && set -x
|
[ -n "$PYENV_DEBUG" ] && set -x
|
||||||
@@ -155,17 +155,9 @@ detect_venv() {
|
|||||||
if [ -x "${prefix}/bin/virtualenv" ]; then
|
if [ -x "${prefix}/bin/virtualenv" ]; then
|
||||||
HAS_VIRTUALENV=1
|
HAS_VIRTUALENV=1
|
||||||
fi
|
fi
|
||||||
local python
|
|
||||||
local -a pythons
|
|
||||||
if [[ $PYENV_VERSION == "system" ]]; then
|
|
||||||
# Prefer `python3.x` executable if available (#206, #282)
|
# Prefer `python3.x` executable if available (#206, #282)
|
||||||
pythons=("python3" "python" "python2")
|
local python
|
||||||
else
|
for python in "python${PYENV_VERSION%.*}" "python${PYENV_VERSION%%.*}" "python"; do
|
||||||
# as per PEP 394, custom activated Python environments should provide the "python" command
|
|
||||||
# this includes Pyenv-provided installations
|
|
||||||
pythons=("python")
|
|
||||||
fi
|
|
||||||
for python in "${pythons[@]}"; do
|
|
||||||
if pyenv-exec "${python}" -m venv --help 1>/dev/null 2>&1; then
|
if pyenv-exec "${python}" -m venv --help 1>/dev/null 2>&1; then
|
||||||
HAS_M_VENV=1
|
HAS_M_VENV=1
|
||||||
M_VENV_PYTHON_BIN="${python}"
|
M_VENV_PYTHON_BIN="${python}"
|
||||||
@@ -325,7 +317,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -n "${VERSION_NAME}" ]] && command -v pyenv-latest >/dev/null; then
|
if [[ -n "${VERSION_NAME}" ]] && command -v pyenv-latest >/dev/null; then
|
||||||
VERSION_NAME="$(pyenv-latest -f "${VERSION_NAME}")"
|
VERSION_NAME="$(pyenv-latest -q "${VERSION_NAME}" || echo "${VERSION_NAME}")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "${VERSION_NAME}" ] || [ -z "${VIRTUALENV_NAME}" ]; then
|
if [ -z "${VERSION_NAME}" ] || [ -z "${VIRTUALENV_NAME}" ]; then
|
||||||
@@ -605,13 +597,7 @@ STATUS=0
|
|||||||
mkdir -p "${PYENV_VIRTUALENV_CACHE_PATH}"
|
mkdir -p "${PYENV_VIRTUALENV_CACHE_PATH}"
|
||||||
cd "${PYENV_VIRTUALENV_CACHE_PATH}"
|
cd "${PYENV_VIRTUALENV_CACHE_PATH}"
|
||||||
if [ -n "${USE_CONDA}" ]; then
|
if [ -n "${USE_CONDA}" ]; then
|
||||||
if [ -z "$VIRTUALENV_PYTHON" ]; then
|
pyenv-exec conda create $QUIET $VERBOSE --name "${VIRTUALENV_PATH##*/}" --yes "${VIRTUALENV_OPTIONS[@]}" python || STATUS="$?"
|
||||||
#process substitution doesn't seem to work unless it's directly inserted to the command line
|
|
||||||
#if we add it to VIRTUALENV_OPTIONS instead, "broken pipe" happens
|
|
||||||
pyenv-exec conda create $QUIET $VERBOSE --name "${VIRTUALENV_PATH##*/}" --yes "${VIRTUALENV_OPTIONS[@]}" --file <(pyenv-exec conda list python --full-name --export) || STATUS="$?"
|
|
||||||
else
|
|
||||||
pyenv-exec conda create $QUIET $VERBOSE --name "${VIRTUALENV_PATH##*/}" --yes "${VIRTUALENV_OPTIONS[@]}" || STATUS="$?"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
if [ -n "${USE_M_VENV}" ]; then
|
if [ -n "${USE_M_VENV}" ]; then
|
||||||
pyenv-exec "${M_VENV_PYTHON_BIN:-python}" -m venv $QUIET $VERBOSE "${VIRTUALENV_OPTIONS[@]}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
pyenv-exec "${M_VENV_PYTHON_BIN:-python}" -m venv $QUIET $VERBOSE "${VIRTUALENV_OPTIONS[@]}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
||||||
@@ -631,8 +617,7 @@ fi
|
|||||||
|
|
||||||
## Create symlink in the `versions` directory for backward compatibility
|
## Create symlink in the `versions` directory for backward compatibility
|
||||||
if [ -d "${VIRTUALENV_PATH}" ] && [ -n "${COMPAT_VIRTUALENV_PATH}" ]; then
|
if [ -d "${VIRTUALENV_PATH}" ] && [ -n "${COMPAT_VIRTUALENV_PATH}" ]; then
|
||||||
# Overwrite an existing link, can happen if running with -f
|
ln -fs "${VIRTUALENV_PATH}" "${COMPAT_VIRTUALENV_PATH}"
|
||||||
ln -fsn "${VIRTUALENV_PATH}" "${COMPAT_VIRTUALENV_PATH}"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -e "${VIRTUALENV_PATH}/bin/pydoc" ]; then
|
if [ ! -e "${VIRTUALENV_PATH}/bin/pydoc" ]; then
|
||||||
|
|||||||
@@ -465,34 +465,6 @@ EOS
|
|||||||
unstub pyenv-prefix
|
unstub pyenv-prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "do nothing if a 3rd-party virtualenv is active" {
|
|
||||||
export PYENV_VIRTUALENV_INIT=1
|
|
||||||
export VIRTUAL_ENV="${TMP}/venv-3rd-party"
|
|
||||||
unset PYENV_VIRTUAL_ENV
|
|
||||||
|
|
||||||
PYENV_SHELL="bash" run pyenv-sh-activate "venv"
|
|
||||||
|
|
||||||
assert_success
|
|
||||||
assert_output <<EOS
|
|
||||||
pyenv-virtualenv: virtualenv \`${TMP}/venv-3rd-party' is already activated
|
|
||||||
true
|
|
||||||
EOS
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "do nothing if a 3rd-party virtualenv is active over ours" {
|
|
||||||
export PYENV_VIRTUALENV_INIT=1
|
|
||||||
export VIRTUAL_ENV="${TMP}/venv-3rd-party"
|
|
||||||
export PYENV_VIRTUAL_ENV="${PYENV_ROOT}/versions/venv"
|
|
||||||
|
|
||||||
PYENV_SHELL="bash" run pyenv-sh-activate "venv"
|
|
||||||
|
|
||||||
assert_success
|
|
||||||
assert_output <<EOS
|
|
||||||
pyenv-virtualenv: virtualenv \`${TMP}/venv-3rd-party' is already activated
|
|
||||||
true
|
|
||||||
EOS
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "should fail if activate is invoked as a command" {
|
@test "should fail if activate is invoked as a command" {
|
||||||
run pyenv-activate
|
run pyenv-activate
|
||||||
|
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ unstub_pyenv() {
|
|||||||
run pyenv-virtualenv venv
|
run pyenv-virtualenv venv
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output_wildcards <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=miniconda3-3.16.0 conda create --name venv --yes --file /dev/fd/*
|
PYENV_VERSION=miniconda3-3.16.0 conda create --name venv --yes python
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ OUT
|
|||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=miniconda3-3.16.0 conda create --name venv --yes python=3.5
|
PYENV_VERSION=miniconda3-3.16.0 conda create --name venv --yes python=3.5 python
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ OUT
|
|||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=miniconda3-3.16.0 conda create --name venv --yes python=3.5
|
PYENV_VERSION=miniconda3-3.16.0 conda create --name venv --yes python=3.5 python
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
|
|||||||
@@ -25,15 +25,15 @@ unstub_pyenv() {
|
|||||||
stub pyenv-version-name "echo '${PYENV_VERSION}'"
|
stub pyenv-version-name "echo '${PYENV_VERSION}'"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
stub pyenv-exec "python -m venv --help : true"
|
stub pyenv-exec "python3.5 -m venv --help : true"
|
||||||
stub pyenv-exec "python -m venv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/3.5.1/envs/venv/bin"
|
stub pyenv-exec "python3.5 -m venv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/3.5.1/envs/venv/bin"
|
||||||
stub pyenv-exec "python -s -m ensurepip : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/3.5.1/envs/venv/bin/pip"
|
stub pyenv-exec "python -s -m ensurepip : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/3.5.1/envs/venv/bin/pip"
|
||||||
|
|
||||||
run pyenv-virtualenv venv
|
run pyenv-virtualenv venv
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.5.1 python -m venv ${PYENV_ROOT}/versions/3.5.1/envs/venv
|
PYENV_VERSION=3.5.1 python3.5 -m venv ${PYENV_ROOT}/versions/3.5.1/envs/venv
|
||||||
PYENV_VERSION=3.5.1/envs/venv python -s -m ensurepip
|
PYENV_VERSION=3.5.1/envs/venv python -s -m ensurepip
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ OUT
|
|||||||
create_executable "3.5.1" "virtualenv"
|
create_executable "3.5.1" "virtualenv"
|
||||||
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.5.1'"
|
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.5.1'"
|
||||||
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.5.1'"
|
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.5.1'"
|
||||||
stub pyenv-exec "python -m venv --help : true"
|
stub pyenv-exec "python3.5 -m venv --help : true"
|
||||||
stub pyenv-hooks "virtualenv : echo '$HOOK_PATH'/virtualenv.bash"
|
stub pyenv-hooks "virtualenv : echo '$HOOK_PATH'/virtualenv.bash"
|
||||||
stub pyenv-exec "echo PYENV_VERSION=3.5.1 \"\$@\""
|
stub pyenv-exec "echo PYENV_VERSION=3.5.1 \"\$@\""
|
||||||
stub pyenv-exec "echo PYENV_VERSION=3.5.1 \"\$@\""
|
stub pyenv-exec "echo PYENV_VERSION=3.5.1 \"\$@\""
|
||||||
|
|||||||
@@ -26,16 +26,15 @@ unstub_pyenv() {
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
stub pyenv-exec "python -m venv --help : true"
|
stub pyenv-exec "python3.5 -m venv --help : true"
|
||||||
stub pyenv-exec "python -m venv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/3.5.1/envs/venv/bin"
|
stub pyenv-exec "python3.5 -m venv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/3.5.1/envs/venv/bin"
|
||||||
stub pyenv-exec "python -s -m ensurepip : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/3.5.1/envs/venv/bin/pip"
|
stub pyenv-exec "python -s -m ensurepip : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/3.5.1/envs/venv/bin/pip"
|
||||||
|
|
||||||
run pyenv-virtualenv venv
|
run pyenv-virtualenv venv
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.5.1 python -m venv ${TMP}/pyenv/versions/3.5.1/envs/venv
|
PYENV_VERSION=3.5.1 python3.5 -m venv ${PYENV_ROOT}/versions/3.5.1/envs/venv
|
||||||
PYENV_VERSION=3.5.1/envs/venv python -s -m ensurepip
|
PYENV_VERSION=3.5.1/envs/venv python -s -m ensurepip
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
@@ -53,8 +52,8 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
stub pyenv-exec "python -m venv --help : true"
|
stub pyenv-exec "python3.3 -m venv --help : true"
|
||||||
stub pyenv-exec "python -m venv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/3.3.6/envs/venv/bin"
|
stub pyenv-exec "python3.3 -m venv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";mkdir -p \${PYENV_ROOT}/versions/3.3.6/envs/venv/bin"
|
||||||
stub pyenv-exec "python -s -m ensurepip : false"
|
stub pyenv-exec "python -s -m ensurepip : false"
|
||||||
stub pyenv-exec "python -s */get-pip.py : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/3.3.6/envs/venv/bin/pip"
|
stub pyenv-exec "python -s */get-pip.py : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\";touch \${PYENV_ROOT}/versions/3.3.6/envs/venv/bin/pip"
|
||||||
stub curl true
|
stub curl true
|
||||||
@@ -63,7 +62,7 @@ OUT
|
|||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.3.6 python -m venv ${PYENV_ROOT}/versions/3.3.6/envs/venv
|
PYENV_VERSION=3.3.6 python3.3 -m venv ${PYENV_ROOT}/versions/3.3.6/envs/venv
|
||||||
Installing pip from https://bootstrap.pypa.io/pip/3.3/get-pip.py...
|
Installing pip from https://bootstrap.pypa.io/pip/3.3/get-pip.py...
|
||||||
PYENV_VERSION=3.3.6/envs/venv python -s ${TMP}/pyenv/cache/get-pip.py
|
PYENV_VERSION=3.3.6/envs/venv python -s ${TMP}/pyenv/cache/get-pip.py
|
||||||
rehashed
|
rehashed
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ teardown() {
|
|||||||
create_executable "2.7.8" "python2.7"
|
create_executable "2.7.8" "python2.7"
|
||||||
remove_executable "2.7.9" "python2.7"
|
remove_executable "2.7.9" "python2.7"
|
||||||
|
|
||||||
|
stub pyenv-exec "python2.7 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python2 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "virtualenv --verbose * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv --verbose * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : true"
|
stub pyenv-exec "python -s -m ensurepip : true"
|
||||||
@@ -40,13 +42,13 @@ teardown() {
|
|||||||
|
|
||||||
run pyenv-virtualenv --verbose --python=python2.7 venv
|
run pyenv-virtualenv --verbose --python=python2.7 venv
|
||||||
|
|
||||||
unstub pyenv-exec
|
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=2.7.8 virtualenv --verbose --python=${PYENV_ROOT}/versions/2.7.8/bin/python2.7 ${PYENV_ROOT}/versions/2.7.8/envs/venv
|
PYENV_VERSION=2.7.8 virtualenv --verbose --python=${PYENV_ROOT}/versions/2.7.8/bin/python2.7 ${PYENV_ROOT}/versions/2.7.8/envs/venv
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
unstub pyenv-which
|
unstub pyenv-which
|
||||||
|
unstub pyenv-exec
|
||||||
|
|
||||||
remove_executable "2.7.7" "python2.7"
|
remove_executable "2.7.7" "python2.7"
|
||||||
remove_executable "2.7.8" "python2.7"
|
remove_executable "2.7.8" "python2.7"
|
||||||
@@ -58,6 +60,8 @@ OUT
|
|||||||
remove_executable "2.7.8" "python2.7"
|
remove_executable "2.7.8" "python2.7"
|
||||||
create_executable "2.7.9" "python2.7"
|
create_executable "2.7.9" "python2.7"
|
||||||
|
|
||||||
|
stub pyenv-exec "python2.7 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python2 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "virtualenv --verbose * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv --verbose * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : true"
|
stub pyenv-exec "python -s -m ensurepip : true"
|
||||||
|
|||||||
@@ -26,14 +26,14 @@ unstub_pyenv() {
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
stub pyenv-exec "python -m venv --help : true"
|
stub pyenv-exec "python3.5 -m venv --help : true"
|
||||||
stub pyenv-exec "python -m venv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "python3.5 -m venv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : true"
|
stub pyenv-exec "python -s -m ensurepip : true"
|
||||||
|
|
||||||
run pyenv-virtualenv venv
|
run pyenv-virtualenv venv
|
||||||
|
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
PYENV_VERSION=3.5.1 python -m venv ${PYENV_ROOT}/versions/3.5.1/envs/venv
|
PYENV_VERSION=3.5.1 python3.5 -m venv ${PYENV_ROOT}/versions/3.5.1/envs/venv
|
||||||
rehashed
|
rehashed
|
||||||
OUT
|
OUT
|
||||||
assert [ -x "${PYENV_ROOT}/versions/3.5.1/envs/venv/bin/pydoc" ]
|
assert [ -x "${PYENV_ROOT}/versions/3.5.1/envs/venv/bin/pydoc" ]
|
||||||
@@ -52,7 +52,7 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
stub pyenv-exec "python -m venv --help : true"
|
stub pyenv-exec "python3.5 -m venv --help : true"
|
||||||
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : true"
|
stub pyenv-exec "python -s -m ensurepip : true"
|
||||||
|
|
||||||
@@ -77,6 +77,8 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
|
stub pyenv-exec "python3.2 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python3 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "pip install virtualenv* : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv* : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
@@ -103,7 +105,7 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
stub pyenv-exec "python -m venv --help : true"
|
stub pyenv-exec "python3.5 -m venv --help : true"
|
||||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : true"
|
stub pyenv-exec "python -s -m ensurepip : true"
|
||||||
@@ -130,7 +132,7 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
stub pyenv-exec "python -m venv --help : true"
|
stub pyenv-exec "python3.5 -m venv --help : true"
|
||||||
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : true"
|
stub pyenv-exec "python -s -m ensurepip : true"
|
||||||
@@ -157,6 +159,8 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
stub pyenv-prefix " : echo '${PYENV_ROOT}/versions/${PYENV_VERSION}'"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
|
stub pyenv-exec "python3.2 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python3 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "pip install virtualenv* : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "pip install virtualenv* : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "virtualenv * : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv * : echo PIP_REQUIRE_VENV=\${PIP_REQUIRE_VENV} PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
|
|||||||
@@ -11,10 +11,11 @@ _STUB_RUN="${PROGRAM}_STUB_RUN"
|
|||||||
_STUB_INDEX="${PROGRAM}_STUB_INDEX"
|
_STUB_INDEX="${PROGRAM}_STUB_INDEX"
|
||||||
_STUB_RESULT="${PROGRAM}_STUB_RESULT"
|
_STUB_RESULT="${PROGRAM}_STUB_RESULT"
|
||||||
_STUB_END="${PROGRAM}_STUB_END"
|
_STUB_END="${PROGRAM}_STUB_END"
|
||||||
_STUB_LOG="${PROGRAM}_STUB_LOG"
|
_STUB_DEBUG="${PROGRAM}_STUB_DEBUG"
|
||||||
|
|
||||||
[ -n "${!_STUB_LOG}" ] || eval "${_STUB_LOG}"="${TMPDIR}/${program}-stub-log"
|
if [ -n "${!_STUB_DEBUG}" ]; then
|
||||||
if test -z "${!_STUB_END}"; then echo "$program" "$@" >>"${!_STUB_LOG}"; fi
|
echo "$program" "$@" >&${!_STUB_DEBUG}
|
||||||
|
fi
|
||||||
|
|
||||||
[ -e "${!_STUB_PLAN}" ] || exit 1
|
[ -e "${!_STUB_PLAN}" ] || exit 1
|
||||||
[ -n "${!_STUB_RUN}" ] || eval "${_STUB_RUN}"="${TMPDIR}/${program}-stub-run"
|
[ -n "${!_STUB_RUN}" ] || eval "${_STUB_RUN}"="${TMPDIR}/${program}-stub-run"
|
||||||
@@ -23,7 +24,7 @@ if test -z "${!_STUB_END}"; then echo "$program" "$@" >>"${!_STUB_LOG}"; fi
|
|||||||
# Initialize or load the stub run information.
|
# Initialize or load the stub run information.
|
||||||
eval "${_STUB_INDEX}"=1
|
eval "${_STUB_INDEX}"=1
|
||||||
eval "${_STUB_RESULT}"=0
|
eval "${_STUB_RESULT}"=0
|
||||||
if test -e "${!_STUB_RUN}"; then source "${!_STUB_RUN}"; fi
|
[ ! -e "${!_STUB_RUN}" ] || source "${!_STUB_RUN}"
|
||||||
|
|
||||||
|
|
||||||
# Loop over each line in the plan.
|
# Loop over each line in the plan.
|
||||||
@@ -79,26 +80,14 @@ done < "${!_STUB_PLAN}"
|
|||||||
|
|
||||||
|
|
||||||
if [ -n "${!_STUB_END}" ]; then
|
if [ -n "${!_STUB_END}" ]; then
|
||||||
|
# Clean up the run file.
|
||||||
|
rm -f "${!_STUB_RUN}"
|
||||||
|
|
||||||
# If the number of lines in the plan is larger than
|
# If the number of lines in the plan is larger than
|
||||||
# the requested index, we failed.
|
# the requested index, we failed.
|
||||||
if [ $index -ge "${!_STUB_INDEX}" ]; then
|
if [ $index -ge "${!_STUB_INDEX}" ]; then
|
||||||
eval "${_STUB_RESULT}"=1
|
eval "${_STUB_RESULT}"=1
|
||||||
fi
|
fi
|
||||||
if [ "${!_STUB_RESULT}" -ne 0 ]; then
|
|
||||||
{
|
|
||||||
echo "index: $index; stub index: ${!_STUB_INDEX}"
|
|
||||||
echo "plan:"
|
|
||||||
cat "${!_STUB_PLAN}" || true
|
|
||||||
echo "run:"
|
|
||||||
cat "${!_STUB_RUN}" || true
|
|
||||||
echo "log:"
|
|
||||||
cat "${!_STUB_LOG}" || true
|
|
||||||
} >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clean up the run file.
|
|
||||||
rm -f "${!_STUB_RUN}"
|
|
||||||
rm -f "${!_STUB_LOG}"
|
|
||||||
|
|
||||||
# Return the result.
|
# Return the result.
|
||||||
exit "${!_STUB_RESULT}"
|
exit "${!_STUB_RESULT}"
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ stub() {
|
|||||||
|
|
||||||
export "${prefix}_STUB_PLAN"="${TMP}/${program}-stub-plan"
|
export "${prefix}_STUB_PLAN"="${TMP}/${program}-stub-plan"
|
||||||
export "${prefix}_STUB_RUN"="${TMP}/${program}-stub-run"
|
export "${prefix}_STUB_RUN"="${TMP}/${program}-stub-run"
|
||||||
export "${prefix}_STUB_LOG"="${TMP}/${program}-stub-log"
|
|
||||||
export "${prefix}_STUB_END"=
|
export "${prefix}_STUB_END"=
|
||||||
|
|
||||||
mkdir -p "${TMP}/bin"
|
mkdir -p "${TMP}/bin"
|
||||||
@@ -83,16 +82,6 @@ assert_equal() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_equal_wildcards() {
|
|
||||||
if [[ $1 != $2 ]]; then
|
|
||||||
{ echo "expected:"
|
|
||||||
echo "$2"
|
|
||||||
echo "actual:"
|
|
||||||
echo "$1"
|
|
||||||
} | flunk
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
assert_output() {
|
assert_output() {
|
||||||
local expected
|
local expected
|
||||||
if [ $# -eq 0 ]; then expected="$(cat -)"
|
if [ $# -eq 0 ]; then expected="$(cat -)"
|
||||||
@@ -101,14 +90,6 @@ assert_output() {
|
|||||||
assert_equal "$expected" "$output"
|
assert_equal "$expected" "$output"
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_output_wildcards() {
|
|
||||||
local expected
|
|
||||||
if [ $# -eq 0 ]; then expected="$(cat -)"
|
|
||||||
else expected="$1"
|
|
||||||
fi
|
|
||||||
assert_equal_wildcards "$output" "$expected"
|
|
||||||
}
|
|
||||||
|
|
||||||
assert_output_contains() {
|
assert_output_contains() {
|
||||||
local expected="$1"
|
local expected="$1"
|
||||||
echo "$output" | grep -F "$expected" >/dev/null || {
|
echo "$output" | grep -F "$expected" >/dev/null || {
|
||||||
@@ -189,4 +170,3 @@ setup_conda() {
|
|||||||
teardown_conda() {
|
teardown_conda() {
|
||||||
rm -fr "${PYENV_ROOT}/versions/$1"
|
rm -fr "${PYENV_ROOT}/versions/$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ setup() {
|
|||||||
setup_virtualenv "2.7.7"
|
setup_virtualenv "2.7.7"
|
||||||
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/2.7.7'"
|
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/2.7.7'"
|
||||||
stub pyenv-version-name "echo 2.7.7"
|
stub pyenv-version-name "echo 2.7.7"
|
||||||
|
stub pyenv-exec "python2.7 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python2 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "virtualenv --version : echo \"1.11\""
|
stub pyenv-exec "virtualenv --version : echo \"1.11\""
|
||||||
|
|
||||||
@@ -27,12 +29,12 @@ setup() {
|
|||||||
setup_m_venv "3.4.1"
|
setup_m_venv "3.4.1"
|
||||||
stub pyenv-version-name "echo 3.4.1"
|
stub pyenv-version-name "echo 3.4.1"
|
||||||
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.4.1'"
|
stub pyenv-prefix "echo '${PYENV_ROOT}/versions/3.4.1'"
|
||||||
stub pyenv-exec "python -m venv --help : true"
|
stub pyenv-exec "python3.4 -m venv --help : true"
|
||||||
|
|
||||||
run pyenv-virtualenv --version
|
run pyenv-virtualenv --version
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
[[ "$output" == "pyenv-virtualenv "?.?.?" (python -m venv)" ]]
|
[[ "$output" == "pyenv-virtualenv "?.?.?" (python3.4 -m venv)" ]]
|
||||||
|
|
||||||
unstub pyenv-prefix
|
unstub pyenv-prefix
|
||||||
teardown_m_venv "3.4.1"
|
teardown_m_venv "3.4.1"
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ unstub_pyenv() {
|
|||||||
export PYENV_VERSION="2.7.11"
|
export PYENV_VERSION="2.7.11"
|
||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
|
stub pyenv-exec "python2.7 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python2 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"; mkdir -p \"\$2/bin\""
|
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\"; mkdir -p \"\$2/bin\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : false"
|
stub pyenv-exec "python -s -m ensurepip : false"
|
||||||
@@ -56,12 +58,14 @@ OUT
|
|||||||
@test "create virtualenv from a given prefix" {
|
@test "create virtualenv from a given prefix" {
|
||||||
stub_pyenv "2.7.11"
|
stub_pyenv "2.7.11"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
|
stub pyenv-exec "python2.7 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python2 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : false"
|
stub pyenv-exec "python -s -m ensurepip : false"
|
||||||
stub pyenv-exec "python -s */get-pip.py : true"
|
stub pyenv-exec "python -s */get-pip.py : true"
|
||||||
stub curl true
|
stub curl true
|
||||||
stub pyenv-latest "-f 2.7 : echo 2.7.11"
|
stub pyenv-latest "-q 2.7 : echo 2.7.11"
|
||||||
|
|
||||||
run pyenv-virtualenv "2.7" "venv"
|
run pyenv-virtualenv "2.7" "venv"
|
||||||
|
|
||||||
@@ -85,6 +89,8 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
|
stub pyenv-exec "python2.7 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python2 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : false"
|
stub pyenv-exec "python -s -m ensurepip : false"
|
||||||
@@ -113,6 +119,8 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
|
stub pyenv-exec "python2.7 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python2 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : false"
|
stub pyenv-exec "python -s -m ensurepip : false"
|
||||||
@@ -141,6 +149,8 @@ OUT
|
|||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
stub pyenv-version-name "echo \${PYENV_VERSION}"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
|
stub pyenv-exec "python2.7 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python2 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : false"
|
stub pyenv-exec "python -s -m ensurepip : false"
|
||||||
@@ -204,6 +214,8 @@ OUT
|
|||||||
export PYENV_VERSION="2.7.11"
|
export PYENV_VERSION="2.7.11"
|
||||||
stub_pyenv "${PYENV_VERSION}"
|
stub_pyenv "${PYENV_VERSION}"
|
||||||
stub pyenv-virtualenv-prefix " : false"
|
stub pyenv-virtualenv-prefix " : false"
|
||||||
|
stub pyenv-exec "python2.7 -m venv --help : false"
|
||||||
|
stub pyenv-exec "python2 -m venv --help : false"
|
||||||
stub pyenv-exec "python -m venv --help : false"
|
stub pyenv-exec "python -m venv --help : false"
|
||||||
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
stub pyenv-exec "virtualenv * : echo PYENV_VERSION=\${PYENV_VERSION} \"\$@\""
|
||||||
stub pyenv-exec "python -s -m ensurepip : false"
|
stub pyenv-exec "python -s -m ensurepip : false"
|
||||||
|
|||||||
Reference in New Issue
Block a user