99
1010from django .test import Client
1111from django .test import TestCase
12+ from packageurl import PackageURL
1213
1314from vulnerabilities .models import Alias
15+ from vulnerabilities .models import Package
1416from vulnerabilities .models import Vulnerability
17+ from vulnerabilities .views import PackageSearch
1518
1619
1720class PackageSearchTestCase (TestCase ):
1821 def setUp (self ):
1922 self .client = Client ()
23+ packages = [
24+ "pkg:nginx/nginx@0.6.18" ,
25+ "pkg:nginx/nginx@1.20.0" ,
26+ "pkg:nginx/nginx@1.21.0" ,
27+ "pkg:nginx/nginx@1.20.1" ,
28+ "pkg:nginx/nginx@1.9.5" ,
29+ "pkg:nginx/nginx@1.17.2" ,
30+ "pkg:nginx/nginx@1.17.3" ,
31+ "pkg:nginx/nginx@1.16.1" ,
32+ "pkg:nginx/nginx@1.15.5" ,
33+ "pkg:nginx/nginx@1.15.6" ,
34+ "pkg:nginx/nginx@1.14.1" ,
35+ "pkg:nginx/nginx@1.0.7" ,
36+ "pkg:nginx/nginx@1.0.15" ,
37+ ]
38+ self .packages = packages
39+ for package in packages :
40+ purl = PackageURL .from_string (package )
41+ attrs = {k : v for k , v in purl .to_dict ().items () if v }
42+ Package .objects .create (** attrs )
2043
2144 def test_packages_search_view_paginator (self ):
2245 response = self .client .get ("/packages/search?type=deb&name=&page=1" )
@@ -28,6 +51,12 @@ def test_packages_search_view_paginator(self):
2851 response = self .client .get ("/packages/search?type=&name=&page=" )
2952 self .assertEqual (response .status_code , 200 )
3053
54+ def test_package_view (self ):
55+ qs = PackageSearch ().get_queryset (query = "pkg:nginx/nginx@1.0.15?foo=bar" )
56+ pkgs = list (qs )
57+ self .assertEqual (len (pkgs ), 1 )
58+ self .assertEqual (pkgs [0 ].purl , "pkg:nginx/nginx@1.0.15" )
59+
3160
3261class VulnerabilitySearchTestCase (TestCase ):
3362 def setUp (self ):
0 commit comments