Skip to content

Commit 7f96025

Browse files
authored
Fix crash when using --check switch (#74)
1 parent 161a926 commit 7f96025

File tree

3 files changed

+29
-17
lines changed

3 files changed

+29
-17
lines changed

sarif/cmdline/main.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,9 +226,8 @@ def _create_arg_parser():
226226
def _check(input_files: sarif_file.SarifFileSet, check_level):
227227
ret = 0
228228
if check_level:
229-
counts = input_files.get_result_count_by_severity()
230229
for severity in sarif_file.SARIF_SEVERITIES_WITH_NONE:
231-
ret += counts.get(severity, 0)
230+
ret += input_files.get_report().get_issue_count_for_severity(severity)
232231
if severity == check_level:
233232
break
234233
if ret > 0:

sarif/sarif_file.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -477,21 +477,6 @@ def get_result_count(self) -> int:
477477
"""
478478
return sum(run.get_result_count() for run in self.runs)
479479

480-
def get_result_count_by_severity(self, severities=None) -> Dict[str, int]:
481-
"""
482-
Return a dict from SARIF severity to number of records.
483-
"""
484-
severities = severities or self.get_severities()
485-
result_count_by_severity_per_run = [
486-
run.get_result_count_by_severity(severities) for run in self.runs
487-
]
488-
return {
489-
severity: sum(
490-
rc.get(severity, 0) for rc in result_count_by_severity_per_run
491-
)
492-
for severity in severities
493-
}
494-
495480
def get_filter_stats(self) -> Optional[FilterStats]:
496481
"""
497482
Get the number of records that were included or excluded by the filter.

tests/test_check_switch.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import datetime
2+
from sarif.cmdline.main import _check
3+
from sarif import sarif_file
4+
5+
SARIF = {
6+
"runs": [
7+
{
8+
"tool": {"driver": {"name": "Tool"}},
9+
"results": [{"level": "warning", "ruleId": "rule"}],
10+
}
11+
]
12+
}
13+
14+
15+
def test_check():
16+
fileSet = sarif_file.SarifFileSet()
17+
fileSet.add_file(
18+
sarif_file.SarifFile("SARIF", SARIF, mtime=datetime.datetime.now())
19+
)
20+
21+
result = _check(fileSet, "error")
22+
assert result == 0
23+
24+
result = _check(fileSet, "warning")
25+
assert result == 1
26+
27+
result = _check(fileSet, "note")
28+
assert result == 1

0 commit comments

Comments
 (0)