@@ -1415,3 +1415,55 @@ def test_add_with_path_dependency_no_loopiness(
1415
1415
1416
1416
with pytest .raises (SolverProblemError ):
1417
1417
tester .execute ("requests" )
1418
+
1419
+
1420
+ def test_add_extras_are_parsed_and_included (
1421
+ app : PoetryTestApplication ,
1422
+ repo : TestRepository ,
1423
+ tester : CommandTester ,
1424
+ ) -> None :
1425
+ msgpack_dep = get_dependency ("msgpack-python" , ">=0.5 <0.6" , optional = True )
1426
+ redis_dep = get_dependency ("redis" , ">=3.3.6 <4.0.0" , optional = True )
1427
+
1428
+ cachy = get_package ("cachy" , "0.2.0" )
1429
+ cachy .add_dependency (msgpack_dep )
1430
+ cachy .add_dependency (redis_dep )
1431
+ cachy .extras = {
1432
+ canonicalize_name ("redis" ): [redis_dep ],
1433
+ canonicalize_name ("msgpack" ): [msgpack_dep ],
1434
+ }
1435
+ repo .add_package (cachy )
1436
+
1437
+ msgpack = get_package ("msgpack-python" , "0.5.1" )
1438
+ repo .add_package (msgpack )
1439
+
1440
+ redis = get_package ("redis" , "3.4.0" )
1441
+ repo .add_package (redis )
1442
+
1443
+ tester .execute ('cachy --extras "redis msgpack"' )
1444
+
1445
+ expected = """\
1446
+ Using version ^0.2.0 for cachy
1447
+
1448
+ Updating dependencies
1449
+ Resolving dependencies...
1450
+
1451
+ Package operations: 3 installs, 0 updates, 0 removals
1452
+
1453
+ • Installing msgpack-python (0.5.1)
1454
+ • Installing redis (3.4.0)
1455
+ • Installing cachy (0.2.0)
1456
+
1457
+ Writing lock file
1458
+ """
1459
+
1460
+ assert tester .io .fetch_output () == expected
1461
+
1462
+ pyproject : dict [str , Any ] = app .poetry .file .read ()
1463
+ content = pyproject ["tool" ]["poetry" ]
1464
+
1465
+ assert "cachy" in content ["dependencies" ]
1466
+ assert content ["dependencies" ]["cachy" ] == {
1467
+ "version" : "^0.2.0" ,
1468
+ "extras" : ["redis" , "msgpack" ],
1469
+ }
0 commit comments