From e3671a655244d8da2427c99d7589c7a159a97b2b Mon Sep 17 00:00:00 2001 From: Tushar Goel Date: Thu, 26 Jan 2023 18:40:49 +0530 Subject: [PATCH 1/2] Use for_purl instead of for_package_url in package detail view Signed-off-by: Tushar Goel --- vulnerabilities/tests/test_view.py | 8 +++++++- vulnerabilities/views.py | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/vulnerabilities/tests/test_view.py b/vulnerabilities/tests/test_view.py index db511dd6b..d00c18968 100644 --- a/vulnerabilities/tests/test_view.py +++ b/vulnerabilities/tests/test_view.py @@ -14,7 +14,7 @@ from vulnerabilities.models import Alias from vulnerabilities.models import Package from vulnerabilities.models import Vulnerability -from vulnerabilities.views import PackageSearch +from vulnerabilities.views import PackageDetails, PackageSearch class PackageSearchTestCase(TestCase): @@ -34,6 +34,7 @@ def setUp(self): "pkg:nginx/nginx@1.14.1", "pkg:nginx/nginx@1.0.7", "pkg:nginx/nginx@1.0.15", + "pkg:nginx/nginx@1.0.15?foo=bar", "pkg:pypi/foo@1", ] self.packages = packages @@ -57,6 +58,11 @@ def test_package_view(self): pkgs = list(qs) self.assertEqual(len(pkgs), 1) self.assertEqual(pkgs[0].purl, "pkg:nginx/nginx@1.0.15") + + def test_package_detail_view(self): + package = PackageDetails(kwargs={"purl":"pkg:nginx/nginx@1.0.15"}).get_object() + assert package.purl == "pkg:nginx/nginx@1.0.15" + def test_package_view_with_purl_fragment(self): qs = PackageSearch().get_queryset(query="nginx@1.0.15") diff --git a/vulnerabilities/views.py b/vulnerabilities/views.py index 117f1b6e8..e96f43a6d 100644 --- a/vulnerabilities/views.py +++ b/vulnerabilities/views.py @@ -91,7 +91,7 @@ def get_object(self, queryset=None): purl = self.kwargs.get(self.slug_url_kwarg) if purl: - queryset = queryset.for_package_url(purl_str=purl, encode=False) + queryset = queryset.for_purl(purl) else: cls = self.__class__.__name__ raise AttributeError( From ba1543940f7518268a270aabd5a485abfc5e0947 Mon Sep 17 00:00:00 2001 From: Tushar Goel Date: Thu, 26 Jan 2023 18:45:10 +0530 Subject: [PATCH 2/2] Fix tests Signed-off-by: Tushar Goel --- vulnerabilities/tests/test_view.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/vulnerabilities/tests/test_view.py b/vulnerabilities/tests/test_view.py index d00c18968..bc50afeb1 100644 --- a/vulnerabilities/tests/test_view.py +++ b/vulnerabilities/tests/test_view.py @@ -14,7 +14,8 @@ from vulnerabilities.models import Alias from vulnerabilities.models import Package from vulnerabilities.models import Vulnerability -from vulnerabilities.views import PackageDetails, PackageSearch +from vulnerabilities.views import PackageDetails +from vulnerabilities.views import PackageSearch class PackageSearchTestCase(TestCase): @@ -56,13 +57,12 @@ def test_packages_search_view_paginator(self): def test_package_view(self): qs = PackageSearch().get_queryset(query="pkg:nginx/nginx@1.0.15?foo=bar") pkgs = list(qs) - self.assertEqual(len(pkgs), 1) + self.assertEqual(len(pkgs), 2) self.assertEqual(pkgs[0].purl, "pkg:nginx/nginx@1.0.15") - + def test_package_detail_view(self): - package = PackageDetails(kwargs={"purl":"pkg:nginx/nginx@1.0.15"}).get_object() + package = PackageDetails(kwargs={"purl": "pkg:nginx/nginx@1.0.15"}).get_object() assert package.purl == "pkg:nginx/nginx@1.0.15" - def test_package_view_with_purl_fragment(self): qs = PackageSearch().get_queryset(query="nginx@1.0.15") @@ -88,6 +88,7 @@ def test_package_view_with_purl_fragment(self): "pkg:nginx/nginx@1.14.1", "pkg:nginx/nginx@1.0.7", "pkg:nginx/nginx@1.0.15", + "pkg:nginx/nginx@1.0.15?foo=bar", ] def test_package_view_with_valid_purl_without_version(self): @@ -108,6 +109,7 @@ def test_package_view_with_valid_purl_without_version(self): "pkg:nginx/nginx@1.14.1", "pkg:nginx/nginx@1.0.7", "pkg:nginx/nginx@1.0.15", + "pkg:nginx/nginx@1.0.15?foo=bar", ] def test_package_view_with_valid_purl_and_incomplete_version(self): @@ -127,6 +129,7 @@ def test_package_view_with_valid_purl_and_incomplete_version(self): "pkg:nginx/nginx@1.14.1", "pkg:nginx/nginx@1.0.7", "pkg:nginx/nginx@1.0.15", + "pkg:nginx/nginx@1.0.15?foo=bar", ] def test_package_view_with_purl_type(self):