Passed
Pull Request — master (#4216)
by Matěj
02:33 queued 10s
created

test_rules.test_get_rule_dir_remediations()   A

Complexity

Conditions 1

Size

Total Lines 18
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 14
nop 0
dl 0
loc 18
rs 9.7
c 0
b 0
f 0
1
import os
2
import ssg.rules
3
4
data_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "data"))
5
rule_dir = os.path.join(data_dir, "group_dir", "rule_dir")
6
7
8
def test_get_rule_dir_id():
9
    assert ssg.rules.get_rule_dir_id("/some/path/fix_all_vulns/rule.yml") == "fix_all_vulns"
10
    assert ssg.rules.get_rule_dir_id("/some/path/fix_all_vulns") == "fix_all_vulns"
11
    assert ssg.rules.get_rule_dir_id(rule_dir) == 'rule_dir'
12
13
14
def test_is_rule_dir():
15
    assert ssg.rules.is_rule_dir(rule_dir)
16
17
18
def test_applies_to_product():
19
    assert ssg.rules.applies_to_product('shared', None)
20
    assert ssg.rules.applies_to_product('rhel', None)
21
    assert ssg.rules.applies_to_product('shared', 'rhel')
22
    assert ssg.rules.applies_to_product('rhel', 'rhel')
23
    assert not ssg.rules.applies_to_product('ol', 'rhel')
24
25
26
def test_find_rule_dirs():
27
    rule_dirs = list(ssg.rules.find_rule_dirs(data_dir))
28
    rule_ids = list(map(ssg.rules.get_rule_dir_id, rule_dirs))
29
30
    assert rule_dir in rule_dirs
31
    assert 'rule_dir' in rule_ids
32
    assert 'random_dir' not in rule_ids
33
34
35
def test_get_rule_dir_ovals():
36
    ovals = ssg.rules.get_rule_dir_ovals(rule_dir)
37
    oval_files = list(map(os.path.basename, ovals))
38
39
    assert len(ovals) == 2
40
    assert 'shared.xml' in oval_files
41
    assert 'rhel.xml' in oval_files
42
    assert oval_files.index('shared.xml') > oval_files.index('rhel.xml')
43
44
    rhel_ovals = ssg.rules.get_rule_dir_ovals(rule_dir, 'rhel')
45
    assert rhel_ovals == ovals
46
47
    ol_ovals = ssg.rules.get_rule_dir_ovals(rule_dir, 'ol')
48
    assert ol_ovals != ovals
49
    assert len(ol_ovals) == 1
50
    assert 'rhel.xml' not in ol_ovals
51