Passed
Push — master ( be999b...2f9937 )
by Jan
02:07 queued 11s
created

oval_graph.arf_to_html   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 50
dl 0
loc 59
ccs 34
cts 34
cp 1
rs 10
c 0
b 0
f 0
wmc 7

5 Methods

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