Passed
Push — master ( f92a60...087b33 )
by Matěj
02:24 queued 11s
created

any_test_help   A

Complexity

Total Complexity 26

Size/Duplication

Total Lines 122
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 80
dl 0
loc 122
rs 10
c 0
b 0
f 0
wmc 26

16 Functions

Rating   Name   Duplication   Size   Complexity  
A any_test_create_node_dict_for_JsTree() 0 5 2
A get_dict_of_simple_tree() 0 2 1
A get_simple_tree() 0 7 1
A any_test_parsing_and_evaluate_scan_rule() 0 4 1
B any_test_treeEvaluation() 0 21 8
A get_parser() 0 2 1
A any_get_test_data_json() 0 3 2
A get_src() 0 4 1
A any_test_tree_to_dict_of_tree() 0 2 1
A any_test_treeEvaluation_with_tree() 0 2 1
A any_test_dict_to_tree() 0 3 1
A any_test_transformation_tree_to_Json_for_JsTree() 0 10 1
A find_any_node() 0 3 1
A get_Converter_simple_tree() 0 2 1
A any_get_tested_file() 0 3 2
A compare_results_js() 0 6 1
1
import os
2
import json
3
4
from oval_graph.oval_node import restore_dict_to_tree, OvalNode
5
from oval_graph.converter import Converter
6
from oval_graph.xml_parser import XmlParser
7
8
9
def any_test_treeEvaluation(tree, expect, file_name=None):
10
    if file_name is not None and tree is None:
11
        if file_name.startswith('AND'):
12
            dir = 'test_data_and'
13
        elif file_name.startswith('OR'):
14
            dir = 'test_data_or'
15
        elif file_name.startswith('XOR'):
16
            dir = 'test_data_xor'
17
        elif file_name.startswith('ONE'):
18
            dir = 'test_data_one'
19
        else:
20
            dir = 'test_data_NONE'
21
22
        src = 'test_data/' + dir + '/' + file_name
23
        data = dict()
24
        with open(get_src(src), "r") as f:
25
            data = json.load(f)
26
        assert restore_dict_to_tree(
27
            data).evaluate_tree() == expect
28
    else:
29
        assert tree.evaluate_tree() == expect
30
31
32
def any_test_parsing_and_evaluate_scan_rule(src, rule_id, result):
33
    parser = XmlParser(get_src(src))
34
    oval_tree = parser.get_oval_tree(rule_id)
35
    any_test_treeEvaluation(oval_tree, result)
36
37
38
def any_get_test_data_json(src):
39
    with open(get_src(src), 'r') as f:
40
        return json.load(f)
41
42
43
def any_get_tested_file(src):
44
    with open(get_src(src), 'r') as f:
45
        return f.readlines()
46
47
48
def get_Converter_simple_tree():
49
    return Converter(get_simple_tree())
50
51
52
def any_test_create_node_dict_for_JsTree(Tree, json_src):
53
    data = dict()
54
    with open(get_src(json_src), "r") as f:
55
        data = json.load(f)
56
    assert Converter(Tree).to_JsTree_dict() == data
57
58
59
def get_simple_tree():
60
    return OvalNode(1, 'operator', 'and', False, None, [
61
        OvalNode(2, 'value', "true", False, None),
62
        OvalNode(3, 'value', "false", False, None),
63
        OvalNode(4, 'operator', 'or', False, None, [
64
            OvalNode(5, 'value', "false", False, None),
65
            OvalNode(6, 'value', "true", False, None)
66
        ]
67
        )
68
    ]
69
    )
70
71
72
def get_dict_of_simple_tree():
73
    return get_simple_tree().save_tree_to_dict()
74
75
76
def any_test_transformation_tree_to_Json_for_JsTree(
77
        src, test_data_src, rule_id):
78
    test_data = any_get_test_data_json(test_data_src)
79
80
    parser = XmlParser(get_src(src))
81
    oval_tree = parser.get_oval_tree(rule_id)
82
83
    assert oval_tree.node_id == rule_id
84
    out_data = Converter(oval_tree).to_JsTree_dict()
85
    assert out_data == test_data
86
87
88
def any_test_tree_to_dict_of_tree(tree, dict_of_tree):
89
    assert tree.save_tree_to_dict() == dict_of_tree
90
91
92
def find_any_node(Tree, node_id):
93
    findTree = Tree.find_node_with_ID(node_id)
94
    assert findTree.node_id == node_id
95
96
97
def any_test_treeEvaluation_with_tree(tree, expect):
98
    assert tree.evaluate_tree() == expect
99
100
101
def any_test_dict_to_tree(dict_of_tree):
102
    treedict_of_tree = restore_dict_to_tree(dict_of_tree)
103
    assert treedict_of_tree.save_tree_to_dict() == dict_of_tree
104
105
106
def get_parser(src):
107
    return XmlParser(get_src(src))
108
109
110
def get_src(src):
111
    _dir = os.path.dirname(os.path.realpath(__file__))
112
    FIXTURE_DIR = os.path.join(_dir, src)
113
    return str(FIXTURE_DIR)
114
115
116
def compare_results_js(result):
117
    result = any_get_tested_file(
118
        os.path.join(result, 'data.js'))
119
    referenc_result = any_get_tested_file(
120
        'test_data/referenc_result_data_tree.js')
121
    assert result == referenc_result
122