Commit b2d14274 by Arun Babu Neelicattu Committed by finswimmer

inspection: ad each extra package as a dependency

Resolves: #3129
(cherry picked from commit 38fddf05b36ec64647e66bf459578f9e0b41442d)
parent 3e42be10
...@@ -165,6 +165,8 @@ class PackageInfo: ...@@ -165,6 +165,8 @@ class PackageInfo:
package.requires = poetry_package.requires package.requires = poetry_package.requires
return package return package
seen_requirements = set()
for req in self.requires_dist or []: for req in self.requires_dist or []:
try: try:
# Attempt to parse the PEP-508 requirement string # Attempt to parse the PEP-508 requirement string
...@@ -191,8 +193,11 @@ class PackageInfo: ...@@ -191,8 +193,11 @@ class PackageInfo:
package.extras[extra].append(dependency) package.extras[extra].append(dependency)
if dependency not in package.requires: req = dependency.to_pep_508(with_extras=True)
if req not in seen_requirements:
package.requires.append(dependency) package.requires.append(dependency)
seen_requirements.add(req)
return package return package
......
...@@ -117,7 +117,7 @@ def test_get_package_information_skips_dependencies_with_invalid_constraints(): ...@@ -117,7 +117,7 @@ def test_get_package_information_skips_dependencies_with_invalid_constraints():
package.description == "Python Language Server for the Language Server Protocol" package.description == "Python Language Server for the Language Server Protocol"
) )
assert 19 == len(package.requires) assert 25 == len(package.requires)
assert sorted( assert sorted(
[r for r in package.requires if not r.is_optional()], key=lambda r: r.name [r for r in package.requires if not r.is_optional()], key=lambda r: r.name
) == [ ) == [
...@@ -216,7 +216,7 @@ def test_get_package_from_both_py2_and_py3_specific_wheels(): ...@@ -216,7 +216,7 @@ def test_get_package_from_both_py2_and_py3_specific_wheels():
assert "ipython" == package.name assert "ipython" == package.name
assert "5.7.0" == package.version.text assert "5.7.0" == package.version.text
assert "*" == package.python_versions assert "*" == package.python_versions
assert 26 == len(package.requires) assert 41 == len(package.requires)
expected = [ expected = [
Dependency("appnope", "*"), Dependency("appnope", "*"),
......
...@@ -165,7 +165,7 @@ def test_pypi_repository_supports_reading_bz2_files(): ...@@ -165,7 +165,7 @@ def test_pypi_repository_supports_reading_bz2_files():
package = repo.package("twisted", "18.9.0") package = repo.package("twisted", "18.9.0")
assert package.name == "twisted" assert package.name == "twisted"
assert 28 == len(package.requires) assert 71 == len(package.requires)
assert sorted( assert sorted(
[r for r in package.requires if not r.is_optional()], key=lambda r: r.name [r for r in package.requires if not r.is_optional()], key=lambda r: r.name
) == [ ) == [
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment