|
9 | 9 |
|
10 | 10 |
|
11 | 11 | import os |
12 | | -from collections import OrderedDict |
13 | | -from unittest import TestCase |
14 | 12 |
|
15 | | -from packageurl import PackageURL |
16 | | - |
17 | | -from vulnerabilities.importer import AdvisoryData |
18 | | -from vulnerabilities.importer import Reference |
19 | 13 | from vulnerabilities.importers.retiredotnet import RetireDotnetImporter |
20 | | -from vulnerabilities.utils import AffectedPackage |
| 14 | +from vulnerabilities.tests import util_tests |
21 | 15 |
|
22 | 16 | BASE_DIR = os.path.dirname(os.path.abspath(__file__)) |
23 | 17 |
|
24 | 18 |
|
25 | | -class TestRetireDotnetImporter(TestCase): |
26 | | - @classmethod |
27 | | - def setUpClass(cls): |
28 | | - data_source_cfg = { |
29 | | - "repository_url": "https://test.net", |
30 | | - } |
31 | | - cls.data_src = RetireDotnetImporter(1, config=data_source_cfg) |
32 | | - |
33 | | - def test_vuln_id_from_desc(self): |
34 | | - |
35 | | - gibberish = "xyzabcpqr123" * 50 + "\n" * 100 |
36 | | - res = self.data_src.vuln_id_from_desc(gibberish) |
37 | | - assert res is None |
38 | | - |
39 | | - desc = "abcdef CVE-2002-1968 pqrstuvwxyz:_|-|" |
40 | | - res = self.data_src.vuln_id_from_desc(desc) |
41 | | - assert res == "CVE-2002-1968" |
42 | | - |
43 | | - def test_process_file(self): |
| 19 | +def test_vuln_id_from_desc(): |
| 20 | + importer = RetireDotnetImporter() |
| 21 | + gibberish = "xyzabcpqr123" * 50 + "\n" * 100 |
| 22 | + res = importer.vuln_id_from_desc(gibberish) |
| 23 | + assert res is None |
44 | 24 |
|
45 | | - path = os.path.join(BASE_DIR, "test_data/retiredotnet/test_file.json") |
46 | | - expected_data = Advisory( |
47 | | - summary="Microsoft Security Advisory CVE-2019-0982: ASP.NET Core Denial of Service Vulnerability", |
48 | | - vulnerability_id="CVE-2019-0982", |
49 | | - affected_packages=[ |
50 | | - AffectedPackage( |
51 | | - vulnerable_package=PackageURL( |
52 | | - type="nuget", |
53 | | - namespace=None, |
54 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
55 | | - version="1.0.0", |
56 | | - ), |
57 | | - patched_package=PackageURL( |
58 | | - type="nuget", |
59 | | - namespace=None, |
60 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
61 | | - version="1.0.11", |
62 | | - ), |
63 | | - ), |
64 | | - AffectedPackage( |
65 | | - vulnerable_package=PackageURL( |
66 | | - type="nuget", |
67 | | - namespace=None, |
68 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
69 | | - version="1.0.1", |
70 | | - ), |
71 | | - patched_package=PackageURL( |
72 | | - type="nuget", |
73 | | - namespace=None, |
74 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
75 | | - version="1.0.11", |
76 | | - ), |
77 | | - ), |
78 | | - AffectedPackage( |
79 | | - vulnerable_package=PackageURL( |
80 | | - type="nuget", |
81 | | - namespace=None, |
82 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
83 | | - version="1.0.2", |
84 | | - ), |
85 | | - patched_package=PackageURL( |
86 | | - type="nuget", |
87 | | - namespace=None, |
88 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
89 | | - version="1.0.11", |
90 | | - ), |
91 | | - ), |
92 | | - AffectedPackage( |
93 | | - vulnerable_package=PackageURL( |
94 | | - type="nuget", |
95 | | - namespace=None, |
96 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
97 | | - version="1.0.3", |
98 | | - ), |
99 | | - patched_package=PackageURL( |
100 | | - type="nuget", |
101 | | - namespace=None, |
102 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
103 | | - version="1.0.11", |
104 | | - ), |
105 | | - ), |
106 | | - AffectedPackage( |
107 | | - vulnerable_package=PackageURL( |
108 | | - type="nuget", |
109 | | - namespace=None, |
110 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
111 | | - version="1.0.4", |
112 | | - ), |
113 | | - patched_package=PackageURL( |
114 | | - type="nuget", |
115 | | - namespace=None, |
116 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
117 | | - version="1.0.11", |
118 | | - ), |
119 | | - ), |
120 | | - AffectedPackage( |
121 | | - vulnerable_package=PackageURL( |
122 | | - type="nuget", |
123 | | - namespace=None, |
124 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
125 | | - version="1.1.0", |
126 | | - ), |
127 | | - patched_package=PackageURL( |
128 | | - type="nuget", |
129 | | - namespace=None, |
130 | | - name="Microsoft.AspNetCore.SignalR.Protocols.MessagePack", |
131 | | - version="1.1.5", |
132 | | - ), |
133 | | - ), |
134 | | - ], |
135 | | - references=[ |
136 | | - Reference( |
137 | | - reference_id="", |
138 | | - url="https://github.com/aspnet/Announcements/issues/359", |
139 | | - severities=[], |
140 | | - ) |
141 | | - ], |
142 | | - ) |
| 25 | + desc = "abcdef CVE-2002-1968 pqrstuvwxyz:_|-|" |
| 26 | + res = importer.vuln_id_from_desc(desc) |
| 27 | + assert res == "CVE-2002-1968" |
143 | 28 |
|
144 | | - found_data = self.data_src.process_file(path) |
145 | 29 |
|
146 | | - assert expected_data == found_data |
| 30 | +def test_process_file(): |
| 31 | + path = os.path.join(BASE_DIR, "test_data/retiredotnet/test_file.json") |
| 32 | + importer = RetireDotnetImporter() |
| 33 | + expected_file = os.path.join(BASE_DIR, "test_data/retiredotnet/expected_file.json") |
| 34 | + advisory = importer.process_file(path) |
| 35 | + util_tests.check_results_against_json(advisory.to_dict(), expected_file) |
0 commit comments