| Total Complexity | 6 |
| Total Lines | 49 |
| Duplicated Lines | 0 % |
| Changes | 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 |