summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2016-03-28 09:34:28 -0400
committerNed Batchelder <ned@nedbatchelder.com>2016-03-28 09:34:28 -0400
commit331ffd0fe89865702ee001c3651f06b52caf76e0 (patch)
tree5d6939ef8c04d2205d7d2efeff7fa6731456d671
parentdb1a8306331000b881a7ce9e8103f76d8e060d89 (diff)
downloadpython-coveragepy-git-331ffd0fe89865702ee001c3651f06b52caf76e0.tar.gz
Show the tracer class in help output. #479
-rw-r--r--CHANGES.rst4
-rw-r--r--coverage/__init__.py4
-rw-r--r--coverage/cmdline.py16
-rw-r--r--tests/test_cmdline.py5
4 files changed, 21 insertions, 8 deletions
diff --git a/CHANGES.rst b/CHANGES.rst
index 0d912b98..2167a534 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -30,9 +30,13 @@ Unreleased
indents was fixed. The index page also has slightly different styling, to
try to make the clickable detail pages more apparent.
+- ``coverage --help`` and ``coverage --version`` now mention which tracer is
+ installed, to help diagnose problems (`issue 479`_).
+
.. _issue 440: https://bitbucket.org/ned/coveragepy/issues/440/yielded-twisted-failure-marked-as-missed
.. _issue 472: https://bitbucket.org/ned/coveragepy/issues/472/html-report-indents-incorrectly-for-one
.. _issue 475: https://bitbucket.org/ned/coveragepy/issues/475/generator-expression-is-marked-as-not
+.. _issue 479: https://bitbucket.org/ned/coveragepy/issues/479/clarify-the-need-for-the-c-extension
Version 4.1b2 --- 2016-01-23
diff --git a/coverage/__init__.py b/coverage/__init__.py
index d132e4a7..8085b2f0 100644
--- a/coverage/__init__.py
+++ b/coverage/__init__.py
@@ -10,10 +10,14 @@ http://nedbatchelder.com/code/coverage
from coverage.version import __version__, __url__, version_info
+from coverage.collector import CTracer
from coverage.control import Coverage, process_startup
from coverage.data import CoverageData
from coverage.misc import CoverageException
from coverage.plugin import CoveragePlugin, FileTracer, FileReporter
+from coverage.pytracer import PyTracer
+
+tracer_class = CTracer or PyTracer
# Backward compatibility.
coverage = Coverage
diff --git a/coverage/cmdline.py b/coverage/cmdline.py
index 38f4b43a..9e6b088f 100644
--- a/coverage/cmdline.py
+++ b/coverage/cmdline.py
@@ -549,7 +549,7 @@ class CoverageScript(object):
help_params['program_name'] = self.program_name
help_msg = textwrap.dedent(HELP_TOPICS.get(topic, '')).strip()
if help_msg:
- print(help_msg % help_params)
+ print(help_msg.format(**help_params))
else:
print("Don't know topic %r" % topic)
@@ -699,10 +699,10 @@ def unglob_args(args):
HELP_TOPICS = {
'help': """\
- Coverage.py, version %(__version__)s
+ Coverage.py, version {__version__} with {tracer_class.__name__}
Measure, collect, and report on code coverage in Python programs.
- usage: %(program_name)s <command> [options] [args]
+ usage: {program_name} <command> [options] [args]
Commands:
annotate Annotate source files with execution information.
@@ -714,17 +714,17 @@ HELP_TOPICS = {
run Run a Python program and measure code execution.
xml Create an XML report of coverage results.
- Use "%(program_name)s help <command>" for detailed help on any command.
- For full documentation, see %(__url__)s
+ Use "{program_name} help <command>" for detailed help on any command.
+ For full documentation, see {__url__}
""",
'minimum_help': """\
- Code coverage for Python. Use '%(program_name)s help' for help.
+ Code coverage for Python. Use '{program_name} help' for help.
""",
'version': """\
- Coverage.py, version %(__version__)s.
- Documentation at %(__url__)s
+ Coverage.py, version {__version__} with {tracer_class.__name__}
+ Documentation at {__url__}
""",
}
diff --git a/tests/test_cmdline.py b/tests/test_cmdline.py
index c78e3468..ebda68c3 100644
--- a/tests/test_cmdline.py
+++ b/tests/test_cmdline.py
@@ -13,6 +13,7 @@ import mock
import coverage
import coverage.cmdline
+from coverage import env
from coverage.config import CoverageConfig
from coverage.data import CoverageData, CoverageDataFiles
from coverage.misc import ExceptionDuringRun
@@ -599,6 +600,10 @@ class CmdLineStdoutTest(BaseCmdLineTest):
self.command_line("--version")
out = self.stdout()
self.assertIn("ersion ", out)
+ if env.C_TRACER:
+ self.assertIn("with CTracer", out)
+ else:
+ self.assertIn("with PyTracer", out)
self.assertLess(out.count("\n"), 4)
def test_help(self):