4141from tests import reorder
4242
4343
44- class TestModelVulnerability (TestCase ):
44+ class TestModelVulnerabilitySeverity (TestCase ):
4545
4646 def test_v_severity_from_cvss_scores_single_critical (self ) -> None :
4747 self .assertEqual (
@@ -85,13 +85,33 @@ def test_v_severity_from_cvss_scores_multiple_high(self) -> None:
8585 VulnerabilitySeverity .HIGH
8686 )
8787
88+ class TestModelVulnerabilityScoreSource (TestCase ):
89+
90+ def test_v_source_parse_other (self ) -> None :
91+ self .assertEqual (
92+ VulnerabilityScoreSource .get_from_vector ('loremIpsum' ),
93+ VulnerabilityScoreSource .OTHER
94+ )
95+
96+ def test_v_source_parse_cvss4_0 (self ) -> None :
97+ self .assertEqual (
98+ VulnerabilityScoreSource .get_from_vector ('CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U' ),
99+ VulnerabilityScoreSource .CVSS_V4
100+ )
101+
88102 def test_v_source_parse_cvss3_1 (self ) -> None :
103+ self .assertEqual (
104+ VulnerabilityScoreSource .get_from_vector ('CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H' ),
105+ VulnerabilityScoreSource .CVSS_V3_1
106+ )
107+
108+ def test_v_source_parse_cvss3_0 (self ) -> None :
89109 self .assertEqual (
90110 VulnerabilityScoreSource .get_from_vector ('CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:C/C:L/I:N/A:N' ),
91111 VulnerabilityScoreSource .CVSS_V3
92112 )
93113
94- def test_v_source_parse_cvss2_1 (self ) -> None :
114+ def test_v_source_parse_cvss2_0 (self ) -> None :
95115 self .assertEqual (
96116 VulnerabilityScoreSource .get_from_vector ('CVSS:2.0/AV:N/AC:L/Au:N/C:N/I:N/A:C' ),
97117 VulnerabilityScoreSource .CVSS_V2
@@ -103,7 +123,7 @@ def test_v_source_parse_owasp_1(self) -> None:
103123 VulnerabilityScoreSource .OWASP
104124 )
105125
106- def test_v_source_get_localised_vector_cvss3_1 (self ) -> None :
126+ def test_v_source_get_localised_vector_cvss3_0 (self ) -> None :
107127 self .assertEqual (
108128 VulnerabilityScoreSource .CVSS_V3 .get_localised_vector (
109129 vector = 'CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:C/C:L/I:N/A:N'
@@ -166,6 +186,8 @@ def test_v_source_get_localised_vector_other_2(self) -> None:
166186 'SOMETHING_OR_OTHER'
167187 )
168188
189+ class TestModelVulnerability (TestCase ):
190+
169191 def test_empty_vulnerability (self ) -> None :
170192 v = Vulnerability ()
171193 self .assertIsNone (v .bom_ref .value )
0 commit comments