1313from poetry .puzzle .solver import PackageNode
1414from poetry .puzzle .solver import Solver
1515from poetry .puzzle .solver import depth_first_search
16- from poetry .puzzle .solver import merge_packages_from_override
16+ from poetry .puzzle .solver import merge_override_packages
1717
1818
1919if TYPE_CHECKING :
@@ -359,28 +359,29 @@ def test_propagate_markers_with_cycle(package: ProjectPackage, solver: Solver) -
359359 }
360360
361361
362- def test_merge_packages_from_override_restricted (package : ProjectPackage ) -> None :
362+ def test_merge_override_packages_restricted (package : ProjectPackage ) -> None :
363363 """Markers of dependencies should be intersected with override markers."""
364364 a = Package ("a" , "1" )
365365
366- packages : dict [Package , TransitivePackageInfo ] = {}
367- merge_packages_from_override (
368- packages ,
369- {
370- a : TransitivePackageInfo (
371- 0 , {"main" }, {"main" : parse_marker ("sys_platform == 'win32'" )}
372- )
373- },
374- {package : {"a" : dep ("b" , 'python_version < "3.9"' )}},
375- )
376- merge_packages_from_override (
377- packages ,
378- {
379- a : TransitivePackageInfo (
380- 0 , {"main" }, {"main" : parse_marker ("sys_platform == 'linux'" )}
381- )
382- },
383- {package : {"a" : dep ("b" , 'python_version >= "3.9"' )}},
366+ packages = merge_override_packages (
367+ [
368+ (
369+ {package : {"a" : dep ("b" , 'python_version < "3.9"' )}},
370+ {
371+ a : TransitivePackageInfo (
372+ 0 , {"main" }, {"main" : parse_marker ("sys_platform == 'win32'" )}
373+ )
374+ },
375+ ),
376+ (
377+ {package : {"a" : dep ("b" , 'python_version >= "3.9"' )}},
378+ {
379+ a : TransitivePackageInfo (
380+ 0 , {"main" }, {"main" : parse_marker ("sys_platform == 'linux'" )}
381+ )
382+ },
383+ ),
384+ ]
384385 )
385386 assert len (packages ) == 1
386387 assert packages [a ].groups == {"main" }
@@ -392,28 +393,33 @@ def test_merge_packages_from_override_restricted(package: ProjectPackage) -> Non
392393 }
393394
394395
395- def test_merge_packages_from_override_extras (package : ProjectPackage ) -> None :
396+ def test_merge_override_packages_extras (package : ProjectPackage ) -> None :
396397 """Extras from overrides should not be visible in the resulting marker."""
397398 a = Package ("a" , "1" )
398399
399- packages : dict [Package , TransitivePackageInfo ] = {}
400- merge_packages_from_override (
401- packages ,
402- {
403- a : TransitivePackageInfo (
404- 0 , {"main" }, {"main" : parse_marker ("sys_platform == 'win32'" )}
405- )
406- },
407- {package : {"a" : dep ("b" , 'python_version < "3.9" and extra == "foo"' )}},
408- )
409- merge_packages_from_override (
410- packages ,
411- {
412- a : TransitivePackageInfo (
413- 0 , {"main" }, {"main" : parse_marker ("sys_platform == 'linux'" )}
414- )
415- },
416- {package : {"a" : dep ("b" , 'python_version >= "3.9" and extra == "foo"' )}},
400+ packages = merge_override_packages (
401+ [
402+ (
403+ {package : {"a" : dep ("b" , 'python_version < "3.9" and extra == "foo"' )}},
404+ {
405+ a : TransitivePackageInfo (
406+ 0 , {"main" }, {"main" : parse_marker ("sys_platform == 'win32'" )}
407+ )
408+ },
409+ ),
410+ (
411+ {
412+ package : {
413+ "a" : dep ("b" , 'python_version >= "3.9" and extra == "foo"' )
414+ }
415+ },
416+ {
417+ a : TransitivePackageInfo (
418+ 0 , {"main" }, {"main" : parse_marker ("sys_platform == 'linux'" )}
419+ )
420+ },
421+ ),
422+ ]
417423 )
418424 assert len (packages ) == 1
419425 assert packages [a ].groups == {"main" }
@@ -425,21 +431,23 @@ def test_merge_packages_from_override_extras(package: ProjectPackage) -> None:
425431 }
426432
427433
428- def test_merge_packages_from_override_multiple_deps (package : ProjectPackage ) -> None :
434+ def test_merge_override_packages_multiple_deps (package : ProjectPackage ) -> None :
429435 """All override markers should be intersected."""
430436 a = Package ("a" , "1" )
431437
432- packages : dict [Package , TransitivePackageInfo ] = {}
433- merge_packages_from_override (
434- packages ,
435- {a : TransitivePackageInfo (0 , {"main" }, {"main" : AnyMarker ()})},
436- {
437- package : {
438- "a" : dep ("b" , 'python_version < "3.9"' ),
439- "c" : dep ("d" , 'sys_platform == "linux"' ),
440- },
441- a : {"e" : dep ("f" , 'python_version >= "3.8"' )},
442- },
438+ packages = merge_override_packages (
439+ [
440+ (
441+ {
442+ package : {
443+ "a" : dep ("b" , 'python_version < "3.9"' ),
444+ "c" : dep ("d" , 'sys_platform == "linux"' ),
445+ },
446+ a : {"e" : dep ("f" , 'python_version >= "3.8"' )},
447+ },
448+ {a : TransitivePackageInfo (0 , {"main" }, {"main" : AnyMarker ()})},
449+ ),
450+ ]
443451 )
444452
445453 assert len (packages ) == 1
@@ -452,44 +460,45 @@ def test_merge_packages_from_override_multiple_deps(package: ProjectPackage) ->
452460 }
453461
454462
455- def test_merge_packages_from_override_groups (package : ProjectPackage ) -> None :
463+ def test_merge_override_packages_groups (package : ProjectPackage ) -> None :
456464 a = Package ("a" , "1" )
457465 b = Package ("b" , "1" )
458466
459- packages : dict [Package , TransitivePackageInfo ] = {}
460- merge_packages_from_override (
461- packages ,
462- {
463- a : TransitivePackageInfo (
464- 0 , {"main" }, {"main" : parse_marker ("sys_platform == 'win32'" )}
465- ),
466- b : TransitivePackageInfo (
467- 0 ,
468- {"main" , "dev" },
467+ packages = merge_override_packages (
468+ [
469+ (
470+ {package : {"a" : dep ("b" , 'python_version < "3.9"' )}},
469471 {
470- "main" : parse_marker ("sys_platform == 'win32'" ),
471- "dev" : parse_marker ("sys_platform == 'linux'" ),
472+ a : TransitivePackageInfo (
473+ 0 , {"main" }, {"main" : parse_marker ("sys_platform == 'win32'" )}
474+ ),
475+ b : TransitivePackageInfo (
476+ 0 ,
477+ {"main" , "dev" },
478+ {
479+ "main" : parse_marker ("sys_platform == 'win32'" ),
480+ "dev" : parse_marker ("sys_platform == 'linux'" ),
481+ },
482+ ),
472483 },
473484 ),
474- },
475- {package : {"a" : dep ("b" , 'python_version < "3.9"' )}},
476- )
477- merge_packages_from_override (
478- packages ,
479- {
480- a : TransitivePackageInfo (
481- 0 , {"dev" }, {"dev" : parse_marker ("sys_platform == 'linux'" )}
482- ),
483- b : TransitivePackageInfo (
484- 0 ,
485- {"main" , "dev" },
485+ (
486+ {package : {"a" : dep ("b" , 'python_version >= "3.9"' )}},
486487 {
487- "main" : parse_marker ("platform_machine == 'amd64'" ),
488- "dev" : parse_marker ("platform_machine == 'aarch64'" ),
488+ a : TransitivePackageInfo (
489+ 0 , {"dev" }, {"dev" : parse_marker ("sys_platform == 'linux'" )}
490+ ),
491+ b : TransitivePackageInfo (
492+ 0 ,
493+ {"main" , "dev" },
494+ {
495+ "main" : parse_marker ("platform_machine == 'amd64'" ),
496+ "dev" : parse_marker ("platform_machine == 'aarch64'" ),
497+ },
498+ ),
489499 },
490500 ),
491- },
492- {package : {"a" : dep ("b" , 'python_version >= "3.9"' )}},
501+ ]
493502 )
494503 assert len (packages ) == 2
495504 assert packages [a ].groups == {"main" , "dev" }
0 commit comments