1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00

Add new resolver test for Requires-Python

This commit is contained in:
Tzu-ping Chung 2020-04-02 04:27:29 +08:00
parent 190c424b1e
commit 630339e577

View file

@ -1,6 +1,9 @@
import json
import pytest
from tests.lib import create_basic_wheel_for_package
from tests.lib.wheel import make_wheel
def assert_installed(script, **kwargs):
@ -137,3 +140,55 @@ def test_new_resolver_installs_extras(script):
assert "WARNING: Invalid extras specified" in result.stderr, str(result)
assert ": missing" in result.stderr, str(result)
assert_installed(script, base="0.1.0", dep="0.1.0")
@pytest.mark.parametrize(
"requires_python, ignore_requires_python, dep_version",
[
# Something impossible to satisfy.
("<2", False, "0.1.0"),
("<2", True, "0.2.0"),
# Something guarentees to satisfy.
(">=2", False, "0.2.0"),
(">=2", True, "0.2.0"),
],
)
def test_new_resolver_requires_python(
script,
requires_python,
ignore_requires_python,
dep_version,
):
create_basic_wheel_for_package(
script,
"base",
"0.1.0",
depends=["dep"],
)
# TODO: Use create_basic_wheel_for_package when it handles Requires-Python.
make_wheel(
"dep",
"0.1.0",
).save_to_dir(script.scratch_path)
make_wheel(
"dep",
"0.2.0",
metadata_updates={"Requires-Python": requires_python},
).save_to_dir(script.scratch_path)
args = [
"install",
"--unstable-feature=resolver",
"--no-cache-dir",
"--no-index",
"--find-links", script.scratch_path,
]
if ignore_requires_python:
args.append("--ignore-requires-python")
args.append("base")
script.pip(*args)
assert_installed(script, base="0.1.0", dep=dep_version)