Passed
Pull Request — master (#43)
by Jan
05:46
created

tests.unit_tests.test_oval_result_eval   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 261
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 201
dl 0
loc 261
rs 10
c 0
b 0
f 0
wmc 1

1 Function

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