def test_relative_path(self): self._set_git_root('/home/user/work/diff-cover') expected = 'violations_reporter.py' cwd = '/home/user/work/diff-cover/diff_cover' tool = GitPathTool(cwd) path = tool.relative_path('diff_cover/violations_reporter.py') # Expect relative path from diff_cover self.assertEqual(path, expected)
def test_absolute_path(self): self._set_git_root('/home/user/work/diff-cover') expected = '/home/user/work/diff-cover/other_package/file.py' cwd = '/home/user/work/diff-cover/diff_cover' tool = GitPathTool(cwd) path = tool.absolute_path('other_package/file.py') # Expect absolute path to file.py self.assertEqual(path, expected)
def test_project_root_command(self): self._set_git_root('/phony/path') GitPathTool('/phony/path') # Expect that the correct command was executed expected = ['git', 'rev-parse', '--show-toplevel'] self.subprocess.Popen.assert_called_with(expected, stdout=self.subprocess.PIPE, stderr=self.subprocess.PIPE)
def generate_coverage_report(coverage_xml, compare_branch, html_report=None): """ Generate the diff coverage report, using kwargs from `parse_args()`. """ diff = GitDiffReporter(compare_branch, git_diff=GitDiffTool()) xml_roots = [etree.parse(xml_root) for xml_root in coverage_xml] git_path = GitPathTool(os.getcwd()) coverage = XmlCoverageReporter(xml_roots, git_path) # Build a report generator if html_report is not None: reporter = HtmlReportGenerator(coverage, diff) output_file = open(html_report, "w") else: reporter = StringReportGenerator(coverage, diff) output_file = sys.stdout # Generate the report reporter.generate_report(output_file)