Skip to content

Commit 002948a

Browse files
committed
fix unit tests
Signed-off-by: tdruez <tdruez@aboutcode.org>
1 parent fb6640b commit 002948a

6 files changed

Lines changed: 34 additions & 3 deletions

File tree

component_catalog/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff 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
)

component_catalog/tests/test_api.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff 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"],

component_catalog/tests/test_views.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff 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)

dje/tests/testfiles/test_dataset_cc_only.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,9 @@
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
{

dje/tests/testfiles/test_dataset_pp_only.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@
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
{

vulnerabilities/tests/test_api.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)