File: test-coverage.py

package info (click to toggle)
ansible-core 2.19.0~beta6-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 32,628 kB
  • sloc: python: 180,313; cs: 4,929; sh: 4,601; xml: 34; makefile: 21
file content (45 lines) | stat: -rw-r--r-- 1,973 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from __future__ import annotations

import json
import os
import os.path
import pathlib


def main() -> None:
    collection_root = pathlib.Path(os.getcwd())
    print(f"Running windows-integration coverage test in '{collection_root}'")

    result_path = collection_root / "tests" / "output" / "coverage" / "coverage-powershell"
    adjacent_modules_path = collection_root / "tests" / "integration" / "targets" / "win_collection" / "library"
    adjacent_utils_path = collection_root / "tests" / "integration" / "targets" / "win_collection" / "module_utils"
    collection_modules_path = collection_root / "plugins" / "modules"
    collection_utils_path = collection_root / "plugins" / "module_utils"

    expected_hits = {
        str(adjacent_modules_path / 'test_win_collection_async.ps1'): {'5': 1, '6': 1},
        str(adjacent_modules_path / 'test_win_collection_become.ps1'): {'5': 1, '6': 1},
        str(adjacent_modules_path / 'test_win_collection_normal.ps1'): {'6': 1, '7': 1, '8': 1},
        str(adjacent_utils_path / 'Ansible.ModuleUtils.AdjacentPwshCoverage.psm1'): {'6': 1, '9': 1},
        str(collection_modules_path / 'win_collection.ps1'): {'6': 1, '7': 1, '8': 1},
        str(collection_utils_path / 'CollectionPwshCoverage.psm1'): {'6': 1, '9': 1},
    }
    found_hits = set()

    with open(result_path, mode="rb") as fd:
        data = json.load(fd)

    for path, result in data.items():
        print(f"Testing result for path '{path}' -> {result!r}")
        assert path in expected_hits, f"Found unexpected coverage result path '{path}'"

        expected = expected_hits[path]
        assert result == expected, f"Coverage result for {path} was {result!r} but was expecting {expected!r}"
        found_hits.add(path)

    missing_hits = set(expected_hits.keys()).difference(found_hits)
    assert not missing_hits, f"Expected coverage results for {', '.join(missing_hits)} but they were not present"


if __name__ == '__main__':
    main()