Passed
Pull Request — master (#34)
by Jan
06:54 queued 01:47
created

any_test_help.get_converter_simple_tree()   A

Complexity

Conditions 1

Size

Total Lines 2
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nop 0
dl 0
loc 2
rs 10
c 0
b 0
f 0
1
import graph.oval_graph
2
import graph.converter
3
import os
4
import py
5
import json
6
7
8
def any_test_treeEvaluation(tree, expect, file_name=None):
9
    if file_name is not None and tree is None:
10
        if file_name.startswith('AND'):
11
            dir = 'test_data_and'
12
        elif file_name.startswith('OR'):
13
            dir = 'test_data_or'
14
        elif file_name.startswith('XOR'):
15
            dir = 'test_data_xor'
16
        elif file_name.startswith('ONE'):
17
            dir = 'test_data_one'
18
        else:
19
            dir = 'test_data_NONE'
20
21
        src = 'test_data/' + dir + '/' + file_name
22
        data = dict()
23
        with open(get_src(src), "r") as f:
24
            data = json.load(f)
25
        assert graph.oval_graph.restore_dict_to_tree(
26
            data).evaluate_tree() == expect
27
    else:
28
        assert tree.evaluate_tree() == expect
29
30
31
def any_test_parsing_and_evaluate_scan_rule(src, rule_id, result):
32
    oval_tree = graph.oval_graph.build_nodes_form_xml(
33
        get_src(src), rule_id)
34
    any_test_treeEvaluation(oval_tree, result)
35
36
37
def any_get_test_data_json(src):
38
    with open(get_src(src), 'r') as f:
39
        data = json.load(f)
40
    return data
41
42
43
def any_test_create_node_dict_for_sigmaJs(Tree, out):
44
    assert graph.converter.converter(Tree)._create_node(0, 0) == out
45
46
47
def get_converter_simple_tree():
48
    return graph.converter.converter(get_simple_tree())
49
50
51
def any_test_create_node_dict_for_JsTree(Tree, json_src):
52
    data = dict()
53
    with open(get_src(json_src), "r") as f:
54
        data = json.load(f)
55
    assert graph.converter.converter(Tree).to_JsTree_dict() == data
56
57
58
def get_simple_tree():
59
    return graph.oval_graph.OvalNode(1, 'operator', 'and', False, None, [
60
        graph.oval_graph.OvalNode(2, 'value', "true", False, None),
61
        graph.oval_graph.OvalNode(3, 'value', "false", False, None),
62
        graph.oval_graph.OvalNode(4, 'operator', 'or', False, None, [
63
            graph.oval_graph.OvalNode(5, 'value', "false", False, None),
64
            graph.oval_graph.OvalNode(6, 'value', "true", False, None)
65
        ]
66
        )
67
    ]
68
    )
69
70
71
def get_dict_of_simple_tree():
72
    return get_simple_tree().save_tree_to_dict()
73
74
75
def any_test_transformation_tree_to_Json_for_SigmaJs(
76
        src, test_data_src, rule_id):
77
    test_data = any_get_test_data_json(test_data_src)
78
79
    oval_tree = graph.oval_graph.build_nodes_form_xml(src, rule_id)
80
81
    assert oval_tree.node_id == rule_id
82
    out_data = graph.converter.converter(oval_tree).to_sigma_dict(0, 0)
83
    for i in range(len(out_data['nodes'])):
84
        assert out_data['nodes'][i]['label'] == test_data['nodes'][i]['label']
85
        assert out_data['nodes'][i]['text'] == test_data['nodes'][i]['text']
86
        assert out_data['nodes'][i]['url'] == test_data['nodes'][i]['url']
87
88
89
def any_test_transformation_tree_to_Json_for_JsTree(
90
        src, test_data_src, rule_id):
91
    test_data = any_get_test_data_json(test_data_src)
92
93
    oval_tree = graph.oval_graph.build_nodes_form_xml(src, rule_id)
94
95
    assert oval_tree.node_id == rule_id
96
    out_data = graph.converter.converter(oval_tree).to_JsTree_dict()
97
    assert out_data == test_data
98
99
100
def any_test_tree_to_dict_of_tree(tree, dict_of_tree):
101
    assert tree.save_tree_to_dict() == dict_of_tree
102
103
104
def find_any_node(Tree, node_id):
105
    findTree = Tree.find_node_with_ID(node_id)
106
    assert findTree.node_id == node_id
107
108
109
def any_test_treeEvaluation_with_tree(tree, expect):
110
    assert tree.evaluate_tree() == expect
111
112
113
def any_test_dict_to_tree(dict_of_tree):
114
    treedict_of_tree = graph.oval_graph.restore_dict_to_tree(dict_of_tree)
115
    assert treedict_of_tree.save_tree_to_dict() == dict_of_tree
116
117
118
def get_parser(src):
119
    return graph.xml_parser.xml_parser(get_src(src))
120
121
122
def get_src(src):
123
    _dir = os.path.dirname(os.path.realpath(__file__))
124
    FIXTURE_DIR = py.path.local(_dir) / src
125
    return str(FIXTURE_DIR)
126