Passed
Push — master ( fbcbb8...bf605d )
by Matěj
03:39 queued 11s
created

test_xml_parser.test_str_to_bool()   A

Complexity

Conditions 2

Size

Total Lines 9
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 8
nop 0
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
import os
2
import pytest
3
import json
4
5
import pytest
6
7
import tests.any_test_help
8
from oval_graph.xml_parser import XmlParser
9
10
11
def test_parsing_full_scan_XML_and_evaluate():
12
    src = 'test_data/ssg-fedora-ds-arf.xml'
13
    rule_id = 'xccdf_org.ssgproject.content_rule_accounts_passwords_pam_faillock_deny'
14
    result = 'false'
15
16
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
17
        src, rule_id, result)
18
19
20
def test_parsing_and_evaluate_scan_with_extend_def():
21
    src = 'test_data/ssg-fedora-ds-arf-scan-with-extend-definitions.xml'
22
    rule_id = 'xccdf_org.ssgproject.content_rule_sysctl_net_ipv6_conf_all_disable_ipv6'
23
    result = 'false'
24
25
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
26
        src, rule_id, result)
27
28
29
def test_parsing_and_evaluate_scan_with_pasing_rule():
30
    src = 'test_data/ssg-fedora-ds-arf-passing-scan.xml'
31
    rule_id = 'xccdf_org.ssgproject.content_rule_service_debug-shell_disabled'
32
    result = 'true'
33
34
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
35
        src, rule_id, result)
36
37
38
def test_parsing_and_evaluate_scan_with_fail_rule():
39
    src = 'test_data/ssg-fedora-ds-arf-scan-fail.xml'
40
    rule_id = 'xccdf_org.ssgproject.content_rule_mount_option_dev_shm_noexec'
41
    result = 'false'
42
43
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
44
        src, rule_id, result)
45
46
47
def test_parsing_and_evaluate_scan_with_rule_with_XOR():
48
    src = 'test_data/ssg-fedora-ds-arf-scan-with-xor.xml'
49
    rule_id = 'xccdf_org.ssgproject.content_rule_mount_option_nosuid_removable_partitions'
50
    result = 'true'
51
52
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
53
        src, rule_id, result)
54
55
56
def test_parsing_and_evaluate_scan_with_11_rules():
57
    src = 'test_data/ssg-fedora-ds-arf-scan-with-11-rules.xml'
58
    rule_id = 'xccdf_org.ssgproject.content_rule_mount_option_tmp_nosuid'
59
    result = 'true'
60
61
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
62
        src, rule_id, result)
63
64
65
def test_parsing_and_evaluate_scan_0():
66
    src = 'test_data/ssg-fedora-ds-arf.xml'
67
    rule_id = 'xccdf_org.ssgproject.content_rule_audit_rules_file_deletion_events_rmdir'
68
    result = 'false'
69
70
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
71
        src, rule_id, result)
72
73
74
def test_parsing_and_evaluate_scan_1():
75
    src = 'test_data/ssg-fedora-ds-arf-scan-with-negated-extend-definitions.xml'
76
    rule_id = 'xccdf_org.ssgproject.content_rule_install_PAE_kernel_on_x86-32'
77
    result = 'true'
78
79
    tests.any_test_help.any_test_parsing_and_evaluate_scan_rule(
80
        src, rule_id, result)
81
82
83
def test_get_def_id_by_rule_id():
84
    src = 'test_data/ssg-fedora-ds-arf.xml'
85
    parser = XmlParser(tests.any_test_help.get_src(src))
86
87
    with pytest.raises(Exception, match="err- 404 rule not found!"):
88
        assert parser._get_definition_of_rule('hello')
89
90
91
def test_get_def_id_by_notselected_rule_id():
92
    src = 'test_data/ssg-fedora-ds-arf.xml'
93
94
    parser = tests.any_test_help.get_parser(src)
95
    rule_id = 'xccdf_org.ssgproject.content_rule_ntpd_specify_remote_server'
96
97
    with pytest.raises(Exception, match="not selected"):
98
        assert parser._get_definition_of_rule(rule_id)
99
100
101
def test_use_bat_report_file():
102
    src = (
103
        'test_data/xccdf_org.ssgproject.'
104
        'content_rule_sssd_ssh_known_hosts_timeout-comment.'
105
        'fail.sh-xccdf_org.ssgproject.content_profile_ospp-results-initial.xml')
106
107
    with pytest.raises(Exception, match=r"arf\b|ARF\b"):
108
        assert tests.any_test_help.get_parser(src)
109