-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest_filter.py
104 lines (82 loc) · 2.45 KB
/
test_filter.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
from pathlib import Path
from simplesecurity import filter, level, types
THISDIR = str(Path(__file__).resolve().parent)
finding: types.Finding = {
"id": "TEST_ID",
"title": "TEST",
"description": "This is a test",
"file": "this_file_does_not_exist",
"evidence": [{"selected": True, "line": 0, "content": "lineContent"}],
"severity": level.Level.MED,
"confidence": level.Level.MED,
"line": 0,
"_other": {},
}
simpleFindings: list[types.Finding] = [
finding.copy(),
]
def test_lookupId_exists():
# "DUO105": ["B102"]
assert filter.lookupId("DUO105") == ["B102"]
def test_lookupId_notexists():
# "DUO105": ["B102"]
assert filter.lookupId("not_exists") == ["not_exists"]
def test_findingsEqual_true():
findingA = finding.copy()
findingB = finding.copy()
assert filter.findingsEqual(findingA, findingB) == 1
def test_findingsEqual_false_file():
findingA = finding.copy()
findingB = finding.copy()
findingB["file"] = "this_file_also_does_not_exist"
assert filter.findingsEqual(findingA, findingB) == 0
def test_findingsEqual_false_line():
findingA = finding.copy()
findingB = finding.copy()
findingB["line"] = 1
assert filter.findingsEqual(findingA, findingB) == 0
def test_findingsEqual_false_id():
findingA = finding.copy()
findingB = finding.copy()
findingB["id"] = "ANOTHER_TEST_ID"
assert filter.findingsEqual(findingA, findingB) == 0
def test_deduplicate():
assert filter.deduplicate([finding.copy(), finding.copy()]) == simpleFindings
def test_filterConfidence_2():
findingA = finding.copy()
findingA["confidence"] = level.Level.UNKNOWN
findingB = finding.copy()
findingB["confidence"] = level.Level.LOW
findingC = finding.copy()
findingC["confidence"] = level.Level.MED
findingD = finding.copy()
findingD["confidence"] = level.Level.HIGH
findingE = finding.copy()
findingE["confidence"] = level.Level.CRIT
assert (
len(
filter.filterSeverityAndConfidence(
[findingA, findingB, findingC, findingD, findingE], 0, 2
)
)
== 3
)
def test_filterSeverity_4():
findingA = finding.copy()
findingA["severity"] = level.Level.UNKNOWN
findingB = finding.copy()
findingB["severity"] = level.Level.LOW
findingC = finding.copy()
findingC["severity"] = level.Level.MED
findingD = finding.copy()
findingD["severity"] = level.Level.HIGH
findingE = finding.copy()
findingE["severity"] = level.Level.CRIT
assert (
len(
filter.filterSeverityAndConfidence(
[findingA, findingB, findingC, findingD, findingE], 4, 0
)
)
== 1
)