@@ -34,6 +34,7 @@ def setUp(self):
3434 "pkg:nginx/nginx@1.14.1" ,
3535 "pkg:nginx/nginx@1.0.7" ,
3636 "pkg:nginx/nginx@1.0.15" ,
37+ "pkg:pypi/foo@1" ,
3738 ]
3839 self .packages = packages
3940 for package in packages :
@@ -63,6 +64,77 @@ def test_package_view_with_purl_fragment(self):
6364 self .assertEqual (len (pkgs ), 1 )
6465 self .assertEqual (pkgs [0 ].purl , "pkg:nginx/nginx@1.0.15" )
6566
67+ def test_package_view_with_purl_fragment (self ):
68+ qs = PackageSearch ().get_queryset (query = "nginx/nginx" )
69+ pkgs = list (qs )
70+ pkgs = [p .purl for p in pkgs ]
71+ assert pkgs == [
72+ "pkg:nginx/nginx@0.6.18" ,
73+ "pkg:nginx/nginx@1.20.0" ,
74+ "pkg:nginx/nginx@1.21.0" ,
75+ "pkg:nginx/nginx@1.20.1" ,
76+ "pkg:nginx/nginx@1.9.5" ,
77+ "pkg:nginx/nginx@1.17.2" ,
78+ "pkg:nginx/nginx@1.17.3" ,
79+ "pkg:nginx/nginx@1.16.1" ,
80+ "pkg:nginx/nginx@1.15.5" ,
81+ "pkg:nginx/nginx@1.15.6" ,
82+ "pkg:nginx/nginx@1.14.1" ,
83+ "pkg:nginx/nginx@1.0.7" ,
84+ "pkg:nginx/nginx@1.0.15" ,
85+ ]
86+
87+ def test_package_view_with_valid_purl_without_version (self ):
88+ qs = PackageSearch ().get_queryset (query = "pkg:nginx/nginx" )
89+ pkgs = list (qs )
90+ pkgs = [p .purl for p in pkgs ]
91+ assert pkgs == [
92+ "pkg:nginx/nginx@0.6.18" ,
93+ "pkg:nginx/nginx@1.20.0" ,
94+ "pkg:nginx/nginx@1.21.0" ,
95+ "pkg:nginx/nginx@1.20.1" ,
96+ "pkg:nginx/nginx@1.9.5" ,
97+ "pkg:nginx/nginx@1.17.2" ,
98+ "pkg:nginx/nginx@1.17.3" ,
99+ "pkg:nginx/nginx@1.16.1" ,
100+ "pkg:nginx/nginx@1.15.5" ,
101+ "pkg:nginx/nginx@1.15.6" ,
102+ "pkg:nginx/nginx@1.14.1" ,
103+ "pkg:nginx/nginx@1.0.7" ,
104+ "pkg:nginx/nginx@1.0.15" ,
105+ ]
106+
107+ def test_package_view_with_valid_purl_and_incomplete_version (self ):
108+ qs = PackageSearch ().get_queryset (query = "pkg:nginx/nginx@1" )
109+ pkgs = list (qs )
110+ pkgs = [p .purl for p in pkgs ]
111+ assert pkgs == [
112+ "pkg:nginx/nginx@1.20.0" ,
113+ "pkg:nginx/nginx@1.21.0" ,
114+ "pkg:nginx/nginx@1.20.1" ,
115+ "pkg:nginx/nginx@1.9.5" ,
116+ "pkg:nginx/nginx@1.17.2" ,
117+ "pkg:nginx/nginx@1.17.3" ,
118+ "pkg:nginx/nginx@1.16.1" ,
119+ "pkg:nginx/nginx@1.15.5" ,
120+ "pkg:nginx/nginx@1.15.6" ,
121+ "pkg:nginx/nginx@1.14.1" ,
122+ "pkg:nginx/nginx@1.0.7" ,
123+ "pkg:nginx/nginx@1.0.15" ,
124+ ]
125+
126+ def test_package_view_with_purl_type (self ):
127+ qs = PackageSearch ().get_queryset (query = "pkg:pypi" )
128+ pkgs = list (qs )
129+ pkgs = [p .purl for p in pkgs ]
130+ assert pkgs == ["pkg:pypi/foo@1" ]
131+
132+ def test_package_view_with_type_as_input (self ):
133+ qs = PackageSearch ().get_queryset (query = "pypi" )
134+ pkgs = list (qs )
135+ pkgs = [p .purl for p in pkgs ]
136+ assert pkgs == ["pkg:pypi/foo@1" ]
137+
66138
67139class VulnerabilitySearchTestCase (TestCase ):
68140 def setUp (self ):
0 commit comments