Passed
Pull Request — master (#43)
by Jan
06:35
created

tests.unit_tests.test_oval_result_eval   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 266
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 204
dl 0
loc 266
ccs 30
cts 30
cp 1
rs 10
c 0
b 0
f 0
wmc 1

1 Function

Rating   Name   Duplication   Size   Complexity  
B test_evaluate_oval_result() 0 45 1
1 1
import pytest
2
3 1
from oscap_report.scap_results_parser.data_structures.oval_result_eval import (
4
    EMPTY_RESULT, OvalResult)
5
6 1
BAD_RESULT_COUNTS = {
7
    "number_of_true": -1,
8
    "number_of_false": -1,
9
    "number_of_error": -1,
10
    "number_of_unknown": -1,
11
    "number_of_noteval": -1,
12
    "number_of_notappl": -1
13
}
14
15 1
RESULT_COUNTS_1 = {
16
    "number_of_true": 3,
17
    "number_of_false": 3,
18
    "number_of_error": 3,
19
    "number_of_unknown": 0,
20
    "number_of_noteval": -1,
21
    "number_of_notappl": 3
22
}
23
24 1
RESULT_COUNTS_NOTAPPL = dict(**EMPTY_RESULT)
25 1
RESULT_COUNTS_NOTAPPL["number_of_notappl"] = 5
26
27
# AND cases
28 1
RESULT_COUNTS_AND_TRUE = {
29
    "number_of_true": 2,
30
    "number_of_false": 0,
31
    "number_of_error": 0,
32
    "number_of_unknown": 0,
33
    "number_of_noteval": 0,
34
    "number_of_notappl": 1
35
}
36
37 1
RESULT_COUNTS_AND_FALSE = {
38
    "number_of_true": 2,
39
    "number_of_false": 2,
40
    "number_of_error": 0,
41
    "number_of_unknown": 1,
42
    "number_of_noteval": 1,
43
    "number_of_notappl": 1
44
}
45
46 1
RESULT_COUNTS_AND_ERROR = {
47
    "number_of_true": 1,
48
    "number_of_false": 0,
49
    "number_of_error": 3,
50
    "number_of_unknown": 1,
51
    "number_of_noteval": 1,
52
    "number_of_notappl": 1
53
}
54
55 1
RESULT_COUNTS_AND_UNKNOWN = {
56
    "number_of_true": 0,
57
    "number_of_false": 0,
58
    "number_of_error": 0,
59
    "number_of_unknown": 3,
60
    "number_of_noteval": 1,
61
    "number_of_notappl": 2
62
}
63
64 1
RESULT_COUNTS_AND_NOTEVAL = {
65
    "number_of_true": 2,
66
    "number_of_false": 0,
67
    "number_of_error": 0,
68
    "number_of_unknown": 0,
69
    "number_of_noteval": 3,
70
    "number_of_notappl": 2
71
}
72
73
# OR cases
74 1
RESULT_COUNTS_OR_TRUE = {
75
    "number_of_true": 2,
76
    "number_of_false": 2,
77
    "number_of_error": 0,
78
    "number_of_unknown": 2,
79
    "number_of_noteval": 0,
80
    "number_of_notappl": 1
81
}
82
83 1
RESULT_COUNTS_OR_FALSE = {
84
    "number_of_true": 0,
85
    "number_of_false": 2,
86
    "number_of_error": 0,
87
    "number_of_unknown": 0,
88
    "number_of_noteval": 0,
89
    "number_of_notappl": 1
90
}
91
92 1
RESULT_COUNTS_OR_ERROR = {
93
    "number_of_true": 0,
94
    "number_of_false": 2,
95
    "number_of_error": 3,
96
    "number_of_unknown": 1,
97
    "number_of_noteval": 1,
98
    "number_of_notappl": 1
99
}
100
101 1
RESULT_COUNTS_OR_UNKNOWN = {
102
    "number_of_true": 0,
103
    "number_of_false": 2,
104
    "number_of_error": 0,
105
    "number_of_unknown": 3,
106
    "number_of_noteval": 1,
107
    "number_of_notappl": 2
108
}
109
110 1
RESULT_COUNTS_OR_NOTEVAL = {
111
    "number_of_true": 0,
112
    "number_of_false": 2,
113
    "number_of_error": 0,
114
    "number_of_unknown": 0,
115
    "number_of_noteval": 3,
116
    "number_of_notappl": 3
117
}
118
119
# ONE cases
120 1
RESULT_COUNTS_ONE_TRUE = {
121
    "number_of_true": 1,
122
    "number_of_false": 2,
123
    "number_of_error": 0,
124
    "number_of_unknown": 0,
125
    "number_of_noteval": 0,
126
    "number_of_notappl": 1
127
}
128
129 1
RESULT_COUNTS_ONE_FALSE = {
130
    "number_of_true": 2,
131
    "number_of_false": 2,
132
    "number_of_error": 3,
133
    "number_of_unknown": 5,
134
    "number_of_noteval": 2,
135
    "number_of_notappl": 1
136
}
137
138 1
RESULT_COUNTS_ONE_FALSE_1 = {
139
    "number_of_true": 0,
140
    "number_of_false": 2,
141
    "number_of_error": 0,
142
    "number_of_unknown": 0,
143
    "number_of_noteval": 0,
144
    "number_of_notappl": 1
145
}
146
147 1
RESULT_COUNTS_ONE_ERROR = {
148
    "number_of_true": 1,
149
    "number_of_false": 2,
150
    "number_of_error": 3,
151
    "number_of_unknown": 1,
152
    "number_of_noteval": 1,
153
    "number_of_notappl": 1
154
}
155
156 1
RESULT_COUNTS_ONE_UNKNOWN = {
157
    "number_of_true": 1,
158
    "number_of_false": 2,
159
    "number_of_error": 0,
160
    "number_of_unknown": 3,
161
    "number_of_noteval": 4,
162
    "number_of_notappl": 2
163
}
164
165 1
RESULT_COUNTS_ONE_NOTEVAL = {
166
    "number_of_true": 1,
167
    "number_of_false": 2,
168
    "number_of_error": 0,
169
    "number_of_unknown": 0,
170
    "number_of_noteval": 3,
171
    "number_of_notappl": 6
172
}
173
174
# XOR cases
175 1
RESULT_COUNTS_XOR_TRUE = {
176
    "number_of_true": 7,
177
    "number_of_false": 5,
178
    "number_of_error": 0,
179
    "number_of_unknown": 0,
180
    "number_of_noteval": 0,
181
    "number_of_notappl": 1
182
}
183
184 1
RESULT_COUNTS_XOR_FALSE = {
185
    "number_of_true": 8,
186
    "number_of_false": 5,
187
    "number_of_error": 0,
188
    "number_of_unknown": 0,
189
    "number_of_noteval": 0,
190
    "number_of_notappl": 1
191
}
192
193 1
RESULT_COUNTS_XOR_ERROR = {
194
    "number_of_true": 5,
195
    "number_of_false": 2,
196
    "number_of_error": 3,
197
    "number_of_unknown": 1,
198
    "number_of_noteval": 2,
199
    "number_of_notappl": 1
200
}
201
202 1
RESULT_COUNTS_XOR_UNKNOWN = {
203
    "number_of_true": 2,
204
    "number_of_false": 2,
205
    "number_of_error": 0,
206
    "number_of_unknown": 3,
207
    "number_of_noteval": 1,
208
    "number_of_notappl": 2
209
}
210
211 1
RESULT_COUNTS_XOR_NOTEVAL = {
212
    "number_of_true": 2,
213
    "number_of_false": 2,
214
    "number_of_error": 0,
215
    "number_of_unknown": 0,
216
    "number_of_noteval": 3,
217
    "number_of_notappl": 5
218
}
219
220
221 1
@pytest.mark.parametrize("eval_function, result", [
222
    (OvalResult(**RESULT_COUNTS_NOTAPPL).is_notapp_result, True),
223
224
    (OvalResult(**BAD_RESULT_COUNTS).eval_operator_and, None),
225
    (OvalResult(**BAD_RESULT_COUNTS).eval_operator_one, None),
226
    (OvalResult(**BAD_RESULT_COUNTS).eval_operator_or, None),
227
    (OvalResult(**BAD_RESULT_COUNTS).eval_operator_xor, None),
228
229
    (OvalResult(**EMPTY_RESULT).eval_operator_and, None),
230
    (OvalResult(**EMPTY_RESULT).eval_operator_one, None),
231
    (OvalResult(**EMPTY_RESULT).eval_operator_or, None),
232
    (OvalResult(**EMPTY_RESULT).eval_operator_xor, 'false'),
233
234
    (OvalResult(**RESULT_COUNTS_1).eval_operator_and, 'false'),
235
    (OvalResult(**RESULT_COUNTS_1).eval_operator_one, None),
236
    (OvalResult(**RESULT_COUNTS_1).eval_operator_or, 'true'),
237
    (OvalResult(**RESULT_COUNTS_1).eval_operator_xor, 'error'),
238
239
    (OvalResult(**RESULT_COUNTS_AND_TRUE).eval_operator_and, 'true'),
240
    (OvalResult(**RESULT_COUNTS_AND_FALSE).eval_operator_and, 'false'),
241
    (OvalResult(**RESULT_COUNTS_AND_ERROR).eval_operator_and, 'error'),
242
    (OvalResult(**RESULT_COUNTS_AND_UNKNOWN).eval_operator_and, 'unknown'),
243
    (OvalResult(**RESULT_COUNTS_AND_NOTEVAL).eval_operator_and, 'noteval'),
244
245
    (OvalResult(**RESULT_COUNTS_OR_TRUE).eval_operator_or, 'true'),
246
    (OvalResult(**RESULT_COUNTS_OR_FALSE).eval_operator_or, 'false'),
247
    (OvalResult(**RESULT_COUNTS_OR_ERROR).eval_operator_or, 'error'),
248
    (OvalResult(**RESULT_COUNTS_OR_UNKNOWN).eval_operator_or, 'unknown'),
249
    (OvalResult(**RESULT_COUNTS_OR_NOTEVAL).eval_operator_or, 'noteval'),
250
251
    (OvalResult(**RESULT_COUNTS_ONE_TRUE).eval_operator_one, 'true'),
252
    (OvalResult(**RESULT_COUNTS_ONE_FALSE).eval_operator_one, 'false'),
253
    (OvalResult(**RESULT_COUNTS_ONE_FALSE_1).eval_operator_one, 'false'),
254
    (OvalResult(**RESULT_COUNTS_ONE_ERROR).eval_operator_one, 'error'),
255
    (OvalResult(**RESULT_COUNTS_ONE_UNKNOWN).eval_operator_one, 'unknown'),
256
    (OvalResult(**RESULT_COUNTS_ONE_NOTEVAL).eval_operator_one, 'noteval'),
257
258
    (OvalResult(**RESULT_COUNTS_XOR_TRUE).eval_operator_xor, 'true'),
259
    (OvalResult(**RESULT_COUNTS_XOR_FALSE).eval_operator_xor, 'false'),
260
    (OvalResult(**RESULT_COUNTS_XOR_ERROR).eval_operator_xor, 'error'),
261
    (OvalResult(**RESULT_COUNTS_XOR_UNKNOWN).eval_operator_xor, 'unknown'),
262
    (OvalResult(**RESULT_COUNTS_XOR_NOTEVAL).eval_operator_xor, 'noteval'),
263
])
264 1
def test_evaluate_oval_result(eval_function, result):
265
    assert eval_function() is result
266