def test_diff_same_report_different_source_dirs(): from pycobertura.cobertura import CoberturaDiff cobertura1 = make_cobertura('tests/dummy.uncovered.addcode/coverage.xml', source='tests/dummy.uncovered/dummy/') cobertura2 = make_cobertura('tests/dummy.uncovered.addcode/coverage.xml', source='tests/dummy.uncovered.addcode/dummy/') differ = CoberturaDiff(cobertura1, cobertura2) assert differ.diff_missed_lines('dummy.py') == [(2, False), (3, True)]
class DeltaReporter(object): def __init__(self, cobertura1, cobertura2, show_source=True): self.differ = CoberturaDiff(cobertura1, cobertura2) self.show_source = show_source def get_file_row(self, filename): row_values = [ filename, self.differ.diff_total_statements(filename), self.differ.diff_total_misses(filename), self.differ.diff_line_rate(filename), ] if self.show_source is True: missed_lines = self.differ.diff_missed_lines(filename) row_values.append(missed_lines) row = file_row_missed(*row_values) else: row = file_row(*row_values) return row def get_footer_row(self): footer_values = [ 'TOTAL', self.differ.diff_total_statements(), self.differ.diff_total_misses(), self.differ.diff_line_rate(), ] if self.show_source: footer_values.append([]) # dummy missed lines footer = file_row_missed(*footer_values) else: footer = file_row(*footer_values) return footer def get_report_lines(self): lines = [] for filename in self.differ.files(): file_row = self.get_file_row(filename) if any(file_row[1:]): # don't report unchanged class files lines.append(file_row) footer = self.get_footer_row() lines.append(footer) return lines