@@ -442,44 +442,23 @@ def test_scanpipe_api_project_create_multiple_pipelines(self):
442
442
"scan_single_package" , response .data ["runs" ][1 ]["pipeline_name" ]
443
443
)
444
444
445
+ # Not supported as the comma `,` is used as the separator for optional steps.
445
446
data = {
446
447
"name" : "Multi string" ,
447
448
"pipeline" : "analyze_docker_image,scan_single_package" ,
448
449
}
449
450
response = self .csrf_client .post (self .project_list_url , data )
450
- self .assertEqual (status .HTTP_201_CREATED , response .status_code )
451
- self .assertEqual (2 , len (response .data ["runs" ]))
452
- self .assertEqual (
453
- "analyze_docker_image" , response .data ["runs" ][0 ]["pipeline_name" ]
454
- )
455
- self .assertEqual (
456
- "scan_single_package" , response .data ["runs" ][1 ]["pipeline_name" ]
457
- )
458
-
459
- data = {
460
- "name" : "Mix of string and list plus selected groups" ,
451
+ self .assertEqual (status .HTTP_400_BAD_REQUEST , response .status_code )
452
+ expected = {
461
453
"pipeline" : [
462
- "analyze_docker_image" ,
463
- "inspect_packages:StaticResolver,scan_single_package" ,
464
- ],
454
+ ErrorDetail (
455
+ string = '"analyze_docker_image,scan_single_package" is not a valid '
456
+ "choice." ,
457
+ code = "invalid_choice" ,
458
+ )
459
+ ]
465
460
}
466
- response = self .csrf_client .post (self .project_list_url , data )
467
- self .assertEqual (status .HTTP_201_CREATED , response .status_code )
468
- self .assertEqual (
469
- "analyze_docker_image" , response .data ["runs" ][0 ]["pipeline_name" ]
470
- )
471
- self .assertEqual ("inspect_packages" , response .data ["runs" ][1 ]["pipeline_name" ])
472
- self .assertEqual (
473
- "scan_single_package" , response .data ["runs" ][2 ]["pipeline_name" ]
474
- )
475
- self .assertEqual (
476
- ["StaticResolver" ], response .data ["runs" ][1 ]["selected_groups" ]
477
- )
478
- runs = Project .objects .get (name = data ["name" ]).runs .all ()
479
- self .assertEqual ("analyze_docker_image" , runs [0 ].pipeline_name )
480
- self .assertEqual ("inspect_packages" , runs [1 ].pipeline_name )
481
- self .assertEqual ("scan_single_package" , runs [2 ].pipeline_name )
482
- self .assertEqual (["StaticResolver" ], runs [1 ].selected_groups )
461
+ self .assertEqual (expected , response .data )
483
462
484
463
def test_scanpipe_api_project_create_pipeline_old_name_compatibility (self ):
485
464
data = {
@@ -532,6 +511,31 @@ def test_scanpipe_api_project_create_pipeline_groups(self):
532
511
self .assertEqual ("inspect_packages" , run .pipeline_name )
533
512
self .assertEqual (["StaticResolver" ], run .selected_groups )
534
513
514
+ data = {
515
+ "name" : "Mix of string and list plus selected groups" ,
516
+ "pipeline" : [
517
+ "map_deploy_to_develop:Java,JavaScript" ,
518
+ "inspect_packages:StaticResolver" ,
519
+ ],
520
+ }
521
+ response = self .csrf_client .post (self .project_list_url , data )
522
+ self .assertEqual (status .HTTP_201_CREATED , response .status_code )
523
+ self .assertEqual (
524
+ "map_deploy_to_develop" , response .data ["runs" ][0 ]["pipeline_name" ]
525
+ )
526
+ self .assertEqual ("inspect_packages" , response .data ["runs" ][1 ]["pipeline_name" ])
527
+ self .assertEqual (
528
+ ["Java" , "JavaScript" ], response .data ["runs" ][0 ]["selected_groups" ]
529
+ )
530
+ self .assertEqual (
531
+ ["StaticResolver" ], response .data ["runs" ][1 ]["selected_groups" ]
532
+ )
533
+ runs = Project .objects .get (name = data ["name" ]).runs .all ()
534
+ self .assertEqual ("map_deploy_to_develop" , runs [0 ].pipeline_name )
535
+ self .assertEqual ("inspect_packages" , runs [1 ].pipeline_name )
536
+ self .assertEqual (["Java" , "JavaScript" ], runs [0 ].selected_groups )
537
+ self .assertEqual (["StaticResolver" ], runs [1 ].selected_groups )
538
+
535
539
def test_scanpipe_api_project_create_webhooks (self ):
536
540
data = {
537
541
"name" : "Project1" ,
0 commit comments