Commit c855572b by Sébastien Eustace

Fix error where incompatible dependencies were resolved

parent e592fba9
...@@ -279,6 +279,8 @@ class Provider(SpecificationProvider, UI): ...@@ -279,6 +279,8 @@ class Provider(SpecificationProvider, UI):
return [ return [
r for r in package.requires r for r in package.requires
if not r.is_optional() if not r.is_optional()
and self._package.python_constraint.matches(r.python_constraint)
and self._package.platform_constraint.matches(package.platform_constraint)
and r.name not in self.UNSAFE_PACKAGES and r.name not in self.UNSAFE_PACKAGES
] ]
......
...@@ -587,3 +587,27 @@ def test_solver_sub_dependencies_with_requirements_complex(solver, repo): ...@@ -587,3 +587,27 @@ def test_solver_sub_dependencies_with_requirements_complex(solver, repo):
op = ops[2] op = ops[2]
assert op.package.requirements == {} assert op.package.requirements == {}
def test_solver_sub_dependencies_with_not_supported_python_version(solver, repo, package):
package.python_versions = '^3.5'
package_a = get_package('A', '1.0')
package_b = get_package('B', '1.0')
package_b.python_versions = '<2.0'
package_a.add_dependency('B', {'version': '^1.0', 'python': '<2.0'})
repo.add_package(package_a)
repo.add_package(package_b)
dependency_a = get_dependency('A')
request = [
dependency_a,
]
ops = solver.solve(request)
check_solver_result(ops, [
{'job': 'install', 'package': package_a},
])
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