Passed
Pull Request — master (#71)
by Jan
01:39
created

oval_graph.arf_to_html   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 46
dl 0
loc 54
ccs 30
cts 30
cp 1
rs 10
c 0
b 0
f 0
wmc 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A ArfToHtml.__init__() 0 5 1
A ArfToHtml.prepare_parser() 0 17 1
A ArfToHtml._get_message() 0 7 1
A ArfToHtml.prepare_data() 0 14 3
1 1
from datetime import datetime
2
3
4 1
from .client import Client
5
6
7 1
class ArfToHtml(Client):
8 1
    def __init__(self, args):
9 1
        super().__init__(args)
10 1
        self.off_webbrowser = self.arg.off_web_browser
11 1
        self.show_fail_rules = self.arg.show_fail_rules
12 1
        self.show_not_selected_rules = self.arg.show_not_selected_rules
13
14 1
    def _get_message(self):
15 1
        MESSAGES = {
16
            'description': 'Client for visualization of SCAP rule evaluation results',
17
            '--output': 'The directory where to save output directory with files.',
18
            'source_filename': 'ARF scan file',
19
        }
20 1
        return MESSAGES
21
22 1
    def prepare_data(self, rules):
23 1
        try:
24 1
            out = []
25 1
            for rule in rules['rules']:
26 1
                oval_tree_dict = self.create_dict_of_rule(rule)
27 1
                src = self.get_save_src(rule)
28 1
                self.copy_interpreter(src)
29 1
                self.save_dict(oval_tree_dict, src)
30 1
                self.open_web_browser(src)
31 1
                print('Rule "{}" done!'.format(rule))
32 1
                out.append(src)
33 1
            return out
34 1
        except Exception as error:
35 1
            raise ValueError('Rule: "{}" Error: "{}"'.format(rule, error))
36
37 1
    def prepare_parser(self):
38 1
        super().prepare_parser()
39 1
        self.parser.add_argument(
40
            '--off-web-browser',
41
            action="store_true",
42
            default=False,
43
            help="It does not start the web browser.")
44 1
        self.parser.add_argument(
45
            '--show-fail-rules',
46
            action="store_true",
47
            default=False,
48
            help="Show only FAIL rules")
49 1
        self.parser.add_argument(
50
            '--show-not-selected-rules',
51
            action="store_true",
52
            default=False,
53
            help="Show notselected rules. These rules will not be visualized.")
54