Skip to content

Commit c7a9358

Browse files
committed
Test /api/cpe with package related vulnerabilities
Signed-off-by: Keshav Priyadarshi <[email protected]>
1 parent 74a67b6 commit c7a9358

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

vulnerabilities/tests/test_api.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
708748
class AliasApi(TestCase):
709749
def setUp(self):
710750
self.user = ApiUser.objects.create_api_user(username="[email protected]")

0 commit comments

Comments
 (0)