From ee5ff3a1efe2ac68e5fdaf54a9f3532ad01824f1 Mon Sep 17 00:00:00 2001 From: Arun Babu Neelicattu Date: Thu, 8 Oct 2020 16:46:23 +0200 Subject: [PATCH] inspection: ad each extra package as a dependency Resolves: #3129 --- poetry/inspection/info.py | 7 ++++++- tests/repositories/test_legacy_repository.py | 4 ++-- tests/repositories/test_pypi_repository.py | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/poetry/inspection/info.py b/poetry/inspection/info.py index 73034de16d3..251dac95f91 100644 --- a/poetry/inspection/info.py +++ b/poetry/inspection/info.py @@ -165,6 +165,8 @@ def to_package( package.requires = poetry_package.requires return package + seen_requirements = set() + for req in self.requires_dist or []: try: # Attempt to parse the PEP-508 requirement string @@ -191,8 +193,11 @@ def to_package( 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) + seen_requirements.add(req) return package diff --git a/tests/repositories/test_legacy_repository.py b/tests/repositories/test_legacy_repository.py index 7fd131c70e4..47ccc1052f9 100644 --- a/tests/repositories/test_legacy_repository.py +++ b/tests/repositories/test_legacy_repository.py @@ -117,7 +117,7 @@ def test_get_package_information_skips_dependencies_with_invalid_constraints(): package.description == "Python Language Server for the Language Server Protocol" ) - assert 19 == len(package.requires) + assert 25 == len(package.requires) assert sorted( [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(): assert "ipython" == package.name assert "5.7.0" == package.version.text assert "*" == package.python_versions - assert 26 == len(package.requires) + assert 41 == len(package.requires) expected = [ Dependency("appnope", "*"), diff --git a/tests/repositories/test_pypi_repository.py b/tests/repositories/test_pypi_repository.py index ef094f3f1d5..55afdd39485 100644 --- a/tests/repositories/test_pypi_repository.py +++ b/tests/repositories/test_pypi_repository.py @@ -165,7 +165,7 @@ def test_pypi_repository_supports_reading_bz2_files(): package = repo.package("twisted", "18.9.0") assert package.name == "twisted" - assert 28 == len(package.requires) + assert 71 == len(package.requires) assert sorted( [r for r in package.requires if not r.is_optional()], key=lambda r: r.name ) == [