-
Notifications
You must be signed in to change notification settings - Fork 204
Open
Description
Issue description
When git diff output includes deleted files, diff-quality invokes the quality tool without adding the source file path to the command line. Tools that require a list of input files (e.g. pycodestyle) will fail when invoked without it:
$ diff-quality --violations pycodestyle
diff_cover.command_runner.CommandError: Usage: pycodestyle [options] input ...
pycodestyle: error: input not specified
(Tools that allow to be invoked without a list of inputs won't fail, but likely won't produce the expected output either.)
Traceback
$ diff-quality --violations pycodestyle
Traceback (most recent call last):
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/report_generator.py", line 199, in _diff_violations
violations = self._violations.violations_batch(src_paths_changed)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/violationsreporters/base.py", line 48, in violations_batch
raise NotImplementedError
NotImplementedError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "[project-folder]/.venv/bin/diff-quality", line 8, in <module>
sys.exit(main())
^^^^^^
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/diff_quality_tool.py", line 349, in main
percent_passing = generate_quality_report(
^^^^^^^^^^^^^^^^^^^^^^^^
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/diff_quality_tool.py", line 275, in generate_quality_report
reporter.generate_report(output_file)
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/report_generator.py", line 302, in generate_report
report = template.render(self._context())
^^^^^^^^^^^^^^^
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/report_generator.py", line 351, in _context
context = super().report_dict()
^^^^^^^^^^^^^^^^^^^^^
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/report_generator.py", line 220, in report_dict
src_stats = {src: self._src_path_stats(src) for src in self.src_paths()}
^^^^^^^^^^^^^^^^
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/report_generator.py", line 86, in src_paths
for src, summary in self._diff_violations().items()
^^^^^^^^^^^^^^^^^^^^^^^
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/report_generator.py", line 211, in _diff_violations
self._violations.violations(src_path),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/violationsreporters/base.py", line 171, in violations
stdout, stderr = execute(command, self.driver.exit_codes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[project-folder]/.venv/lib/python3.12/site-packages/diff_cover/command_runner.py", line 36, in execute
raise CommandError(stderr)
diff_cover.command_runner.CommandError: Usage: pycodestyle [options] input ...
pycodestyle: error: input not specified
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels