def save_coverage(tree, templates, output_dir, app_name, granularity): groups = Utils2.get_groupped_classes(tree) init_row = templates['init_row.pt'] init_table = templates['init_table.pt'] index_template = templates['index.pt'] rows = [] total_coverage_data = CoverageData() for g in groups: (package, path, coverage_data) = save_package_indexhtml(g, templates, output_dir, app_name, granularity) coverage = coverage_data.get_formatted_coverage(granularity) row = init_row(elementlink=path, type='package', elementname=package, coverage=coverage, respath='', coverage_data=coverage_data, is_instruction_level=Granularity.is_instruction(granularity), progress_covered=coverage_data.covered(granularity), progress_missed=coverage_data.missed(granularity)) rows.append(Markup(row)) total_coverage_data.add_data(coverage_data) total_coverage = total_coverage_data.get_formatted_coverage(granularity) table = init_table(rows=Markup("\n".join(rows)), total_coverage=total_coverage, total_coverage_data=total_coverage_data, is_instruction_level=Granularity.is_instruction(granularity), progress_covered=total_coverage_data.covered(granularity), progress_all=total_coverage_data.coverable(granularity)) root_path = '' html = index_template(table=Markup(table), appname=app_name, title=app_name, package=None, respath=root_path, file_name=None, granularity=Granularity.get(granularity)) path = os.path.join(output_dir, 'index.html') with open(path, 'w') as f: f.write(html)
def save_package_indexhtml(class_group, templates, output_dir, app_name, granularity): folder = class_group[0].folder.replace('\\', '/') class_name_with_pkg = class_group[0].name package_name = Utils2.get_standart_package_name(class_name_with_pkg) init_table = templates['init_table.pt'] init_row = templates['init_row.pt'] index_template = templates['index.pt'] slash_num = class_name_with_pkg.count('/') root_path = '' for i in range(slash_num): root_path += '../' total_coverage_data = CoverageData() rows = [] for cl in class_group: elementlink = os.path.join(root_path, folder, cl.file_name + '.html').replace('\\', '/') elementname = cl.file_name coverage_data = CoverageData(lines=cl.coverable(), lines_missed=cl.not_covered(), lines_covered=cl.covered(), methods_covered=cl.mtds_covered(), methods_missed=cl.mtds_not_covered(), methods=cl.mtds_coverable()) coverage_data.update_coverage_for_single_class_from_methods() coverage = coverage_data.get_coverage(granularity) row = init_row( elementlink=elementlink, type='class', elementname=elementname, coverage=coverage_data.format_coverage(coverage), respath=root_path, coverage_data=coverage_data, is_instruction_level=Granularity.is_instruction(granularity), progress_missed=coverage_data.missed(granularity), progress_covered=coverage_data.covered(granularity)) rows.append(Markup(row)) total_coverage_data.add_data(coverage_data) total_coverage = total_coverage_data.get_formatted_coverage(granularity) table = init_table( rows=Markup("\n".join(rows)), total_coverage=total_coverage, is_instruction_level=Granularity.is_instruction(granularity), total_coverage_data=total_coverage_data, progress_covered=total_coverage_data.covered(granularity), progress_all=total_coverage_data.coverable(granularity)) html = index_template(table=Markup(table), appname=app_name, title=folder, package=package_name, respath=root_path, file_name=None, granularity=Granularity.get(granularity)) rel_path = os.path.join(folder, 'index.html').replace('\\', '/') path = os.path.join(output_dir, rel_path).replace('\\', '/') with open(path, 'w') as f: f.write(html) return (package_name, rel_path, total_coverage_data)