|
| 1 | +from dojo.models import Test |
| 2 | +from dojo.tools.sysdig.sysdig_cli.parser import SysdigCLIParser |
| 3 | +from dojo.tools.sysdig.sysdig_reports.parser import SysdigReportsParser |
| 4 | +from unittests.dojo_test_case import DojoTestCase, get_unit_tests_scans_path |
| 5 | + |
| 6 | + |
| 7 | +class TestSysdigParsers(DojoTestCase): |
| 8 | + |
| 9 | + def test_sysdig_parser_with_many_vuln_has_many_findings_cli(self): |
| 10 | + with open(get_unit_tests_scans_path("sysdig_cli") / "sysdig_reports_many_vul.csv", encoding="utf-8") as testfile: |
| 11 | + parser = SysdigCLIParser() |
| 12 | + findings = parser.get_findings(testfile, Test()) |
| 13 | + for finding in findings: |
| 14 | + for endpoint in finding.unsaved_endpoints: |
| 15 | + endpoint.clean() |
| 16 | + self.assertEqual(31, len(findings)) |
| 17 | + finding = findings[0] |
| 18 | + self.assertEqual("CVE-2013-7459 - pycrypto", finding.title) |
| 19 | + self.assertEqual("pycrypto", finding.component_name) |
| 20 | + self.assertEqual("2.6.1", finding.component_version) |
| 21 | + self.assertEqual("Critical", finding.severity) |
| 22 | + self.assertEqual("CVE-2013-7459", finding.unsaved_vulnerability_ids[0]) |
| 23 | + self.assertEqual(9.8, finding.cvssv3_score) |
| 24 | + self.assertEqual("https://nvd.nist.gov/vuln/detail/CVE-2013-7459", finding.references) |
| 25 | + self.assertEqual("0.00587", finding.epss_score) |
| 26 | + |
| 27 | + def test_sysdig_parser_json_with_many_findings_cli(self): |
| 28 | + with open(get_unit_tests_scans_path("sysdig_cli") / "sysdig_reports_many_vul.json", encoding="utf-8") as testfile: |
| 29 | + parser = SysdigCLIParser() |
| 30 | + findings = parser.get_findings(testfile, Test()) |
| 31 | + for finding in findings: |
| 32 | + for endpoint in finding.unsaved_endpoints: |
| 33 | + endpoint.clean() |
| 34 | + self.assertEqual(31, len(findings)) |
| 35 | + finding = findings[0] |
| 36 | + self.assertEqual("CVE-2023-50782 - cryptography - v42.0.0", finding.title) |
| 37 | + self.assertEqual("cryptography", finding.component_name) |
| 38 | + self.assertEqual("1.7.1", finding.component_version) |
| 39 | + self.assertEqual("High", finding.severity) |
| 40 | + self.assertEqual("CVE-2023-50782", finding.unsaved_vulnerability_ids[0]) |
| 41 | + self.assertEqual(7.5, finding.cvssv3_score) |
0 commit comments