@@ -625,10 +625,7 @@ def test_scanpipe_check_vulnerabilities_pipeline_integration_test(
625625 expected = {"discovered_vulnerabilities" : vulnerability_data }
626626 self .assertEqual (expected , package1 .extra_data )
627627
628- @mock .patch ("scanpipe.pipelines.inspect_manifest.resolver_api" )
629- def test_scanpipe_inspect_manifest_pipeline_integration_test (self , resolver_api ):
630- resolver_api .return_value = mock .Mock (packages = [])
631-
628+ def test_scanpipe_inspect_manifest_pipeline_integration_test (self ):
632629 pipeline_name = "inspect_manifest"
633630 project1 = Project .objects .create (name = "Analysis" )
634631
@@ -640,14 +637,21 @@ def test_scanpipe_inspect_manifest_pipeline_integration_test(self, resolver_api)
640637 self .assertEqual (1 , exitcode , msg = out )
641638 self .assertIn ("No package type found for" , out )
642639
643- project1 .reset (keep_input = False )
640+ @mock .patch ("scanpipe.pipes.resolve.resolver_api" )
641+ def test_scanpipe_inspect_manifest_pipeline_pypi_integration_test (
642+ self , resolver_api
643+ ):
644+ pipeline_name = "inspect_manifest"
645+ project1 = Project .objects .create (name = "Analysis" )
646+
644647 run = project1 .add_pipeline (pipeline_name )
645648 pipeline = run .make_pipeline_instance ()
646649
650+ resolver_api .return_value = mock .Mock (packages = [])
647651 project1 .move_input_from (tempfile .mkstemp (suffix = "requirements.txt" )[1 ])
648652 exitcode , out = pipeline .execute ()
649653 self .assertEqual (1 , exitcode , msg = out )
650- self .assertIn ("No packages could be resolved. " , out )
654+ self .assertIn ("No packages could be resolved" , out )
651655
652656 resolver_api .return_value = mock .Mock (packages = [package_data1 ])
653657 exitcode , out = pipeline .execute ()
@@ -659,3 +663,23 @@ def test_scanpipe_inspect_manifest_pipeline_integration_test(self, resolver_api)
659663 for field_name , value in package_data1 .items ():
660664 if value and field_name not in exclude_fields :
661665 self .assertEqual (value , getattr (discoveredpackage , field_name ))
666+
667+ def test_scanpipe_inspect_manifest_pipeline_aboutfile_integration_test (self ):
668+ pipeline_name = "inspect_manifest"
669+ project1 = Project .objects .create (name = "Analysis" )
670+
671+ input_location = self .data_location / "Django-4.0.8-py3-none-any.whl.ABOUT"
672+ project1 .copy_input_from (input_location )
673+
674+ run = project1 .add_pipeline (pipeline_name )
675+ pipeline = run .make_pipeline_instance ()
676+
677+ exitcode , out = pipeline .execute ()
678+ self .assertEqual (0 , exitcode , msg = out )
679+
680+ self .assertEqual (1 , project1 .discoveredpackages .count ())
681+ discoveredpackage = project1 .discoveredpackages .get ()
682+ self .assertEqual ("pypi" , discoveredpackage .type )
683+ self .assertEqual ("django" , discoveredpackage .name )
684+ self .assertEqual ("4.0.8" , discoveredpackage .version )
685+ self .assertEqual ("bsd-new" , discoveredpackage .license_expression )
0 commit comments