mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
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()
|