Files
gpr/bindings/python/tests/fix-coverage-paths.py
Nicolas Roche 7542ec55a0 Add framework for the GPR2 Python 3.x binding
Part of T713-036

Change-Id: I143ef019d1b2a5f059d4fda64dd47900bb770530
2020-07-17 06:12:20 -07:00

35 lines
939 B
Python

#!/usr/bin/env python
# strip .tox/*/lib/python*/site-packages paths from coverage data
# show only paths corresponding to the real source files
# From https://github.com/danilobellini/pytest-doctest-custom/
# type: ignore
import os
import sys
from coverage.sqldata import CoverageData
from coverage.files import PathAliases
from tempfile import NamedTemporaryFile
def fix_paths(site_pkg_dir, cov_data_file):
site_pkg_dir = os.path.abspath(site_pkg_dir)
paths = PathAliases()
paths.add(site_pkg_dir, "src")
old_cov_file = NamedTemporaryFile()
old_cov_file.close()
os.rename(cov_data_file, old_cov_file.name)
old_coverage_data = CoverageData(old_cov_file.name)
old_coverage_data.read()
new_coverage_data = CoverageData(cov_data_file)
new_coverage_data.update(old_coverage_data, aliases=paths)
new_coverage_data.write()
if __name__ == "__main__":
fix_paths(sys.argv[1], sys.argv[2])