Passed
Push — master ( b5a080...903f35 )
by Jan
06:45 queued 01:03
created

test_oval_tree.test_converter_js_tree   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 39
dl 0
loc 53
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A tests_oval_graph.test_oval_tree.test_converter_js_tree.test_transformation_xml_rule_to_json_for_js_tree() 0 24 1
A tests_oval_graph.test_oval_tree.test_converter_js_tree.test_create_node_dict_for_js_tree() 0 16 1
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