diff --git a/vulnerabilities/tests/test_view.py b/vulnerabilities/tests/test_view.py index db511dd6b..bc50afeb1 100644 --- a/vulnerabilities/tests/test_view.py +++ b/vulnerabilities/tests/test_view.py @@ -14,6 +14,7 @@ from vulnerabilities.models import Alias from vulnerabilities.models import Package from vulnerabilities.models import Vulnerability +from vulnerabilities.views import PackageDetails from vulnerabilities.views import PackageSearch @@ -34,6 +35,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 @@ -55,9 +57,13 @@ 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() + 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") pkgs = list(qs) @@ -82,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): @@ -102,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): @@ -121,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): 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(