Commit caffd4f0 by Randy Döring Committed by Arun Babu Neelicattu

solver: print more information about packages with source_type when solving…

solver: print more information about packages with source_type when solving fails to avoid weird messages like "Because myapp depends on both demo (1.2.3) and demo (1.2.3), version solving failed."
parent 77d89758
...@@ -438,6 +438,8 @@ class Incompatibility: ...@@ -438,6 +438,8 @@ class Incompatibility:
pretty_name: str = term.dependency.pretty_name pretty_name: str = term.dependency.pretty_name
return pretty_name return pretty_name
if term.dependency.source_type:
return str(term.dependency)
return f"{term.dependency.pretty_name} ({term.dependency.pretty_constraint})" return f"{term.dependency.pretty_name} ({term.dependency.pretty_constraint})"
def _single_term_where(self, callable: Callable[[Term], bool]) -> Term | None: def _single_term_where(self, callable: Callable[[Term], bool]) -> Term | None:
......
from __future__ import annotations from __future__ import annotations
from pathlib import Path
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from poetry.factory import Factory from poetry.factory import Factory
...@@ -92,6 +93,25 @@ Because myapp depends on both foo (1.0.0) and foo (2.0.0), version solving faile ...@@ -92,6 +93,25 @@ Because myapp depends on both foo (1.0.0) and foo (2.0.0), version solving faile
check_solver_result(root, provider, error=error) check_solver_result(root, provider, error=error)
def test_disjoint_root_constraints_path_dependencies(
root: ProjectPackage, provider: Provider, repo: Repository
):
provider.set_package_python_versions("^3.7")
fixtures = Path(__file__).parent.parent.parent / "fixtures"
project_dir = fixtures.joinpath("with_conditional_path_deps")
path1 = project_dir / "demo_one"
root.add_dependency(Factory.create_dependency("demo", {"path": path1}))
path2 = project_dir / "demo_two"
root.add_dependency(Factory.create_dependency("demo", {"path": path2}))
error = (
f"Because myapp depends on both demo (1.2.3 {path1.as_posix()}) "
f"and demo (1.2.3 {path2.as_posix()}), version solving failed."
)
check_solver_result(root, provider, error=error)
def test_no_valid_solution(root: ProjectPackage, provider: Provider, repo: Repository): def test_no_valid_solution(root: ProjectPackage, provider: Provider, repo: Repository):
root.add_dependency(Factory.create_dependency("a", "*")) root.add_dependency(Factory.create_dependency("a", "*"))
root.add_dependency(Factory.create_dependency("b", "*")) root.add_dependency(Factory.create_dependency("b", "*"))
......
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