Skip to content

Commit f732bc1

Browse files
committed
Add basic unit tests for get_vulnerabilities and get_vulnerabilities_from_latest_tag
1 parent 5d9f124 commit f732bc1

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-1
lines changed

exasol/toolbox/util/dependencies/audit.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,12 @@ def security_issue_dict(self) -> list[dict[str, str | list[str]]]:
149149
]
150150

151151

152+
def get_vulnerabilities(working_directory: Path) -> list[Vulnerability]:
153+
return Vulnerabilities.load_from_pip_audit(
154+
working_directory=working_directory
155+
).vulnerabilities
156+
157+
152158
def get_vulnerabilities_from_latest_tag():
153159
with poetry_files_from_latest_tag() as tmp_dir:
154-
return Vulnerabilities.load_from_pip_audit(working_directory=tmp_dir)
160+
return get_vulnerabilities(working_directory=tmp_dir)

test/unit/util/dependencies/audit_test.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111
Vulnerabilities,
1212
Vulnerability,
1313
audit_poetry_files,
14+
get_vulnerabilities,
15+
get_vulnerabilities_from_latest_tag,
1416
)
17+
from noxconfig import PROJECT_CONFIG
1518

1619

1720
@pytest.fixture
@@ -133,3 +136,40 @@ def test_security_issue_dict(sample_vulnerability):
133136
)
134137
result = vulnerabilities.security_issue_dict
135138
assert result == [sample_vulnerability.security_issue_entry]
139+
140+
141+
def test_get_vulnerabilities(sample_vulnerability):
142+
with mock.patch(
143+
"exasol.toolbox.util.dependencies.audit.audit_poetry_files",
144+
return_value=sample_vulnerability.pip_audit_json,
145+
):
146+
result = get_vulnerabilities(PROJECT_CONFIG.root)
147+
# if successful, no errors & should be non-empty due to mock
148+
assert isinstance(result, list)
149+
assert len(result) == 1
150+
151+
152+
class TestGetVulnerabilities:
153+
def test_with_mock(self, sample_vulnerability):
154+
with mock.patch(
155+
"exasol.toolbox.util.dependencies.audit.audit_poetry_files",
156+
return_value=sample_vulnerability.pip_audit_json,
157+
):
158+
result = get_vulnerabilities(PROJECT_CONFIG.root)
159+
160+
# if successful, no errors & should be 1 due to mock
161+
assert isinstance(result, list)
162+
assert len(result) == 1
163+
164+
165+
class TestGetVulnerabilitiesFromLatestTag:
166+
def test_with_mock(self, sample_vulnerability):
167+
with mock.patch(
168+
"exasol.toolbox.util.dependencies.audit.audit_poetry_files",
169+
return_value=sample_vulnerability.pip_audit_json,
170+
):
171+
result = get_vulnerabilities_from_latest_tag()
172+
173+
# if successful, no errors & should be 1 due to mock
174+
assert isinstance(result, list)
175+
assert len(result) == 1

0 commit comments

Comments
 (0)