|
1 | 1 | import pytest |
| 2 | +from cvss import CVSS3 |
2 | 3 |
|
3 | 4 | from vulnerabilities.severity_systems import convert_cvssv2_vector_to_cvssv3_vector |
4 | 5 |
|
5 | 6 |
|
6 | 7 | @pytest.mark.parametrize( |
7 | | - "cvssv2_vector,cvssv3_vector", |
| 8 | + "value_cvssv3", |
| 9 | + "cvssv3_vector", |
| 10 | + "value_cvssv2", |
| 11 | + "cvssv2_vector", |
8 | 12 | [ |
9 | | - ("AV:A/AC:H/Au:S/C:P/I:P/A:P", "CVSS:3.0/AV:A/UI:R/AC:H/PR:L/C:L/I:L/A:L/S:C"), |
10 | | - ("AV:L/AC:L/Au:N/C:N/I:N/A:P", "CVSS:3.0/AV:L/UI:N/AC:L/PR:N/C:N/I:N/A:L/S:C"), |
11 | | - ("AV:L/AC:L/Au:N/C:P/I:P/A:C", "CVSS:3.0/AV:L/UI:N/AC:L/PR:N/C:L/I:L/A:H/S:C"), |
12 | | - ("AV:L/AC:L/Au:N/C:P/I:P/A:N", "CVSS:3.0/AV:L/UI:N/AC:L/PR:N/C:L/I:L/A:N/S:C"), |
13 | | - ("AV:L/AC:L/Au:N/C:P/I:P/A:P", "CVSS:3.0/AV:L/UI:N/AC:L/PR:N/C:L/I:L/A:L/S:C"), |
14 | | - ("AV:N/AC:L/Au:N/C:P/I:N/A:N", "CVSS:3.0/AV:N/UI:N/AC:L/PR:N/C:L/I:N/A:N/S:C"), |
15 | | - ("AV:N/AC:L/Au:N/C:P/I:P/A:P", "CVSS:3.0/AV:N/UI:N/AC:L/PR:N/C:L/I:L/A:L/S:C"), |
16 | | - ("AV:N/AC:M/Au:N/C:N/I:P/A:N", "CVSS:3.0/AV:N/UI:R/AC:L/PR:N/C:N/I:L/A:N/S:C"), |
17 | | - ("AV:N/AC:M/Au:N/C:P/I:N/A:N", "CVSS:3.0/AV:N/UI:R/AC:L/PR:N/C:L/I:N/A:N/S:C"), |
| 13 | + ( |
| 14 | + "9.8", |
| 15 | + "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", |
| 16 | + "AV:N/AC:L/Au:N/C:P/I:P/A:P", |
| 17 | + ), |
| 18 | + ( |
| 19 | + "7.5", |
| 20 | + "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", |
| 21 | + "AV:N/AC:L/Au:N/C:P/I:N/A:N", |
| 22 | + ), |
| 23 | + ( |
| 24 | + "7.5", |
| 25 | + "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", |
| 26 | + "AV:N/AC:L/Au:N/C:N/I:N/A:P", |
| 27 | + ), |
| 28 | + ( |
| 29 | + "7.5", |
| 30 | + "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", |
| 31 | + "AV:N/AC:L/Au:N/C:P/I:N/A:N", |
| 32 | + ), |
| 33 | + ( |
| 34 | + "7.5", |
| 35 | + "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", |
| 36 | + "AV:N/AC:L/Au:N/C:N/I:N/A:P", |
| 37 | + ), |
| 38 | + ( |
| 39 | + "7.5", |
| 40 | + "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", |
| 41 | + "AV:N/AC:L/Au:N/C:N/I:N/A:P", |
| 42 | + ), |
| 43 | + ( |
| 44 | + "7.8", |
| 45 | + "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", |
| 46 | + "AV:L/AC:L/Au:N/C:P/I:P/A:P", |
| 47 | + ), |
| 48 | + ( |
| 49 | + "9.8", |
| 50 | + "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", |
| 51 | + "AV:N/AC:L/Au:N/C:P/I:P/A:P", |
| 52 | + ), |
| 53 | + ( |
| 54 | + "7.5", |
| 55 | + "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", |
| 56 | + "AV:N/AC:L/Au:N/C:N/I:N/A:C", |
| 57 | + ), |
| 58 | + ( |
| 59 | + "7.5", |
| 60 | + "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", |
| 61 | + "AV:N/AC:L/Au:N/C:P/I:N/A:N", |
| 62 | + ), |
| 63 | + ( |
| 64 | + "9.8", |
| 65 | + "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", |
| 66 | + "AV:N/AC:L/Au:N/C:P/I:P/A:P", |
| 67 | + ), |
18 | 68 | ], |
19 | 69 | ) |
20 | | -def convert_cvssv2_to_cvssv3(cvssv2_vector, cvssv3_vector): |
21 | | - assert convert_cvssv2_vector_to_cvssv3_vector(cvssv2_vector) == cvssv3_vector |
| 70 | +def convert_cvssv2_to_cvssv3(value_cvssv3, cvssv3_vector, cvssv2_vector): |
| 71 | + computed_cvssv3_vector = convert_cvssv2_vector_to_cvssv3_vector(cvssv2_vector) |
| 72 | + assert computed_cvssv3_vector == cvssv3_vector |
| 73 | + assert CVSS3(computed_cvssv3_vector) == value_cvssv3 |
0 commit comments