@@ -705,6 +705,46 @@ def test_api_response(self):
705705 self .assertEqual (response ["count" ], 1 )
706706
707707
708+ class TestCPEApiWithPackageVulnerabilityRelation (TestCase ):
709+ def setUp (self ):
710+ self .
user = ApiUser .
objects .
create_api_user (
username = "[email protected] " )
711+ self .auth = f"Token { self .user .auth_token .key } "
712+ self .csrf_client = APIClient (enforce_csrf_checks = True )
713+ self .csrf_client .credentials (HTTP_AUTHORIZATION = self .auth )
714+ self .vulnerability = Vulnerability .objects .create (summary = "test" )
715+ self .affected_package , _ = Package .objects .get_or_create_from_purl (
716+ purl = "pkg:nginx/[email protected] " 717+ )
718+ self .
fixed_package ,
_ = Package .
objects .
get_or_create_from_purl (
purl = "pkg:nginx/[email protected] " )
719+ AffectedByPackageRelatedVulnerability .objects .create (
720+ vulnerability = self .vulnerability ,
721+ created_by = "test" ,
722+ package = self .affected_package ,
723+ confidence = 100 ,
724+ )
725+ FixingPackageRelatedVulnerability .objects .create (
726+ vulnerability = self .vulnerability ,
727+ created_by = "test" ,
728+ package = self .fixed_package ,
729+ confidence = 100 ,
730+ )
731+ for i in range (0 , 10 ):
732+ ref , _ = VulnerabilityReference .objects .get_or_create (
733+ reference_id = f"cpe:/a:nginx:{ i } " ,
734+ url = f"https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:nginx:{ i } " ,
735+ )
736+ VulnerabilityRelatedReference .objects .create (
737+ reference = ref , vulnerability = self .vulnerability
738+ )
739+
740+ def test_cpe_api (self ):
741+ response = self .csrf_client .get ("/api/cpes/" , format = "json" )
742+ self .assertEqual (status .HTTP_200_OK , response .status_code )
743+
744+ response_data = response .json ()
745+ self .assertEqual (1 , response_data ["count" ])
746+
747+
708748class AliasApi (TestCase ):
709749 def setUp (self ):
710750 self .
user = ApiUser .
objects .
create_api_user (
username = "[email protected] " )
0 commit comments