Skip to content

Commit c23e57b

Browse files
committed
Fix test and pipeline definitions
- Update extras name in pipelines - fix windows virtualenv calls - don't write debug info during virtualenv creation and just move on - Generalize some pipelines - Use quotes around evaluated statements in pipeline - Fix envvar references - Update vistir: - fix stream wrapper on windows - fix ICACLS permissions handler - fix path normalization function - Update azure venv creation script - Fix vendoring script Signed-off-by: Dan Ryan <dan@danryan.co>
1 parent cd4d8f2 commit c23e57b

23 files changed

+261
-109
lines changed

.azure-pipelines/steps/create-virtualenv-linux.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ steps:
99
echo "Path $PATH"
1010
echo "Installing Pipenv…"
1111
pipenv install --deploy --dev
12-
pipenv run pip install -e "$(pwd)[test]" --upgrade
12+
pipenv run pip install -e "$(pwd)[tests]" --upgrade
1313
echo pipenv --venv && echo pipenv --py && echo pipenv run python --version
1414
displayName: Make Virtualenv
15+
env:
16+
PYTHONWARNINGS: 'ignore:DEPRECATION'
Lines changed: 58 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,62 @@
11
steps:
22

3+
- script: |
4+
echo "##vso[task.setvariable variable=LANG]C.UTF-8"
5+
echo "##vso[task.setvariable variable=PIP_PROCESS_DEPENDENCY_LINKS]1"
6+
displayName: Set Environment Variables
7+
38
- powershell: |
4-
$env:PY_EXE=$(python -c "import sys; print(sys.executable)")
5-
if (!$env:PY_EXE) {
6-
$env:PY_EXE="python"
7-
}
8-
Write-Host "##vso[task.setvariable variable=PY_EXE]$env:PY_EXE"
9-
Write-Host "Found Python: $env:PY_EXE"
10-
Invoke-Expression "& '$env:PY_EXE' -m virtualenv D:\.venv"
11-
Write-Host "##vso[task.setvariable variable=VIRTUAL_ENV]D:\.venv"
12-
Invoke-Expression "& 'D:\.venv\Scripts\activate.ps1'"
13-
$env:VIRTUAL_ENV="D:\.venv"
14-
Write-Host "Installing local package..."
15-
Invoke-Expression "& '$env:PY_EXE' -m pip install -e .[test] --upgrade"
16-
Write-Host "upgrading local package in virtual env"
17-
$venv_scripts = Join-Path -path D:\.venv -childpath Scripts
18-
$venv_py = Join-Path -path $venv_scripts -childpath python.exe
19-
Write-Host "##vso[task.setvariable variable=VIRTUAL_ENV_PY]$venv_py"
20-
Invoke-Expression "& '$venv_py' -m pip install -e .[test] --upgrade"
21-
Write-Host "Installing pipenv development packages"
22-
Invoke-Expression "& '$venv_py' -m pipenv install --dev"
23-
Write-Host "Installing local package in pipenv environment"
24-
Invoke-Expression "& '$venv_py' -m pipenv run pip install -e .[test]"
25-
Write-Host "Printing metadata"
26-
Write-Host $(Invoke-Expression "& '$venv_py' -m pipenv --venv")
27-
Write-Host $(Invoke-Expression "& '$venv_py' -m pipenv --py")
28-
Write-Host $(Invoke-Expression "& '$venv_py' -m pipenv run python --version")
29-
displayName: Make Virtualenv
9+
pip install certifi
10+
$env:PYTHON_PATH=$(python -c "import sys; print(sys.executable)")
11+
$env:CERTIFI_CONTENT=$(python -m certifi)
12+
echo "##vso[task.setvariable variable=GIT_SSL_CAINFO]$env:CERTIFI_CONTENT"
13+
echo "##vso[task.setvariable variable=PY_EXE]$env:PYTHON_PATH"
14+
displayName: Set Python Path
15+
env:
16+
PYTHONWARNINGS: 'ignore:DEPRECATION'
17+
18+
- script: |
19+
echo "Python path: $(PY_EXE)"
20+
echo "GIT_SSL_CAINFO: $(GIT_SSL_CAINFO)"
21+
$(PY_EXE) -m pipenv install --deploy --dev
3022
env:
31-
PIPENV_DEFAULT_PYTHON_VERSION: $(PIPENV_DEFAULT_PYTHON_VERSION)
23+
PIPENV_DEFAULT_PYTHON_VERSION: '$(PIPENV_DEFAULT_PYTHON_VERSION)'
24+
PYTHONWARNINGS: 'ignore:DEPRECATION'
25+
PIPENV_NOSPIN: '1'
26+
displayName: Make Virtualenv
27+
28+
# steps:
29+
30+
# - powershell: |
31+
# $env:PY_EXE=$(python -c "import sys; print(sys.executable)")
32+
# if (!$env:PY_EXE) {
33+
# $env:PY_EXE="python"
34+
# }
35+
# Write-Host "##vso[task.setvariable variable=PY_EXE]$env:PY_EXE"
36+
# Write-Host "Found Python: $env:PY_EXE"
37+
# Invoke-Expression "& '$env:PY_EXE' -m virtualenv D:\.venv"
38+
# Write-Host "##vso[task.setvariable variable=VIRTUAL_ENV]D:\.venv"
39+
# Invoke-Expression "& 'D:\.venv\Scripts\activate.ps1'"
40+
# $env:VIRTUAL_ENV="D:\.venv"
41+
# Write-Host "Installing local package..."
42+
# Invoke-Expression "& '$env:PY_EXE' -m pip install -e .[tests] requests --upgrade"
43+
# Write-Host "upgrading local package in virtual env"
44+
# $venv_scripts = Join-Path -path D:\.venv -childpath Scripts
45+
# $venv_py = Join-Path -path $venv_scripts -childpath python.exe
46+
# Write-Host "##vso[task.setvariable variable=VIRTUAL_ENV_PY]$venv_py"
47+
# Invoke-Expression "& '$venv_py' -m pip install -e .[tests] requests --upgrade" 2>&1
48+
# Write-Host "Installing pipenv development packages"
49+
# Invoke-Expression "& '$venv_py' -m pipenv install --dev" 2>&1
50+
# # Write-Host "Installing local package in pipenv environment"
51+
# # Invoke-Expression "& '$venv_py' -m pipenv run pip install -e .[tests] requests" 2>&1
52+
# # Write-Host "Printing metadata"
53+
# # Write-Host $(Invoke-Expression "& '$venv_py' -m pipenv --venv" 2>&1)
54+
# # Write-Host $(Invoke-Expression "& '$venv_py' -m pipenv --py" 2>&1)
55+
# # Write-Host $(Invoke-Expression "& '$venv_py' -m pipenv run python --version" 2>&1)
56+
# displayName: Make Virtualenv
57+
# failOnStderr: false
58+
# env:
59+
# PIPENV_DEFAULT_PYTHON_VERSION: $(PIPENV_DEFAULT_PYTHON_VERSION)
60+
# PYTHONWARNINGS: 'ignore:DEPRECATION'
61+
# PIPENV_VERBOSITY: '-1'
62+
# PIPENV_NOSPIN: '1'
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
steps:
2+
3+
- script: |
4+
echo "##vso[task.setvariable variable=LANG]C.UTF-8"
5+
echo "##vso[task.setvariable variable=PIP_PROCESS_DEPENDENCY_LINKS]1"
6+
displayName: Set Environment Variables
7+
8+
- ${{ if eq(parameters.vmImage, 'windows-2019') }}:
9+
- powershell: |
10+
pip install certifi
11+
$env:PYTHON_PATH=$(python -c "import sys; print(sys.executable)")
12+
$env:CERTIFI_CONTENT=$(python -m certifi)
13+
echo "##vso[task.setvariable variable=GIT_SSL_CAINFO]$env:CERTIFI_CONTENT"
14+
echo "##vso[task.setvariable variable=PY_EXE]$env:PYTHON_PATH"
15+
displayName: Set Python Path
16+
env:
17+
PYTHONWARNINGS: 'ignore:DEPRECATION'
18+
- ${{ if ne(parameters.vmImage, 'windows-2019') }}:
19+
- bash: |
20+
pip install certifi
21+
PYTHON_PATH=$(python -c 'import sys; print(sys.executable)')
22+
CERTIFI_CONTENT=$(python -m certifi)
23+
echo "##vso[task.setvariable variable=GIT_SSL_CAINFO]$CERTIFI_CONTENT"
24+
echo "##vso[task.setvariable variable=PY_EXE]$PYTHON_PATH"
25+
displayName: Set Python Path
26+
env:
27+
PYTHONWARNINGS: 'ignore:DEPRECATION'
28+
29+
- script: |
30+
echo "Python path: $(PY_EXE)"
31+
echo "GIT_SSL_CAINFO: $(GIT_SSL_CAINFO)"
32+
$(PY_EXE) -m pipenv install --deploy --dev
33+
env:
34+
PIPENV_DEFAULT_PYTHON_VERSION: '$(PIPENV_DEFAULT_PYTHON_VERSION)'
35+
PYTHONWARNINGS: 'ignore:DEPRECATION'
36+
PIPENV_NOSPIN: '1'
37+
displayName: Make Virtualenv
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
steps:
22
- script: 'python -m pip install --upgrade pip setuptools wheel && python -m pip install -e .[tests] --upgrade'
33
displayName: Upgrade Pip & Install Pipenv
4+
env:
5+
PYTHONWARNINGS: 'ignore:DEPRECATION'
Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
- script: |
22
# Fix Git SSL errors
3-
export GIT_SSL_CAINFO="$(python -m certifi)"
4-
export LANG="C.UTF-8"
5-
export PIP_PROCESS_DEPENDENCY_LINKS="1"
63
git submodule sync && git submodule update --init --recursive
74
pipenv run pytest --junitxml=test-results.xml
85
displayName: Run integration tests
6+
env:
7+
PYTHONWARNINGS: 'ignore:DEPRECATION'
8+
PY_EXE: $(PY_EXE)
9+
GIT_SSL_CAINFO: $(GIT_SSL_CAINFO)
10+
LANG: $(LANG)
11+
PIP_PROCESS_DEPENDENCY_LINKS: $(PIP_PROCESS_DEPENDENCY_LINKS)
12+
PIPENV_DEFAULT_PYTHON_VERSION: $(PIPENV_DEFAULT_PYTHON_VERSION)
13+
PYTHONWARNINGS: ignore:DEPRECATION
14+
PIPENV_NOSPIN: '1'
Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,39 @@
11
steps:
22
- powershell: |
3-
# Fix Git SSL errors
4-
Invoke-Expression "& '$env:VIRTUAL_ENV_PY' -m pip install certifi"
5-
Invoke-Expression "& '$env:VIRTUAL_ENV_PY' -m certifi > cacert.txt"
6-
Write-Host "##vso[task.setvariable variable=GIT_SSL_CAINFO]$(Get-Content cacert.txt)"
7-
$env:GIT_SSL_CAINFO="$(Get-Content cacert.txt)"
8-
# Shorten paths to get under MAX_PATH or else integration tests will fail
9-
# https://bugs.python.org/issue18199
103
subst T: "$env:TEMP"
114
Write-Host "##vso[task.setvariable variable=TEMP]T:\"
12-
$env:TEMP='T:\'
135
Write-Host "##vso[task.setvariable variable=TMP]T:\"
14-
$env:TMP='T:\'
15-
git submodule sync
16-
git submodule update --init --recursive
17-
Invoke-Expression "& '$env:VIRTUAL_ENV_PY' -m pipenv run pytest -ra --ignore=pipenv\patched --ignore=pipenv\vendor --junitxml=test-results.xml tests"
6+
displayName: Fix Temp Variable
7+
8+
- script: |
9+
git submodule sync && git submodule update --init --recursive
10+
pipenv run pytest -ra --ignore=pipenv\patched --ignore=pipenv\vendor --junitxml=test-results.xml tests
1811
displayName: Run integration tests
1912
env:
20-
VIRTUAL_ENV: $(VIRTUAL_ENV)
21-
VIRTUAL_ENV_PY: $(VIRTUAL_ENV_PY)
13+
PIPENV_DEFAULT_PYTHON_VERSION: $(PIPENV_DEFAULT_PYTHON_VERSION)
14+
PYTHONWARNINGS: 'ignore:DEPRECATION'
15+
PIPENV_NOSPIN: '1'
16+
17+
# - powershell: |
18+
# # Fix Git SSL errors
19+
# Invoke-Expression "& '$env:VIRTUAL_ENV_PY' -m pip install certifi"
20+
# Invoke-Expression "& '$env:VIRTUAL_ENV_PY' -m certifi > cacert.txt"
21+
# Write-Host "##vso[task.setvariable variable=GIT_SSL_CAINFO]$(Get-Content cacert.txt)"
22+
# $env:GIT_SSL_CAINFO="$(Get-Content cacert.txt)"
23+
# # Shorten paths to get under MAX_PATH or else integration tests will fail
24+
# # https://bugs.python.org/issue18199
25+
# subst T: "$env:TEMP"
26+
# Write-Host "##vso[task.setvariable variable=TEMP]T:\"
27+
# $env:TEMP='T:\'
28+
# Write-Host "##vso[task.setvariable variable=TMP]T:\"
29+
# $env:TMP='T:\'
30+
# Invoke-Expression "git submodule sync -q" 2>&1
31+
# Invoke-Expression "git submodule update --init --recursive -q" 2>&1
32+
# Invoke-Expression "& '$env:VIRTUAL_ENV_PY' -m pipenv run pytest -ra --ignore=pipenv\patched --ignore=pipenv\vendor --junitxml=test-results.xml tests"
33+
# displayName: Run integration tests
34+
# failOnStderr: false
35+
# env:
36+
# VIRTUAL_ENV: $(VIRTUAL_ENV)
37+
# VIRTUAL_ENV_PY: $(VIRTUAL_ENV_PY)
38+
# PYTHONWARNINGS: 'ignore:DEPRECATION'
39+
# PIPENV_VERBOSITY: '-1'

.azure-pipelines/steps/run-tests.yml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
steps:
2-
- task: UsePythonVersion@0
3-
inputs:
4-
versionSpec: $(python.version)
5-
architecture: '$(python.architecture)'
6-
addToPath: true
7-
displayName: Use Python $(python.version)
2+
- task: UsePythonVersion@0
3+
inputs:
4+
versionSpec: $(python.version)
5+
architecture: '$(python.architecture)'
6+
addToPath: true
7+
displayName: Use Python $(python.version)
8+
9+
- template: install-dependencies.yml
810

9-
- template: install-dependencies.yml
10-
steps:
1111
- script: |
1212
echo '##vso[task.setvariable variable=PIPENV_DEFAULT_PYTHON_VERSION]$(PYTHON_VERSION)'
1313
env:
1414
PYTHON_VERSION: $(python.version)
15+
16+
- template: create-virtualenv.yml
17+
1518
- ${{ if eq(parameters.vmImage, 'windows-2019') }}:
16-
- template: create-virtualenv-windows.yml
1719
- template: run-tests-windows.yml
1820
- ${{ if ne(parameters.vmImage, 'windows-2019') }}:
19-
- template: create-virtualenv-linux.yml
2021
- template: run-tests-linux.yml
2122

2223
- task: PublishTestResults@2

Pipfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,3 @@ tests = "bash ./run-tests.sh"
1616

1717
[pipenv]
1818
allow_prereleases = true
19-

pipenv/__init__.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,19 @@
3636
except Exception:
3737
pass
3838

39-
from .vendor.vistir.misc import replace_with_text_stream
40-
from .vendor import colorama
41-
replace_with_text_stream("stdout")
42-
replace_with_text_stream("stderr")
43-
# colorama.init(wrap=False)
39+
from pipenv.vendor.vistir.misc import get_text_stream
40+
stdout = get_text_stream("stdout")
41+
stderr = get_text_stream("stderr")
42+
43+
if os.name == "nt":
44+
from pipenv.vendor.vistir.misc import _can_use_color, _wrap_for_color
45+
if _can_use_color(stdout):
46+
stdout = _wrap_for_color(stdout)
47+
if _can_use_color(stderr):
48+
stderr = _wrap_for_color(stderr)
49+
50+
sys.stdout = stdout
51+
sys.stderr = stderr
4452

4553
from .cli import cli
4654
from . import resolver

pipenv/core.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -917,12 +917,12 @@ def do_create_virtualenv(python=None, site_packages=False, pypi_mirror=None):
917917
pip_config = {}
918918

919919
# Actually create the virtualenv.
920-
with create_spinner("Creating virtual environment...") as sp:
920+
with create_spinner(u"Creating virtual environment...") as sp:
921921
c = vistir.misc.run(
922922
cmd, verbose=False, return_object=True, write_to_stdout=False,
923923
combine_stderr=False, block=True, nospin=True, env=pip_config,
924924
)
925-
click.echo(crayons.blue("{0}".format(c.out)), err=True)
925+
click.echo(crayons.blue(u"{0}".format(c.out)), err=True)
926926
if c.returncode != 0:
927927
sp.fail(environments.PIPENV_SPINNER_FAIL_TEXT.format(u"Failed creating virtual environment"))
928928
error = c.err if environments.is_verbose() else exceptions.prettify_exc(c.err)

0 commit comments

Comments
 (0)