Passed
Push — master ( b25b04...24a582 )
by Jan
04:05 queued 11s
created

oval_graph.arf_to_html   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Test Coverage

Coverage 96.77%

Importance

Changes 0
Metric Value
eloc 48
dl 0
loc 56
rs 10
c 0
b 0
f 0
ccs 30
cts 31
cp 0.9677
wmc 7

5 Methods

Rating   Name   Duplication   Size   Complexity  
A ArfToHtml.create_dict_of_rule() 0 3 1
A ArfToHtml.__init__() 0 5 1
A ArfToHtml._get_message() 0 7 1
A ArfToHtml.prepare_parser() 0 17 1
A ArfToHtml.prepare_data() 0 11 3
1 1
from datetime import datetime
2
3
4 1
from .client import Client
5 1
from .converter import Converter
6 1
from .exceptions import NotChecked
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_failed_rules = self.arg.show_failed_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
        out = []
29 1
        for rule in rules['rules']:
30 1
            try:
31 1
                oval_tree_dict = self.create_dict_of_rule(rule)
32 1
                src = self.get_save_src(rule)
33 1
                self.save_html_and_open_html(
34
                    oval_tree_dict, src, rule, out)
35 1
            except NotChecked as error:
36
                self.print_red_text(error)
37 1
        return out
38
39 1
    def prepare_parser(self):
40 1
        super().prepare_parser()
41 1
        self.parser.add_argument(
42
            '--off-web-browser',
43
            action="store_true",
44
            default=False,
45
            help="It does not start the web browser.")
46 1
        self.parser.add_argument(
47
            '--show-failed-rules',
48
            action="store_true",
49
            default=False,
50
            help="Show only FAILED rules")
51 1
        self.parser.add_argument(
52
            '--show-not-selected-rules',
53
            action="store_true",
54
            default=False,
55
            help="Show notselected rules. These rules will not be visualized.")
56