greedybear/admin.py |
97 |
13 |
86.60% |
150, 153, 157, 170-174, 187-191 |
greedybear/apps.py |
3 |
0 |
100.00% |
|
greedybear/consts.py |
15 |
0 |
100.00% |
|
greedybear/cronjobs/abuseipdb_feed.py |
58 |
0 |
100.00% |
|
greedybear/cronjobs/base.py |
14 |
0 |
100.00% |
|
greedybear/cronjobs/cleanup.py |
29 |
0 |
100.00% |
|
greedybear/cronjobs/commands/cluster.py |
25 |
15 |
40.00% |
46-60 |
greedybear/cronjobs/commands/lsh.py |
48 |
38 |
20.83% |
22, 36-38, 49-51, 72-73, 86-92, 106-116, 130-144 |
greedybear/cronjobs/extract.py |
10 |
5 |
50.00% |
7-8, 11-13 |
greedybear/cronjobs/extraction/ioc_processor.py |
55 |
2 |
96.36% |
111-112 |
greedybear/cronjobs/extraction/pipeline.py |
54 |
0 |
100.00% |
|
greedybear/cronjobs/extraction/strategies/__init__.py |
3 |
0 |
100.00% |
|
greedybear/cronjobs/extraction/strategies/base.py |
12 |
0 |
100.00% |
|
greedybear/cronjobs/extraction/strategies/cowrie.py |
148 |
24 |
83.78% |
38-39, 140-141, 156, 172, 196, 211-233 |
greedybear/cronjobs/extraction/strategies/factory.py |
11 |
0 |
100.00% |
|
greedybear/cronjobs/extraction/strategies/generic.py |
12 |
0 |
100.00% |
|
greedybear/cronjobs/extraction/utils.py |
110 |
4 |
96.36% |
83-85, 266-267 |
greedybear/cronjobs/firehol.py |
38 |
2 |
94.74% |
71-72 |
greedybear/cronjobs/mass_scanners.py |
44 |
1 |
97.73% |
95 |
greedybear/cronjobs/monitor_honeypots.py |
16 |
0 |
100.00% |
|
greedybear/cronjobs/monitor_logs.py |
30 |
0 |
100.00% |
|
greedybear/cronjobs/repositories/__init__.py |
8 |
0 |
100.00% |
|
greedybear/cronjobs/repositories/cowrie_session.py |
36 |
0 |
100.00% |
|
greedybear/cronjobs/repositories/elastic.py |
52 |
0 |
100.00% |
|
greedybear/cronjobs/repositories/firehol.py |
18 |
2 |
88.89% |
40-41 |
greedybear/cronjobs/repositories/ioc.py |
73 |
5 |
93.15% |
66-70 |
greedybear/cronjobs/repositories/mass_scanner.py |
8 |
0 |
100.00% |
|
greedybear/cronjobs/repositories/sensor.py |
31 |
0 |
100.00% |
|
greedybear/cronjobs/repositories/tag.py |
23 |
0 |
100.00% |
|
greedybear/cronjobs/repositories/tor.py |
8 |
0 |
100.00% |
|
greedybear/cronjobs/schedules.py |
9 |
0 |
100.00% |
|
greedybear/cronjobs/scoring/consts.py |
4 |
0 |
100.00% |
|
greedybear/cronjobs/scoring/ml_model.py |
103 |
22 |
78.64% |
45-53, 63-73, 132, 267 |
greedybear/cronjobs/scoring/random_forest.py |
43 |
10 |
76.74% |
31, 43-55 |
greedybear/cronjobs/scoring/scorer.py |
10 |
0 |
100.00% |
|
greedybear/cronjobs/scoring/scoring_jobs.py |
123 |
43 |
65.04% |
51-61, 70-76, 103-105, 108-110, 117-118, 131, 133, 218-226, 242-250 |
greedybear/cronjobs/scoring/utils.py |
53 |
1 |
98.11% |
70 |
greedybear/cronjobs/threatfox_feed.py |
87 |
5 |
94.25% |
145, 150, 158-159, 188 |
greedybear/cronjobs/tor_exit_nodes.py |
35 |
2 |
94.29% |
37-38 |
greedybear/cronjobs/whatsmyip.py |
33 |
0 |
100.00% |
|
greedybear/enums.py |
4 |
0 |
100.00% |
|
greedybear/management/commands/setup_schedules.py |
7 |
0 |
100.00% |
|
greedybear/models.py |
97 |
0 |
100.00% |
|
greedybear/ntfy.py |
14 |
0 |
100.00% |
|
greedybear/regex.py |
3 |
0 |
100.00% |
|
greedybear/slack.py |
15 |
10 |
33.33% |
12-24 |
greedybear/tasks.py |
46 |
27 |
41.30% |
24-26, 30-32, 37-44, 49-52, 57-59, 63-65, 69-71, 75-77, 81-83, 87-89, 93-95 |
greedybear/urls.py |
6 |
1 |
83.33% |
9 |
greedybear/utils.py |
10 |
0 |
100.00% |
|
| TOTAL |
1791 |
232 |
87.05% |
|
Description
While running the test suite with coverage analysis, I noticed that
greedybear/tasks.pycurrently has a test coverage of roughly ~41%. The current tests intests/test_tasks.pyonly cover theextract_alltask and its trigger mechanics, leaving the rest of the file untested.tests/test_tasks.pyto mock the underlying jobexecute()methods and assert that the task routing calls the right functions.greedybear/tasks.pyshould reach 100% coverage.greedybear/admin.pygreedybear/apps.pygreedybear/consts.pygreedybear/cronjobs/abuseipdb_feed.pygreedybear/cronjobs/base.pygreedybear/cronjobs/cleanup.pygreedybear/cronjobs/commands/cluster.pygreedybear/cronjobs/commands/lsh.pygreedybear/cronjobs/extract.pygreedybear/cronjobs/extraction/ioc_processor.pygreedybear/cronjobs/extraction/pipeline.pygreedybear/cronjobs/extraction/strategies/__init__.pygreedybear/cronjobs/extraction/strategies/base.pygreedybear/cronjobs/extraction/strategies/cowrie.pygreedybear/cronjobs/extraction/strategies/factory.pygreedybear/cronjobs/extraction/strategies/generic.pygreedybear/cronjobs/extraction/utils.pygreedybear/cronjobs/firehol.pygreedybear/cronjobs/mass_scanners.pygreedybear/cronjobs/monitor_honeypots.pygreedybear/cronjobs/monitor_logs.pygreedybear/cronjobs/repositories/__init__.pygreedybear/cronjobs/repositories/cowrie_session.pygreedybear/cronjobs/repositories/elastic.pygreedybear/cronjobs/repositories/firehol.pygreedybear/cronjobs/repositories/ioc.pygreedybear/cronjobs/repositories/mass_scanner.pygreedybear/cronjobs/repositories/sensor.pygreedybear/cronjobs/repositories/tag.pygreedybear/cronjobs/repositories/tor.pygreedybear/cronjobs/schedules.pygreedybear/cronjobs/scoring/consts.pygreedybear/cronjobs/scoring/ml_model.pygreedybear/cronjobs/scoring/random_forest.pygreedybear/cronjobs/scoring/scorer.pygreedybear/cronjobs/scoring/scoring_jobs.pygreedybear/cronjobs/scoring/utils.pygreedybear/cronjobs/threatfox_feed.pygreedybear/cronjobs/tor_exit_nodes.pygreedybear/cronjobs/whatsmyip.pygreedybear/enums.pygreedybear/management/commands/setup_schedules.pygreedybear/models.pygreedybear/ntfy.pygreedybear/regex.pygreedybear/slack.pygreedybear/tasks.pygreedybear/urls.pygreedybear/utils.py