@@ -136,3 +136,162 @@ def test_parse_damnvulnrablebank(self):
136
136
findings = parser .get_findings (testfile , test )
137
137
testfile .close ()
138
138
self .assertEqual (80 , len (findings ))
139
+
140
+ def test_parse_no_findings (self ):
141
+ with (get_unit_tests_scans_path ("mobsf" ) / "no_findings.json" ).open (encoding = "utf-8" ) as testfile :
142
+ parser = MobSFParser ()
143
+ findings = parser .get_findings (testfile , Test ())
144
+ self .assertEqual (0 , len (findings ))
145
+
146
+ def test_parse_many_findings (self ):
147
+ with (get_unit_tests_scans_path ("mobsf" ) / "many_findings.json" ).open (encoding = "utf-8" ) as testfile :
148
+ parser = MobSFParser ()
149
+ findings = parser .get_findings (testfile , Test ())
150
+ self .assertEqual (8 , len (findings ))
151
+
152
+ with self .subTest (i = 0 ):
153
+ finding = findings [0 ]
154
+ self .assertEqual ("android_certificate_transparency" , finding .title )
155
+ self .assertEqual ("Low" , finding .severity )
156
+ self .assertEqual (1 , finding .nb_occurences )
157
+ self .assertIsNotNone (finding .description )
158
+ self .assertEqual (295 , finding .cwe )
159
+ self .assertIsNotNone (finding .references )
160
+
161
+ with self .subTest (i = 1 ):
162
+ finding = findings [1 ]
163
+ self .assertEqual ("android_kotlin_hardcoded" , finding .title )
164
+ self .assertEqual ("Medium" , finding .severity )
165
+ self .assertEqual (1 , finding .nb_occurences )
166
+ self .assertIsNotNone (finding .description )
167
+ self .assertEqual (798 , finding .cwe )
168
+ self .assertIsNotNone (finding .references )
169
+ self .assertEqual ("app/src/main/java/com/routes/domain/analytics/event/Signatures.kt" , finding .file_path )
170
+ self .assertEqual (10 , finding .line )
171
+
172
+ with self .subTest (i = 2 ):
173
+ finding = findings [2 ]
174
+ self .assertEqual ("android_kotlin_hardcoded" , finding .title )
175
+ self .assertEqual ("Medium" , finding .severity )
176
+ self .assertEqual (1 , finding .nb_occurences )
177
+ self .assertIsNotNone (finding .description )
178
+ self .assertEqual (798 , finding .cwe )
179
+ self .assertIsNotNone (finding .references )
180
+ self .assertEqual ("app/src/main/java/com/routes/domain/analytics/event/Signatures2.kt" , finding .file_path )
181
+ self .assertEqual (20 , finding .line )
182
+
183
+ with self .subTest (i = 3 ):
184
+ finding = findings [3 ]
185
+ self .assertEqual ("android_prevent_screenshot" , finding .title )
186
+ self .assertEqual ("Low" , finding .severity )
187
+ self .assertEqual (1 , finding .nb_occurences )
188
+ self .assertIsNotNone (finding .description )
189
+ self .assertEqual (200 , finding .cwe )
190
+ self .assertIsNotNone (finding .references )
191
+
192
+ with self .subTest (i = 4 ):
193
+ finding = findings [4 ]
194
+ self .assertEqual ("android_root_detection" , finding .title )
195
+ self .assertEqual ("Low" , finding .severity )
196
+ self .assertEqual (1 , finding .nb_occurences )
197
+ self .assertIsNotNone (finding .description )
198
+ self .assertEqual (919 , finding .cwe )
199
+ self .assertIsNotNone (finding .references )
200
+
201
+ with self .subTest (i = 5 ):
202
+ finding = findings [5 ]
203
+ self .assertEqual ("android_safetynet" , finding .title )
204
+ self .assertEqual ("Low" , finding .severity )
205
+ self .assertEqual (1 , finding .nb_occurences )
206
+ self .assertIsNotNone (finding .description )
207
+ self .assertEqual (353 , finding .cwe )
208
+ self .assertIsNotNone (finding .references )
209
+
210
+ with self .subTest (i = 6 ):
211
+ finding = findings [6 ]
212
+ self .assertEqual ("android_ssl_pinning" , finding .title )
213
+ self .assertEqual ("Low" , finding .severity )
214
+ self .assertEqual (1 , finding .nb_occurences )
215
+ self .assertIsNotNone (finding .description )
216
+ self .assertEqual (295 , finding .cwe )
217
+ self .assertIsNotNone (finding .references )
218
+
219
+ with self .subTest (i = 7 ):
220
+ finding = findings [7 ]
221
+ self .assertEqual ("android_tapjacking" , finding .title )
222
+ self .assertEqual ("Low" , finding .severity )
223
+ self .assertEqual (1 , finding .nb_occurences )
224
+ self .assertIsNotNone (finding .description )
225
+ self .assertEqual (200 , finding .cwe )
226
+ self .assertIsNotNone (finding .references )
227
+
228
+ def test_parse_many_findings_cwe_lower (self ):
229
+ with (get_unit_tests_scans_path ("mobsf" ) / "many_findings_cwe_lower.json" ).open (encoding = "utf-8" ) as testfile :
230
+ parser = MobSFParser ()
231
+ findings = parser .get_findings (testfile , Test ())
232
+ self .assertEqual (7 , len (findings ))
233
+
234
+ with self .subTest (i = 0 ):
235
+ finding = findings [0 ]
236
+ self .assertEqual ("android_certificate_transparency" , finding .title )
237
+ self .assertEqual ("Low" , finding .severity )
238
+ self .assertEqual (1 , finding .nb_occurences )
239
+ self .assertIsNotNone (finding .description )
240
+ self .assertEqual (295 , finding .cwe )
241
+ self .assertIsNotNone (finding .references )
242
+
243
+ with self .subTest (i = 1 ):
244
+ finding = findings [1 ]
245
+ self .assertEqual ("android_kotlin_hardcoded" , finding .title )
246
+ self .assertEqual ("Medium" , finding .severity )
247
+ self .assertEqual (1 , finding .nb_occurences )
248
+ self .assertIsNotNone (finding .description )
249
+ self .assertEqual (798 , finding .cwe )
250
+ self .assertIsNotNone (finding .references )
251
+ self .assertEqual ("app/src/main/java/com/routes/domain/analytics/event/Signatures.kt" , finding .file_path )
252
+ self .assertEqual (10 , finding .line )
253
+
254
+ with self .subTest (i = 2 ):
255
+ finding = findings [2 ]
256
+ self .assertEqual ("android_prevent_screenshot" , finding .title )
257
+ self .assertEqual ("Low" , finding .severity )
258
+ self .assertEqual (1 , finding .nb_occurences )
259
+ self .assertIsNotNone (finding .description )
260
+ self .assertEqual (200 , finding .cwe )
261
+ self .assertIsNotNone (finding .references )
262
+
263
+ with self .subTest (i = 3 ):
264
+ finding = findings [3 ]
265
+ self .assertEqual ("android_root_detection" , finding .title )
266
+ self .assertEqual ("Low" , finding .severity )
267
+ self .assertEqual (1 , finding .nb_occurences )
268
+ self .assertIsNotNone (finding .description )
269
+ self .assertEqual (919 , finding .cwe )
270
+ self .assertIsNotNone (finding .references )
271
+
272
+ with self .subTest (i = 4 ):
273
+ finding = findings [4 ]
274
+ self .assertEqual ("android_safetynet" , finding .title )
275
+ self .assertEqual ("Low" , finding .severity )
276
+ self .assertEqual (1 , finding .nb_occurences )
277
+ self .assertIsNotNone (finding .description )
278
+ self .assertEqual (353 , finding .cwe )
279
+ self .assertIsNotNone (finding .references )
280
+
281
+ with self .subTest (i = 5 ):
282
+ finding = findings [5 ]
283
+ self .assertEqual ("android_ssl_pinning" , finding .title )
284
+ self .assertEqual ("Low" , finding .severity )
285
+ self .assertEqual (1 , finding .nb_occurences )
286
+ self .assertIsNotNone (finding .description )
287
+ self .assertEqual (295 , finding .cwe )
288
+ self .assertIsNotNone (finding .references )
289
+
290
+ with self .subTest (i = 6 ):
291
+ finding = findings [6 ]
292
+ self .assertEqual ("android_tapjacking" , finding .title )
293
+ self .assertEqual ("Low" , finding .severity )
294
+ self .assertEqual (1 , finding .nb_occurences )
295
+ self .assertIsNotNone (finding .description )
296
+ self .assertEqual (200 , finding .cwe )
297
+ self .assertIsNotNone (finding .references )
0 commit comments