Passed
Pull Request — master (#219)
by Matěj
01:21
created

test_content_discovery.test_reduce()   B

Complexity

Conditions 5

Size

Total Lines 28
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 22
nop 1
dl 0
loc 28
rs 8.8853
c 0
b 0
f 0
1
import pytest
2
3
import org_fedora_oscap.content_discovery as tested_module
4
5
6
@pytest.fixture
7
def labelled_files():
8
    return {
9
        "dir/datastream": "D",
10
        "dir/datastream2": "D",
11
        "dir/dir/datastream3": "D",
12
        "dir/dir/datastream3": "D",
13
        "dir/XCCDF": "X",
14
        "XCCDF2": "X",
15
        "cpe": "C",
16
        "t1": "T",
17
        "dir3/t2": "T",
18
    }
19
20
21
def test_reduce(labelled_files):
22
    bringer = tested_module.ContentBringer(None)
23
24
    d_count = 0
25
    x_count = 0
26
    for l in labelled_files.values():
27
        if l == "D":
28
            d_count += 1
29
        elif l == "X":
30
            x_count += 1
31
32
    reduced = bringer.reduce_files(labelled_files, "dir/datastream", ["D"])
33
    assert len(reduced) == len(labelled_files) - d_count + 1
34
    assert "dir/datastream" in reduced
35
36
    reduced = bringer.reduce_files(labelled_files, "dir/datastream", ["D", "X"])
37
    assert len(reduced) == len(labelled_files) - d_count - x_count + 1
38
    assert "dir/datastream" in reduced
39
40
    reduced = bringer.reduce_files(labelled_files, "dir/XCCDF", ["D", "X"])
41
    assert len(reduced) == len(labelled_files) - d_count - x_count + 1
42
    assert "dir/XCCDF" in reduced
43
44
    with pytest.raises(RuntimeError, match="dir/datastream4"):
45
        bringer.reduce_files(labelled_files, "dir/datastream4", ["D"])
46
47
    reduced = bringer.reduce_files(labelled_files, "cpe", ["C"])
48
    assert reduced == labelled_files
49