13
13
from poetry .puzzle .solver import PackageNode
14
14
from poetry .puzzle .solver import Solver
15
15
from 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
17
17
18
18
19
19
if TYPE_CHECKING :
@@ -359,28 +359,29 @@ def test_propagate_markers_with_cycle(package: ProjectPackage, solver: Solver) -
359
359
}
360
360
361
361
362
- def test_merge_packages_from_override_restricted (package : ProjectPackage ) -> None :
362
+ def test_merge_override_packages_restricted (package : ProjectPackage ) -> None :
363
363
"""Markers of dependencies should be intersected with override markers."""
364
364
a = Package ("a" , "1" )
365
365
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
+ ]
384
385
)
385
386
assert len (packages ) == 1
386
387
assert packages [a ].groups == {"main" }
@@ -392,28 +393,33 @@ def test_merge_packages_from_override_restricted(package: ProjectPackage) -> Non
392
393
}
393
394
394
395
395
- def test_merge_packages_from_override_extras (package : ProjectPackage ) -> None :
396
+ def test_merge_override_packages_extras (package : ProjectPackage ) -> None :
396
397
"""Extras from overrides should not be visible in the resulting marker."""
397
398
a = Package ("a" , "1" )
398
399
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
+ ]
417
423
)
418
424
assert len (packages ) == 1
419
425
assert packages [a ].groups == {"main" }
@@ -425,21 +431,23 @@ def test_merge_packages_from_override_extras(package: ProjectPackage) -> None:
425
431
}
426
432
427
433
428
- def test_merge_packages_from_override_multiple_deps (package : ProjectPackage ) -> None :
434
+ def test_merge_override_packages_multiple_deps (package : ProjectPackage ) -> None :
429
435
"""All override markers should be intersected."""
430
436
a = Package ("a" , "1" )
431
437
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
+ ]
443
451
)
444
452
445
453
assert len (packages ) == 1
@@ -452,44 +460,45 @@ def test_merge_packages_from_override_multiple_deps(package: ProjectPackage) ->
452
460
}
453
461
454
462
455
- def test_merge_packages_from_override_groups (package : ProjectPackage ) -> None :
463
+ def test_merge_override_packages_groups (package : ProjectPackage ) -> None :
456
464
a = Package ("a" , "1" )
457
465
b = Package ("b" , "1" )
458
466
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"' )}},
469
471
{
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
+ ),
472
483
},
473
484
),
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"' )}},
486
487
{
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
+ ),
489
499
},
490
500
),
491
- },
492
- {package : {"a" : dep ("b" , 'python_version >= "3.9"' )}},
501
+ ]
493
502
)
494
503
assert len (packages ) == 2
495
504
assert packages [a ].groups == {"main" , "dev" }
0 commit comments