@@ -2741,3 +2741,53 @@ def test_solver_can_resolve_python_restricted_package_dependencies(
27412741 {"job" : "install" , "package" : pre_commit },
27422742 ],
27432743 )
2744+
2745+
2746+ def test_solver_should_not_raise_errors_for_irrelevant_transitive_python_constraints (
2747+ solver , repo , package
2748+ ):
2749+ package .python_versions = "~2.7 || ^3.5"
2750+ solver .provider .set_package_python_versions ("~2.7 || ^3.5" )
2751+ package .add_dependency (Factory .create_dependency ("virtualenv" , "^20.4.3" ))
2752+ package .add_dependency (
2753+ Factory .create_dependency ("pre-commit" , {"version" : "^2.6" , "python" : "^3.6.1" })
2754+ )
2755+
2756+ virtualenv = get_package ("virtualenv" , "20.4.3" )
2757+ virtualenv .python_versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
2758+ virtualenv .add_dependency (
2759+ Factory .create_dependency (
2760+ "importlib-resources" , {"version" : "*" , "markers" : 'python_version < "3.7"' }
2761+ )
2762+ )
2763+
2764+ pre_commit = Package ("pre-commit" , "2.7.1" )
2765+ pre_commit .python_versions = ">=3.6.1"
2766+ pre_commit .add_dependency (
2767+ Factory .create_dependency (
2768+ "importlib-resources" , {"version" : "*" , "markers" : 'python_version < "3.7"' }
2769+ )
2770+ )
2771+
2772+ importlib_resources = get_package ("importlib-resources" , "5.1.2" )
2773+ importlib_resources .python_versions = ">=3.6"
2774+
2775+ importlib_resources_3_2_1 = get_package ("importlib-resources" , "3.2.1" )
2776+ importlib_resources_3_2_1 .python_versions = (
2777+ "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
2778+ )
2779+
2780+ repo .add_package (virtualenv )
2781+ repo .add_package (pre_commit )
2782+ repo .add_package (importlib_resources )
2783+ repo .add_package (importlib_resources_3_2_1 )
2784+ ops = solver .solve ()
2785+
2786+ check_solver_result (
2787+ ops ,
2788+ [
2789+ {"job" : "install" , "package" : importlib_resources_3_2_1 },
2790+ {"job" : "install" , "package" : pre_commit },
2791+ {"job" : "install" , "package" : virtualenv },
2792+ ],
2793+ )
0 commit comments