|
8 | 8 | # |
9 | 9 |
|
10 | 10 | import os |
11 | | -from unittest import TestCase |
12 | 11 |
|
13 | | -from vulnerabilities import severity_systems |
14 | | -from vulnerabilities.importer import AdvisoryData |
15 | | -from vulnerabilities.importer import Reference |
16 | | -from vulnerabilities.importer import VulnerabilitySeverity |
17 | 12 | from vulnerabilities.importers.suse_scores import SUSESeverityScoreImporter |
| 13 | +from vulnerabilities.tests import util_tests |
18 | 14 | from vulnerabilities.utils import load_yaml |
19 | 15 |
|
20 | 16 | BASE_DIR = os.path.dirname(os.path.abspath(__file__)) |
21 | | -TEST_DATA = os.path.join(BASE_DIR, "test_data/suse_scores", "suse-cvss-scores.yaml") |
| 17 | +TEST_DIR = os.path.join(BASE_DIR, "test_data/suse_scores") |
22 | 18 |
|
23 | 19 |
|
24 | | -class TestSUSESeverityScoreImporter(TestCase): |
25 | | - def test_to_advisory(self): |
26 | | - raw_data = load_yaml(TEST_DATA) |
27 | | - expected_data = [ |
28 | | - AdvisoryData( |
29 | | - summary="", |
30 | | - references=[ |
31 | | - Reference( |
32 | | - reference_id="", |
33 | | - url="https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml", |
34 | | - severities=[ |
35 | | - VulnerabilitySeverity( |
36 | | - system=severity_systems.CVSSV2, |
37 | | - value="4.3", |
38 | | - scoring_elements="AV:N/AC:M/Au:N/C:N/I:N/A:P", |
39 | | - ), |
40 | | - VulnerabilitySeverity( |
41 | | - system=severity_systems.CVSSV31, |
42 | | - value="3.7", |
43 | | - scoring_elements="CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L", |
44 | | - ), |
45 | | - ], |
46 | | - ) |
47 | | - ], |
48 | | - vulnerability_id="CVE-2004-0230", |
49 | | - ), |
50 | | - AdvisoryData( |
51 | | - summary="", |
52 | | - references=[ |
53 | | - Reference( |
54 | | - reference_id="", |
55 | | - url="https://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml", |
56 | | - severities=[ |
57 | | - VulnerabilitySeverity( |
58 | | - system=severity_systems.CVSSV3, |
59 | | - value="8.6", |
60 | | - scoring_elements="CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N", |
61 | | - ), |
62 | | - ], |
63 | | - ) |
64 | | - ], |
65 | | - vulnerability_id="CVE-2003-1605", |
66 | | - ), |
67 | | - ] |
68 | | - |
69 | | - found_data = SUSESeverityScoreImporter.to_advisory(raw_data) |
70 | | - found_advisories = list(map(AdvisoryData.normalized, found_data)) |
71 | | - expected_advisories = list(map(AdvisoryData.normalized, expected_data)) |
72 | | - assert sorted(found_advisories) == sorted(expected_advisories) |
| 20 | +def test_suse_score_import(): |
| 21 | + raw_data = load_yaml(os.path.join(TEST_DIR, "suse-cvss-scores.yaml")) |
| 22 | + expected_file = os.path.join(TEST_DIR, "suse-cvss-scores-expected.json") |
| 23 | + advisories = list(SUSESeverityScoreImporter().to_advisory(raw_data)) |
| 24 | + expected_advisories = [adv.to_dict() for adv in advisories] |
| 25 | + util_tests.check_results_against_json(expected_advisories, expected_file) |
0 commit comments