Commit c855572b by Sébastien Eustace

Fix error where incompatible dependencies were resolved

parent e592fba9
......@@ -279,7 +279,9 @@ class Provider(SpecificationProvider, UI):
return [
r for r in package.requires
if not r.is_optional()
and r.name not in self.UNSAFE_PACKAGES
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
]
def is_requirement_satisfied_by(self,
......
......@@ -587,3 +587,27 @@ def test_solver_sub_dependencies_with_requirements_complex(solver, repo):
op = ops[2]
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