File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1799,6 +1799,7 @@ def only_rendering_fields(self):
17991799 "filename" ,
18001800 "license_expression" ,
18011801 "risk_score" ,
1802+ "latest_non_vulnerable_version" ,
18021803 "dataspace__name" ,
18031804 "dataspace__show_usage_policy_in_user_views" ,
18041805 )
Original file line number Diff line number Diff line change @@ -1339,7 +1339,11 @@ def test_api_package_endpoint_vulnerabilities_features(self):
13391339 self .client .login (username = "super_user" , password = "secret" )
13401340 vulnerability1 = make_vulnerability (self .dataspace , affecting = self .package1 )
13411341 vulnerability2 = make_vulnerability (self .dataspace )
1342- self .package1 .update (risk_score = 9.0 )
1342+ self .package1 .update (
1343+ risk_score = 9.0 ,
1344+ next_non_vulnerable_version = "1.2.4" ,
1345+ latest_non_vulnerable_version = "2.0.0" ,
1346+ )
13431347
13441348 data = {"is_vulnerable" : "yes" }
13451349 response = self .client .get (self .package_list_url , data )
@@ -1349,6 +1353,8 @@ def test_api_package_endpoint_vulnerabilities_features(self):
13491353
13501354 results = response .data ["results" ]
13511355 self .assertEqual ("9.0" , results [0 ]["risk_score" ])
1356+ self .assertEqual ("1.2.4" , results [0 ]["next_non_vulnerable_version" ])
1357+ self .assertEqual ("2.0.0" , results [0 ]["latest_non_vulnerable_version" ])
13521358 self .assertEqual (
13531359 vulnerability1 .advisory_id ,
13541360 results [0 ]["affected_by_vulnerabilities" ][0 ]["advisory_id" ],
Original file line number Diff line number Diff line change @@ -3023,6 +3023,23 @@ def test_package_details_view_tab_vulnerabilities(self):
30233023 self .assertContains (response , 'id="tab_vulnerabilities"' )
30243024 self .assertContains (response , self .vulnerability1 .advisory_id )
30253025
3026+ def test_package_details_view_tab_vulnerabilities_fixed_by_packages (self ):
3027+ fixing_package = make_package (self .dataspace , package_url = "pkg:pypi/idna@3.7" )
3028+ self .vulnerability1 .fixed_by_packages = [
3029+ "pkg:pypi/idna@3.7" ,
3030+ "pkg:pypi/idna@9.9.9" ,
3031+ ]
3032+ self .vulnerability1 .save ()
3033+
3034+ self .client .login (username = self .super_user .username , password = "secret" )
3035+ response = self .client .get (self .package1 .details_url )
3036+
3037+ # A known package is linked directly.
3038+ self .assertContains (response , fixing_package .get_absolute_url ())
3039+ # An unknown package offers an "Add Package" link instead.
3040+ self .assertContains (response , "idna@9.9.9" )
3041+ self .assertContains (response , "package_url=pkg:pypi/idna@9.9.9" )
3042+
30263043 def test_vulnerablecode_get_plain_purls (self ):
30273044 purls = get_plain_purls (packages = [])
30283045 self .assertEqual ([], purls )
Original file line number Diff line number Diff line change 315315 "api_data_url" : " " ,
316316 "datasource_id" : " " ,
317317 "file_references" : [],
318- "parties" : []
318+ "parties" : [],
319+ "next_non_vulnerable_version" : " " ,
320+ "latest_non_vulnerable_version" : " "
319321 }
320322},
321323{
Original file line number Diff line number Diff line change 4949 "api_data_url" : " " ,
5050 "datasource_id" : " " ,
5151 "file_references" : [],
52- "parties" : []
52+ "parties" : [],
53+ "next_non_vulnerable_version" : " " ,
54+ "latest_non_vulnerable_version" : " "
5355 }
5456},
5557{
Original file line number Diff line number Diff line change @@ -96,6 +96,8 @@ def test_api_vulnerabilities_list_endpoint_filters(self):
9696 self .assertContains (response , self .vulnerability3 .advisory_id )
9797
9898 def test_api_vulnerabilities_detail_endpoint (self ):
99+ self .vulnerability1 .fixed_by_packages = ["pkg:pypi/idna@3.7" ]
100+ self .vulnerability1 .save ()
99101 detail_url = reverse ("api_v2:vulnerability-detail" , args = [self .vulnerability1 .uuid ])
100102 self .client .login (username = "super_user" , password = "secret" )
101103
@@ -107,6 +109,7 @@ def test_api_vulnerabilities_detail_endpoint(self):
107109 self .assertEqual (self .vulnerability1 .advisory_uid , response .data ["advisory_uid" ])
108110 self .assertEqual (str (self .vulnerability1 .uuid ), response .data ["uuid" ])
109111 self .assertEqual ("0.0" , response .data ["risk_score" ])
112+ self .assertEqual (["pkg:pypi/idna@3.7" ], response .data ["fixed_by_packages" ])
110113 self .assertEqual (1 , len (response .data ["affected_packages" ]))
111114 self .assertEqual (1 , len (response .data ["affected_products" ]))
112115
You can’t perform that action at this time.
0 commit comments