diff --git a/src/poetry/core/packages/directory_dependency.py b/src/poetry/core/packages/directory_dependency.py index 24ee05937..5b3cfa5d6 100644 --- a/src/poetry/core/packages/directory_dependency.py +++ b/src/poetry/core/packages/directory_dependency.py @@ -89,7 +89,9 @@ def base_pep_508_name(self) -> str: extras = ",".join(sorted(self.extras)) requirement += f"[{extras}]" - path = path_to_url(self.path) if self.path.is_absolute() else self.path + path = ( + path_to_url(self.path) if self.path.is_absolute() else self.path.as_posix() + ) requirement += f" @ {path}" return requirement diff --git a/src/poetry/core/packages/file_dependency.py b/src/poetry/core/packages/file_dependency.py index 5e6542431..a5dade981 100644 --- a/src/poetry/core/packages/file_dependency.py +++ b/src/poetry/core/packages/file_dependency.py @@ -78,7 +78,9 @@ def base_pep_508_name(self) -> str: extras = ",".join(sorted(self.extras)) requirement += f"[{extras}]" - path = path_to_url(self.path) if self.path.is_absolute() else self.path + path = ( + path_to_url(self.path) if self.path.is_absolute() else self.path.as_posix() + ) requirement += f" @ {path}" return requirement diff --git a/tests/packages/test_directory_dependency.py b/tests/packages/test_directory_dependency.py index c21460216..db865e0b1 100644 --- a/tests/packages/test_directory_dependency.py +++ b/tests/packages/test_directory_dependency.py @@ -29,7 +29,7 @@ def _test_directory_dependency_pep_508( dep = cast(DirectoryDependency, dep) assert dep.name == name assert dep.path == path - assert dep.to_pep_508() == pep_508_output or pep_508_input + assert dep.to_pep_508() == (pep_508_output or pep_508_input) def test_directory_dependency_pep_508_local_absolute() -> None: @@ -38,11 +38,13 @@ def test_directory_dependency_pep_508_local_absolute() -> None: / "fixtures" / "project_with_multi_constraints_dependency" ) + expected = f"demo @ {path.as_uri()}" + requirement = f"demo @ file://{path.as_posix()}" - _test_directory_dependency_pep_508("demo", path, requirement) + _test_directory_dependency_pep_508("demo", path, requirement, expected) requirement = f"demo @ {path}" - _test_directory_dependency_pep_508("demo", path, requirement) + _test_directory_dependency_pep_508("demo", path, requirement, expected) def test_directory_dependency_pep_508_localhost() -> None: @@ -52,8 +54,8 @@ def test_directory_dependency_pep_508_localhost() -> None: / "project_with_multi_constraints_dependency" ) requirement = f"demo @ file://localhost{path.as_posix()}" - requirement_expected = f"demo @ file://{path.as_posix()}" - _test_directory_dependency_pep_508("demo", path, requirement, requirement_expected) + expected = f"demo @ {path.as_uri()}" + _test_directory_dependency_pep_508("demo", path, requirement, expected) def test_directory_dependency_pep_508_local_relative() -> None: @@ -64,7 +66,8 @@ def test_directory_dependency_pep_508_local_relative() -> None: _test_directory_dependency_pep_508("demo", path, requirement) requirement = f"demo @ {path}" - _test_directory_dependency_pep_508("demo", path, requirement) + expected = f"demo @ {path.as_posix()}" + _test_directory_dependency_pep_508("demo", path, requirement, expected) def test_directory_dependency_pep_508_extras() -> None: @@ -74,8 +77,8 @@ def test_directory_dependency_pep_508_extras() -> None: / "project_with_multi_constraints_dependency" ) requirement = f"demo[foo,bar] @ file://{path.as_posix()}" - requirement_expected = f"demo[bar,foo] @ file://{path.as_posix()}" - _test_directory_dependency_pep_508("demo", path, requirement, requirement_expected) + expected = f"demo[bar,foo] @ {path.as_uri()}" + _test_directory_dependency_pep_508("demo", path, requirement, expected) @pytest.mark.parametrize( diff --git a/tests/packages/test_file_dependency.py b/tests/packages/test_file_dependency.py index c0db558dd..ecbf06fb7 100644 --- a/tests/packages/test_file_dependency.py +++ b/tests/packages/test_file_dependency.py @@ -114,25 +114,25 @@ def _test_file_dependency_pep_508( dep = cast(FileDependency, dep) assert dep.name == name assert dep.path == path - assert dep.to_pep_508() == pep_508_output or pep_508_input + assert dep.to_pep_508() == (pep_508_output or pep_508_input) def test_file_dependency_pep_508_local_file_absolute(mocker: MockerFixture) -> None: path = DIST_PATH / "demo-0.2.0.tar.gz" + expected = f"demo @ {path.as_uri()}" + requirement = f"demo @ file://{path.as_posix()}" - _test_file_dependency_pep_508(mocker, "demo", path, requirement) + _test_file_dependency_pep_508(mocker, "demo", path, requirement, expected) requirement = f"demo @ {path}" - _test_file_dependency_pep_508(mocker, "demo", path, requirement) + _test_file_dependency_pep_508(mocker, "demo", path, requirement, expected) def test_file_dependency_pep_508_local_file_localhost(mocker: MockerFixture) -> None: path = DIST_PATH / "demo-0.2.0.tar.gz" requirement = f"demo @ file://localhost{path.as_posix()}" - requirement_expected = f"demo @ file://{path.as_posix()}" - _test_file_dependency_pep_508( - mocker, "demo", path, requirement, requirement_expected - ) + expected = f"demo @ {path.as_uri()}" + _test_file_dependency_pep_508(mocker, "demo", path, requirement, expected) def test_file_dependency_pep_508_local_file_relative_path( @@ -145,14 +145,15 @@ def test_file_dependency_pep_508_local_file_relative_path( _test_file_dependency_pep_508(mocker, "demo", path, requirement) requirement = f"demo @ {path}" - _test_file_dependency_pep_508(mocker, "demo", path, requirement) + expected = f"demo @ {path.as_posix()}" + _test_file_dependency_pep_508(mocker, "demo", path, requirement, expected) def test_absolute_file_dependency_to_pep_508_with_marker(mocker: MockerFixture) -> None: wheel = "demo-0.1.0-py2.py3-none-any.whl" abs_path = DIST_PATH / wheel - requirement = f'demo @ file://{abs_path.as_posix()} ; sys_platform == "linux"' + requirement = f'demo @ {abs_path.as_uri()} ; sys_platform == "linux"' _test_file_dependency_pep_508( mocker, "demo",