diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2021-10-26 19:07:03 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2021-10-26 19:17:19 -0400 |
commit | 93c9ca9f1b2e5d0b45dbf4b82c77aaf05b458bac (patch) | |
tree | 6b0e1cc009da5e33ca87e8fb096704b27afe1a8f /coverage | |
parent | 18cf3b897d4b1e1a66beda180ec151cc0dd4dbc3 (diff) | |
download | python-coveragepy-git-nedbat/dashq.tar.gz |
feat: xml and json say what they are doing, and -q quiets everything. #1254nedbat/dashq
Diffstat (limited to 'coverage')
-rw-r--r-- | coverage/cmdline.py | 11 | ||||
-rw-r--r-- | coverage/control.py | 4 | ||||
-rw-r--r-- | coverage/jsonreport.py | 2 | ||||
-rw-r--r-- | coverage/report.py | 5 | ||||
-rw-r--r-- | coverage/xmlreport.py | 2 |
5 files changed, 20 insertions, 4 deletions
diff --git a/coverage/cmdline.py b/coverage/cmdline.py index 81b87edf..e996ffff 100644 --- a/coverage/cmdline.py +++ b/coverage/cmdline.py @@ -146,6 +146,10 @@ class Opts: "reported coverage percentages." ), ) + quiet = optparse.make_option( + '-q', '--quiet', action='store_true', + help="Don't print messages about what is happening.", + ) rcfile = optparse.make_option( '', '--rcfile', action='store', help=( @@ -227,6 +231,7 @@ class CoverageOptionParser(optparse.OptionParser): parallel_mode=None, precision=None, pylib=None, + quiet=None, rcfile=True, show_contexts=None, show_missing=None, @@ -340,6 +345,7 @@ CMDS = { [ Opts.append, Opts.keep, + Opts.quiet, ] + GLOBAL_ARGS, usage="[options] <path1> <path2> ... <pathN>", description=( @@ -387,6 +393,7 @@ CMDS = { Opts.include, Opts.omit, Opts.precision, + Opts.quiet, Opts.show_contexts, Opts.skip_covered, Opts.no_skip_covered, @@ -411,6 +418,7 @@ CMDS = { Opts.omit, Opts.output_json, Opts.json_pretty_print, + Opts.quiet, Opts.show_contexts, ] + GLOBAL_ARGS, usage="[options] [modules]", @@ -463,6 +471,7 @@ CMDS = { Opts.include, Opts.omit, Opts.output_xml, + Opts.quiet, Opts.skip_empty, ] + GLOBAL_ARGS, usage="[options] [modules]", @@ -576,7 +585,7 @@ class CoverageScript: concurrency=options.concurrency, check_preimported=True, context=options.context, - messages=True, + messages=not options.quiet, ) if options.action == "debug": diff --git a/coverage/control.py b/coverage/control.py index defe9209..a96f558a 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -1006,7 +1006,7 @@ class Coverage: ignore_errors=ignore_errors, report_omit=omit, report_include=include, xml_output=outfile, report_contexts=contexts, skip_empty=skip_empty, ): - return render_report(self.config.xml_output, XmlReporter(self), morfs) + return render_report(self.config.xml_output, XmlReporter(self), morfs, self._message) def json_report( self, morfs=None, outfile=None, ignore_errors=None, @@ -1030,7 +1030,7 @@ class Coverage: json_output=outfile, report_contexts=contexts, json_pretty_print=pretty_print, json_show_contexts=show_contexts ): - return render_report(self.config.json_output, JsonReporter(self), morfs) + return render_report(self.config.json_output, JsonReporter(self), morfs, self._message) def sys_info(self): """Return a list of (key, value) pairs showing internal information.""" diff --git a/coverage/jsonreport.py b/coverage/jsonreport.py index daebca11..c87bb0e7 100644 --- a/coverage/jsonreport.py +++ b/coverage/jsonreport.py @@ -14,6 +14,8 @@ from coverage.results import Numbers class JsonReporter: """A reporter for writing JSON coverage results.""" + report_type = "JSON report" + def __init__(self, coverage): self.coverage = coverage self.config = self.coverage.config diff --git a/coverage/report.py b/coverage/report.py index 82994ecf..112dcae1 100644 --- a/coverage/report.py +++ b/coverage/report.py @@ -2,6 +2,7 @@ # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt """Reporter foundation for coverage.py.""" + import sys from coverage.exceptions import CoverageException, NoSource, NotPython @@ -9,7 +10,7 @@ from coverage.files import prep_patterns, FnmatchMatcher from coverage.misc import ensure_dir_for_file, file_be_gone -def render_report(output_path, reporter, morfs): +def render_report(output_path, reporter, morfs, msgfn): """Run a one-file report generator, managing the output file. This function ensures the output file is ready to be written to. Then writes @@ -40,6 +41,8 @@ def render_report(output_path, reporter, morfs): file_to_close.close() if delete_file: file_be_gone(output_path) # pragma: part covered (doesn't return) + else: + msgfn(f"Wrote {reporter.report_type} to {output_path}") def get_analysis_to_report(coverage, morfs): diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py index 6dc330f1..8c8409dc 100644 --- a/coverage/xmlreport.py +++ b/coverage/xmlreport.py @@ -30,6 +30,8 @@ def rate(hit, num): class XmlReporter: """A reporter for writing Cobertura-style XML coverage results.""" + report_type = "XML report" + def __init__(self, coverage): self.coverage = coverage self.config = self.coverage.config |