Merge pull request #8286 from uranusjr/read-root-extras-correctly

Always read InstallRequirement.extras
This commit is contained in:
Paul Moore 2020-05-21 16:05:35 +01:00 committed by GitHub
commit 278ac2d67f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 2 deletions

View File

@ -55,7 +55,7 @@ class SpecifierRequirement(Requirement):
assert ireq.link is None, "This is a link, not a specifier"
self._ireq = ireq
self._factory = factory
self.extras = ireq.req.extras
self.extras = set(ireq.extras)
def __str__(self):
# type: () -> str

View File

@ -189,7 +189,40 @@ def test_new_resolver_ignore_dependencies(script):
assert_not_installed(script, "dep")
def test_new_resolver_installs_extras(script):
@pytest.mark.parametrize(
"root_dep",
[
"base[add]",
"base[add] >= 0.1.0",
# Non-standard syntax. To deprecate, see pypa/pip#8288.
"base >= 0.1.0[add]",
],
)
def test_new_resolver_installs_extras(tmpdir, script, root_dep):
req_file = tmpdir.joinpath("requirements.txt")
req_file.write_text(root_dep)
create_basic_wheel_for_package(
script,
"base",
"0.1.0",
extras={"add": ["dep"]},
)
create_basic_wheel_for_package(
script,
"dep",
"0.1.0",
)
script.pip(
"install", "--unstable-feature=resolver",
"--no-cache-dir", "--no-index",
"--find-links", script.scratch_path,
"-r", req_file,
)
assert_installed(script, base="0.1.0", dep="0.1.0")
def test_new_resolver_installs_extras_warn_missing(script):
create_basic_wheel_for_package(
script,
"base",