Passed
Push — master ( 55ba43...476f93 )
by Jan
13:33 queued 09:06
created

test_sigmaJs   A

Complexity

Total Complexity 18

Size/Duplication

Total Lines 231
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 18
eloc 168
dl 0
loc 231
rs 10
c 0
b 0
f 0

17 Functions

Rating   Name   Duplication   Size   Complexity  
A test_create_node_dict_for_sigmaJs_0() 0 14 1
A test_create_node_dict_for_sigmaJs_1() 0 18 1
A test_create_node_dict_for_sigmaJs_5() 0 15 1
A test_create_node_dict_for_sigmaJs_2() 0 18 1
A test_create_node_dict_for_sigmaJs_3() 0 15 1
A test_create_node_dict_for_sigmaJs_4() 0 15 1
A test_create_edge_dict_for_sigmaJs() 0 26 1
A test_transformation_tree_to_Json_for_SigmaJs_with_duplicated_test() 0 7 1
A test_parsing_and_evaluate_scan_with_fail_rule() 0 7 1
A test_parsing_and_evaluate_scan_with_extend_def() 0 7 1
A test_get_def_id_by_rule_id() 0 11 2
A test_parsing_full_can_XML_and_evaluate() 0 7 1
A test_parsing_and_evaluate_scan_with_pasing_rule() 0 7 1
A test_create_array_of_ids_form_tree() 0 3 1
A test_parsing_and_evaluate_scan_with_11_rules() 0 7 1
A test_transformation_tree_to_Json_for_SigmaJs_0() 0 7 1
A test_parsing_and_evaluate_scan_with_rule_with_XOR() 0 7 1
1
import tests.any_test_help
2
import graph.oval_graph
3
import os
4
import py
5
import pytest
6
7
8
def test_create_node_dict_for_sigmaJs_0():
9
    out = {
10
        'color': '#ff0000',
11
        'id': 1,
12
        'label': 'and',
13
        'size': 3,
14
        'text': 'null',
15
        'url': 'null',
16
        'title': 1,
17
        'x': 0,
18
        'y': 0
19
    }
20
    Tree = tests.any_test_help.get_simple_tree()
21
    tests.any_test_help.any_test_create_node_dict_for_sigmaJs(Tree, out)
22
23
24
def test_create_node_dict_for_sigmaJs_1():
25
    out = {
26
        'color': '#00ff00',
27
        'id': 1,
28
        'label': 'and',
29
        'size': 3,
30
        'text': 'null',
31
        'url': 'null',
32
        'title': 1,
33
        'x': 0,
34
        'y': 0
35
    }
36
    Tree = graph.oval_graph.OvalNode(1, 'operator', 'and', [
37
        graph.oval_graph.OvalNode(2, 'value', "true")
38
    ]
39
    )
40
41
    tests.any_test_help.any_test_create_node_dict_for_sigmaJs(Tree, out)
42
43
44
def test_create_node_dict_for_sigmaJs_2():
45
    out = {
46
        'color': '#000000',
47
        'id': 1,
48
        'label': 'and',
49
        'size': 3,
50
        'text': 'null',
51
        'url': 'null',
52
        'title': '1 and',
53
        'x': 0,
54
        'y': 0
55
    }
56
    Tree = graph.oval_graph.OvalNode(1, 'operator', 'and', [
57
        graph.oval_graph.OvalNode(2, 'value', "noteval")
58
    ]
59
    )
60
61
    tests.any_test_help.any_test_create_node_dict_for_sigmaJs(Tree, out)
62
63
64
def test_create_node_dict_for_sigmaJs_3():
65
    out = {
66
        'color': '#ff0000',
67
        'id': 1,
68
        'label': '1',
69
        'size': 3,
70
        'text': 'null',
71
        'url': 'null',
72
        'title': 1,
73
        'x': 0,
74
        'y': 0
75
    }
76
    Tree = graph.oval_graph.OvalNode(1, 'value', 'false')
77
78
    tests.any_test_help.any_test_create_node_dict_for_sigmaJs(Tree, out)
79
80
81
def test_create_node_dict_for_sigmaJs_4():
82
    out = {
83
        'color': '#00ff00',
84
        'id': 1,
85
        'label': '1',
86
        'size': 3,
87
        'text': 'null',
88
        'url': 'null',
89
        'title': 1,
90
        'x': 0,
91
        'y': 0
92
    }
93
    Tree = graph.oval_graph.OvalNode(1, 'value', 'true')
94
95
    tests.any_test_help.any_test_create_node_dict_for_sigmaJs(Tree, out)
96
97
98
def test_create_node_dict_for_sigmaJs_5():
99
    out = {
100
        'color': '#000000',
101
        'id': 1,
102
        'label': 'error',
103
        'size': 3,
104
        'text': 'null',
105
        'url': 'null',
106
        'title': '1 error',
107
        'x': 0,
108
        'y': 0
109
    }
110
    Tree = graph.oval_graph.OvalNode(1, 'value', 'error')
111
112
    tests.any_test_help.any_test_create_node_dict_for_sigmaJs(Tree, out)
113
114
115
def test_create_edge_dict_for_sigmaJs():
116
    out = {
117
        'id': 'random_ID',
118
        'source': 1,
119
        'target': 2,
120
        'color': '#000000'
121
    }
122
123
    target_node = {
124
        'color': '#000000',
125
        'id': 2,
126
        'label': 'error',
127
        'size': 3,
128
        'text': 'null',
129
        'url': 'null',
130
        'title': '1 error',
131
        'x': 0,
132
        'y': 0
133
    }
134
135
    assert tests.any_test_help.get_simple_tree()._create_edge(
136
        1, 2, target_node)['source'] == out['source']
137
    assert tests.any_test_help.get_simple_tree()._create_edge(
138
        1, 2, target_node)['target'] == out['target']
139
    assert tests.any_test_help.get_simple_tree()._create_edge(
140
        1, 2, target_node)['color'] == out['color']
141
142
143
def test_create_array_of_ids_form_tree():
144
    array = tests.any_test_help.get_simple_tree().create_list_of_id()
145
    assert array == [1, 2, 3, 4, 5, 6]
146
147
148
def test_parsing_full_can_XML_and_evaluate():
149
    src = 'test_data/ssg-fedora-ds-arf.xml'
150
    rule_id = 'xccdf_org.ssgproject.content_rule_accounts_passwords_pam_faillock_deny'
151
    result = 'false'
152
153
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
154
        src, rule_id, result)
155
156
157
def test_parsing_and_evaluate_scan_with_extend_def():
158
    src = 'test_data/ssg-fedora-ds-arf-scan-with-extend-definitions.xml'
159
    rule_id = 'xccdf_org.ssgproject.content_rule_sysctl_net_ipv6_conf_all_disable_ipv6'
160
    result = 'false'
161
162
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
163
        src, rule_id, result)
164
165
166
def test_parsing_and_evaluate_scan_with_pasing_rule():
167
    src = 'test_data/ssg-fedora-ds-arf-passing-scan.xml'
168
    rule_id = 'xccdf_org.ssgproject.content_rule_service_debug-shell_disabled'
169
    result = 'true'
170
171
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
172
        src, rule_id, result)
173
174
175
def test_parsing_and_evaluate_scan_with_fail_rule():
176
    src = 'test_data/ssg-fedora-ds-arf-scan-fail.xml'
177
    rule_id = 'xccdf_org.ssgproject.content_rule_mount_option_dev_shm_noexec'
178
    result = 'false'
179
180
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
181
        src, rule_id, result)
182
183
184
def test_parsing_and_evaluate_scan_with_rule_with_XOR():
185
    src = 'test_data/ssg-fedora-ds-arf-scan-with-xor.xml'
186
    rule_id = 'xccdf_org.ssgproject.content_rule_mount_option_nosuid_removable_partitions'
187
    result = 'true'
188
189
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
190
        src, rule_id, result)
191
192
193
def test_parsing_and_evaluate_scan_with_11_rules():
194
    src = 'test_data/ssg-fedora-ds-arf-scan-with-11-rules.xml'
195
    rule_id = 'xccdf_org.ssgproject.content_rule_mount_option_tmp_nosuid'
196
    result = 'true'
197
198
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
199
        src, rule_id, result)
200
201
202
def test_transformation_tree_to_Json_for_SigmaJs_0():
203
    test_data_src = 'test_data/sigmaJs_json0.json'
204
    src = 'data/ssg-fedora-ds-arf.xml'
205
    rule_id = 'xccdf_org.ssgproject.content_rule_accounts_passwords_pam_faillock_deny'
206
207
    tests.any_test_help.any_test_transformation_tree_to_Json_for_SigmaJs(
208
        src, test_data_src, rule_id)
209
210
211
def test_transformation_tree_to_Json_for_SigmaJs_with_duplicated_test():
212
    test_data_src = 'test_data/sigmaJs_json1.json'
213
    src = 'data/ssg-fedora-ds-arf.xml'
214
    rule_id = 'xccdf_org.ssgproject.content_rule_disable_host_auth'
215
216
    tests.any_test_help.any_test_transformation_tree_to_Json_for_SigmaJs(
217
        src, test_data_src, rule_id)
218
219
220
def test_get_def_id_by_rule_id():
221
    src = 'test_data/ssg-fedora-ds-arf.xml'
222
    _dir = os.path.dirname(os.path.realpath(__file__))
223
    FIXTURE_DIR = py.path.local(_dir) / src
224
225
    parser = graph.xml_parser.xml_parser(str(FIXTURE_DIR))
226
227
    with pytest.raises(ValueError) as e:
228
        parser.get_def_id_by_rule_id('hello')
229
    assert str(
230
        e.value) == 'err- 404 rule not found!'
231