1
|
|
|
from pathlib import Path |
2
|
|
|
|
3
|
|
|
import pytest |
4
|
|
|
|
5
|
|
|
from oval_graph.arf_xml_parser.arf_xml_parser import ARFXMLParser |
6
|
|
|
from oval_graph.oval_tree.converter import Converter |
7
|
|
|
|
8
|
|
|
from .get_tree import GetTree |
9
|
|
|
|
10
|
|
|
|
11
|
|
|
@pytest.mark.parametrize("tree_getter, json_src", [ |
12
|
|
|
(GetTree.simple_tree, 'test_data/test_JsTree_data/JsTree_data_0.json'), |
13
|
|
|
(GetTree.tree_true, 'test_data/test_JsTree_data/JsTree_data_1.json'), |
14
|
|
|
(GetTree.tree_noteval, 'test_data/test_JsTree_data/JsTree_data_2.json'), |
15
|
|
|
(GetTree.tree_false_one_node, 'test_data/test_JsTree_data/JsTree_data_3.json'), |
16
|
|
|
(GetTree.tree_true_one_node, 'test_data/test_JsTree_data/JsTree_data_4.json'), |
17
|
|
|
(GetTree.tree_error_one_node, 'test_data/test_JsTree_data/JsTree_data_5.json'), |
18
|
|
|
(GetTree.negated_operator_node_false, 'test_data/test_JsTree_data/JsTree_data_negated_0.json'), |
19
|
|
|
(GetTree.negated_operator_node_true, 'test_data/test_JsTree_data/JsTree_data_negated_1.json'), |
20
|
|
|
(GetTree.negated_value_node_true, 'test_data/test_JsTree_data/JsTree_data_negated_2.json'), |
21
|
|
|
(GetTree.negated_value_node_false, 'test_data/test_JsTree_data/JsTree_data_negated_3.json'), |
22
|
|
|
]) |
23
|
|
|
def test_create_node_dict_for_js_tree(tree_getter, json_src): |
24
|
|
|
data = GetTree.json_of_tree(json_src) |
25
|
|
|
oval_tree = tree_getter() |
26
|
|
|
assert Converter(oval_tree).to_js_tree_dict() == data |
27
|
|
|
|
28
|
|
|
|
29
|
|
|
@pytest.mark.parametrize("src, test_data_src, rule_id", [ |
30
|
|
|
( |
31
|
|
|
'global_test_data/ssg-fedora-ds-arf.xml', |
32
|
|
|
'test_data/JsTree_json1.json', |
33
|
|
|
'xccdf_org.ssgproject.content_rule_disable_host_auth', |
34
|
|
|
), |
35
|
|
|
( |
36
|
|
|
'global_test_data/ssg-fedora-ds-arf.xml', |
37
|
|
|
'test_data/JsTree_json0.json', |
38
|
|
|
'xccdf_org.ssgproject.content_rule_accounts_passwords_pam_faillock_deny', |
39
|
|
|
), |
40
|
|
|
]) |
41
|
|
|
def test_transformation_xml_rule_to_json_for_js_tree( |
42
|
|
|
src, test_data_src, rule_id): |
43
|
|
|
test_data = GetTree.json_of_tree(test_data_src) |
44
|
|
|
|
45
|
|
|
patch_to_xml = str(Path(__file__).parent.parent / src) |
46
|
|
|
|
47
|
|
|
parser = ARFXMLParser(patch_to_xml) |
48
|
|
|
oval_tree = parser.get_oval_tree(rule_id) |
49
|
|
|
|
50
|
|
|
assert oval_tree.node_id == rule_id |
51
|
|
|
out_data = Converter(oval_tree).to_js_tree_dict() |
52
|
|
|
assert out_data == test_data |
53
|
|
|
|