Files
pipenv/tests/integration/test_windows.py
T
2021-07-28 17:30:17 +08:00

82 lines
2.2 KiB
Python

import os
import pytest
from pipenv._compat import Path
# This module is run only on Windows.
pytestmark = pytest.mark.skipif(os.name != 'nt', reason="only relevant on windows")
@pytest.mark.project
def test_case_changes_windows(PipenvInstance):
"""Test project matching for case changes on Windows.
"""
with PipenvInstance(chdir=True) as p:
c = p.pipenv('install pytz')
assert c.returncode == 0
# Canonical venv location.
c = p.pipenv('--venv')
assert c.returncode == 0
virtualenv_location = c.stdout.strip()
# Dance around to change the casing of the project directory.
target = p.path.upper()
if target == p.path:
target = p.path.lower()
os.chdir('..')
os.chdir(target)
assert os.path.abspath(os.curdir) != p.path
# Ensure the incorrectly-cased project can find the correct venv.
c = p.pipenv('--venv')
assert c.returncode == 0
assert c.stdout.strip().lower() == virtualenv_location.lower()
@pytest.mark.files
@pytest.mark.local
def test_local_path_windows(PipenvInstance):
whl = (
Path(__file__).parent.parent
.joinpath('pypi', 'six', 'six-1.11.0-py2.py3-none-any.whl')
)
try:
whl = whl.resolve()
except OSError:
whl = whl.absolute()
with PipenvInstance(chdir=True) as p:
c = p.pipenv(f'install "{whl}"')
assert c.returncode == 0
@pytest.mark.local
@pytest.mark.files
def test_local_path_windows_forward_slash(PipenvInstance):
whl = (
Path(__file__).parent.parent
.joinpath('pypi', 'six', 'six-1.11.0-py2.py3-none-any.whl')
)
try:
whl = whl.resolve()
except OSError:
whl = whl.absolute()
with PipenvInstance(chdir=True) as p:
c = p.pipenv(f'install "{whl.as_posix()}"')
assert c.returncode == 0
@pytest.mark.cli
def test_pipenv_clean_windows(PipenvInstance):
with PipenvInstance(chdir=True) as p:
c = p.pipenv('install requests')
assert c.returncode == 0
c = p.pipenv(f'run pip install -i {p.index_url} click')
assert c.returncode == 0
c = p.pipenv('clean --dry-run')
assert c.returncode == 0
assert 'click' in c.stdout.strip()