def pytest_unconfigure(config): if HAS_COVERAGE: # Add all files from extension_helpers to make sure we compute the total # coverage, not just the coverage of the files that have non-zero # coverage. lines = {} for filename in glob.glob(os.path.join('extension_helpers', '**', '*.py'), recursive=True): lines[os.path.abspath(filename)] = [] for cdata in SUBPROCESS_COVERAGE: # For each CoverageData object, we go through all the files and # change the filename from one which might be a temporary path # to the local filename. We then only keep files that actually # exist. for filename in cdata.measured_files(): try: pos = filename.rindex('extension_helpers') except ValueError: continue short_filename = filename[pos:] if os.path.exists(short_filename): lines[os.path.abspath(short_filename)].extend( cdata.lines(filename)) if HAS_COVERAGE >= 5: # Support coverage<5 and >=5; see # https://github.com/astropy/extension-helpers/issues/24 # We create an empty coverage data object combined_cdata = CoverageData(suffix='subprocess') combined_cdata.add_lines(lines) combined_cdata.write() else: combined_cdata = CoverageData() combined_cdata.add_lines(lines) combined_cdata.write_file('.coverage.subprocess')
import sys from coverage import CoverageData # import this so we get our monkey patching done which is needed for # os.path.relpath on python2.5 import xtraceback def transform_data(data, transform): result = dict() for path, value in data.items(): result[transform(path)] = value return result if __name__ == "__main__": transform = getattr(os.path, "%spath" % sys.argv[1]) paths = sys.argv[2:] assert paths for path in paths: data = CoverageData(path) data.read() for field in ("lines", "arcs"): field_data = getattr(data, field) assert field_data setattr(data, field, transform_data(field_data, transform)) data.write()
from coverage import CoverageData # import this so we get our monkey patching done which is needed for # os.path.relpath on python2.5 import xtraceback def transform_data(data, transform): result = dict() for path, value in data.items(): result[transform(path)] = value return result if __name__ == "__main__": transform = getattr(os.path, "%spath" % sys.argv[1]) paths = sys.argv[2:] assert paths for path in paths: data = CoverageData(path) data.read() for field in ("lines", "arcs"): field_data = getattr(data, field) assert field_data setattr(data, field, transform_data(field_data, transform)) data.write()