Skip to content

Commit 3134cc5

Browse files
committed
Add tests
Signed-off-by: Tushar Goel <[email protected]>
1 parent a17af5d commit 3134cc5

File tree

8 files changed

+4421
-1
lines changed

8 files changed

+4421
-1
lines changed

vulnerabilities/tests/test_apache_kafka.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,16 @@
77
# See https://aboutcode.org for more information about nexB OSS projects.
88
#
99

10+
import json
1011
import os
12+
from unittest.mock import patch
1113

1214
import pytest
1315

16+
from vulnerabilities.importer import AdvisoryData
1417
from vulnerabilities.importers.apache_kafka import ApacheKafkaImporter
18+
from vulnerabilities.improvers.default import DefaultImprover
19+
from vulnerabilities.improvers.valid_versions import ApacheKafkaImprover
1520
from vulnerabilities.tests import util_tests
1621

1722
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
@@ -32,6 +37,32 @@ def test_to_advisory():
3237
util_tests.check_results_against_json(result, expected_file)
3338

3439

40+
@patch("vulnerabilities.improvers.valid_versions.ApacheKafkaImprover.get_package_versions")
41+
def test_apache_tomcat_improver(mock_response):
42+
advisory_file = os.path.join(TEST_DATA, f"to-advisory-apache_kafka-expected.json")
43+
with open(advisory_file) as exp:
44+
advisories = [AdvisoryData.from_dict(adv) for adv in (json.load(exp))]
45+
mock_response.return_value = [
46+
"1.1.0",
47+
"1.1.1",
48+
"1.1.2",
49+
"1.1.3",
50+
"1.1.4",
51+
"1.1.5",
52+
"1.1.6",
53+
"1.1.7",
54+
"1.1.8",
55+
]
56+
improvers = [ApacheKafkaImprover(), DefaultImprover()]
57+
result = []
58+
for improver in improvers:
59+
for advisory in advisories:
60+
inference = [data.to_dict() for data in improver.get_inferences(advisory)]
61+
result.extend(inference)
62+
expected_file = os.path.join(TEST_DATA, f"apache-kafka-improver-expected.json")
63+
util_tests.check_results_against_json(result, expected_file)
64+
65+
3566
def to_advisory_changed_cve():
3667
with open(os.path.join(TEST_DATA, "cve-list-changed-cve.html")) as f:
3768
raw_data = f.read()

vulnerabilities/tests/test_apache_tomcat.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,23 @@
77
# See https://aboutcode.org for more information about nexB OSS projects.
88
#
99

10+
import json
1011
import os
11-
from unittest import TestCase
12+
from unittest.mock import patch
1213

1314
from univers.version_constraint import VersionConstraint
1415
from univers.version_range import ApacheVersionRange
1516
from univers.version_range import MavenVersionRange
1617
from univers.versions import MavenVersion
1718
from univers.versions import SemverVersion
1819

20+
from vulnerabilities.importer import AdvisoryData
1921
from vulnerabilities.importers.apache_tomcat import ApacheTomcatImporter
2022
from vulnerabilities.importers.apache_tomcat import extract_tomcat_advisory_data_from_page
2123
from vulnerabilities.importers.apache_tomcat import to_version_ranges_apache
2224
from vulnerabilities.importers.apache_tomcat import to_version_ranges_maven
25+
from vulnerabilities.improvers.default import DefaultImprover
26+
from vulnerabilities.improvers.valid_versions import ApacheTomcatImprover
2327
from vulnerabilities.tests import util_tests
2428

2529
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
@@ -39,6 +43,34 @@ def test_method_extract_advisories_from_page():
3943
util_tests.check_results_against_json(results, expected_file)
4044

4145

46+
@patch("vulnerabilities.improvers.valid_versions.ApacheTomcatImprover.get_package_versions")
47+
def test_apache_tomcat_improver(mock_response):
48+
advisory_file = os.path.join(
49+
TEST_DATA, f"parse-apache_tomcat-selected-advisories-expected.json"
50+
)
51+
with open(advisory_file) as exp:
52+
advisories = [AdvisoryData.from_dict(adv) for adv in (json.load(exp))]
53+
mock_response.return_value = [
54+
"1.1.0",
55+
"1.1.1",
56+
"1.1.2",
57+
"1.1.3",
58+
"1.1.4",
59+
"1.1.5",
60+
"1.1.6",
61+
"1.1.7",
62+
"1.1.8",
63+
]
64+
improvers = [ApacheTomcatImprover(), DefaultImprover()]
65+
result = []
66+
for improver in improvers:
67+
for advisory in advisories:
68+
inference = [data.to_dict() for data in improver.get_inferences(advisory)]
69+
result.extend(inference)
70+
expected_file = os.path.join(TEST_DATA, f"apache-tomcat-improver-expected.json")
71+
util_tests.check_results_against_json(result, expected_file)
72+
73+
4274
def test_extract_advisories_from_page():
4375
page = """
4476
<h3 id="Fixed_in_Apache_Tomcat_10.0.5"><span class="pull-right">6 April 2021</span> Fixed in Apache Tomcat 10.0.5</h3><div class="text">

0 commit comments

Comments
 (0)