Skip to content

Commit 605ccf0

Browse files
authored
Fixing call to date_parser in AWS Inspector2 parser (#11767)
* Fixing call to date_parser in AWS Inspector parser * Tweaked unit test * Linter fix
1 parent 17f0c38 commit 605ccf0

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

dojo/tools/aws_inspector2/parser.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def get_base_finding(self, raw_finding: dict) -> Finding:
8686
is_mitigated = True
8787
active = False
8888
if (last_observed := raw_finding.get("lastObservedAt")) is not None:
89-
mitigated = date_parser(last_observed)
89+
mitigated = date_parser.parse(last_observed)
9090
else:
9191
mitigated = datetime.now(UTC)
9292
finding.active = active
@@ -102,11 +102,11 @@ def get_package_vulnerability(self, finding: Finding, raw_finding: dict) -> Find
102102
vulnerability_packages_descriptions = "\n".join(
103103
[
104104
(
105-
f'*Vulnerable package*: {vulnerability_package.get("name", "N/A")}\n'
106-
f'\tpackage manager: {vulnerability_package.get("packageManager", "N/A")}\n'
107-
f'\tversion: {vulnerability_package.get("version", "N/A")}\n'
108-
f'\tfixed version: {vulnerability_package.get("fixedInVersion", "N/A")}\n'
109-
f'\tremediation: {vulnerability_package.get("remediation", "N/A")}\n'
105+
f"*Vulnerable package*: {vulnerability_package.get('name', 'N/A')}\n"
106+
f"\tpackage manager: {vulnerability_package.get('packageManager', 'N/A')}\n"
107+
f"\tversion: {vulnerability_package.get('version', 'N/A')}\n"
108+
f"\tfixed version: {vulnerability_package.get('fixedInVersion', 'N/A')}\n"
109+
f"\tremediation: {vulnerability_package.get('remediation', 'N/A')}\n"
110110
)
111111
for vulnerability_package in vulnerability_details.get("vulnerablePackages", [])
112112
],
@@ -165,7 +165,7 @@ def get_network_reachability(self, finding: Finding, raw_finding: dict) -> Findi
165165
network_path_steps = network_path_info.get("steps", [])
166166
steps_descriptions = "\n".join(
167167
[
168-
f'steps:\n{step_number}: {step.get("componentId", "N/A")} {step.get("componentType", "N/A")}'
168+
f"steps:\n{step_number}: {step.get('componentId', 'N/A')} {step.get('componentType', 'N/A')}"
169169
for step_number, step in enumerate(network_path_steps)
170170
],
171171
)

unittests/scans/aws_inspector2/aws_inspector2_many_vul.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
}
8181
],
8282
"severity": "MEDIUM",
83-
"status": "ACTIVE",
83+
"status": "CLOSED",
8484
"title": "CVE-2021-3744 - linux",
8585
"type": "PACKAGE_VULNERABILITY",
8686
"updatedAt": "2024-06-14T04:03:53.051000+02:00"
@@ -677,4 +677,4 @@
677677
"updatedAt": "2024-03-19T15:31:08.006000+01:00"
678678
}
679679
]
680-
}
680+
}

unittests/tools/test_aws_inspector2_parser.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from datetime import datetime
2+
3+
from dateutil.tz import tzoffset
14
from django.test import TestCase
25

36
from dojo.models import Test
@@ -35,6 +38,9 @@ def test_aws_inspector2_parser_with_many_vuln_has_many_findings(self):
3538
for endpoint in finding.unsaved_endpoints:
3639
endpoint.clean()
3740
self.assertEqual(8, len(findings))
41+
self.assertEqual(True, findings[0].is_mitigated)
42+
# 2024-06-14T04:03:53.051000+02:00
43+
self.assertEqual(datetime(2024, 6, 14, 4, 3, 53, 51000, tzinfo=tzoffset(None, 7200)), findings[0].mitigated)
3844

3945
def test_aws_inspector2_parser_empty_with_error(self):
4046
with self.assertRaises(TypeError) as context:

0 commit comments

Comments
 (0)