diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2015-01-24 19:21:44 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2015-01-24 19:21:44 -0500 |
commit | f12672d37060f986246e5cb13dfd036ab09eb70b (patch) | |
tree | c6717fe8209b3221a4f6c4b611eda0bf1c694ea1 | |
parent | 3418b08b1bf8a4aa7bb5ce27721d9b8b87492338 (diff) | |
download | python-coveragepy-git-f12672d37060f986246e5cb13dfd036ab09eb70b.tar.gz |
Set timid=True automatically for plugins
This is better than asking people to add timid=True to their configs, since
this way they won't have to clean it out of their config later.
-rw-r--r-- | coverage/control.py | 14 | ||||
-rw-r--r-- | tests/test_plugins.py | 15 |
2 files changed, 27 insertions, 2 deletions
diff --git a/coverage/control.py b/coverage/control.py index 3f18c3ea..197a7c1e 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -15,14 +15,13 @@ from coverage.collector import Collector from coverage.config import CoverageConfig from coverage.data import CoverageData from coverage.debug import DebugControl -from coverage.plugin import CoveragePlugin from coverage.files import FileLocator, TreeMatcher, FnmatchMatcher from coverage.files import PathAliases, find_python_files, prep_patterns from coverage.files import ModuleMatcher from coverage.html import HtmlReporter from coverage.misc import CoverageException, bool_or_none, join_regex from coverage.misc import file_be_gone, overrides -from coverage.plugin import FileReporter +from coverage.plugin import CoveragePlugin, FileReporter from coverage.python import PythonCodeUnit from coverage.results import Analysis, Numbers from coverage.summary import SummaryReporter @@ -189,6 +188,12 @@ class Coverage(object): # Load plugins self.plugins = Plugins.load_plugins(self.config.plugins, self.config) + # TEMPORARY, because the plugin support is implemented in PyTracer. + # This will be removed when that support is moved into CTracer. + if self.plugins: + self._warn("Setting timid=True to support plugins.") + self.config.timid = True + self.file_tracers = [] for plugin in self.plugins: if overrides(plugin, "file_tracer", CoveragePlugin): @@ -1093,6 +1098,11 @@ class Plugins(object): return plugins + def __nonzero__(self): + return bool(self.order) + + __bool__ = __nonzero__ + def __iter__(self): return iter(self.order) diff --git a/tests/test_plugins.py b/tests/test_plugins.py index 2a8b089d..8c8d32e8 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -32,6 +32,21 @@ class FakeConfig(object): class LoadPluginsTest(CoverageTest): """Test Plugins.load_plugins directly.""" + def test_implicit_boolean(self): + self.make_file("plugin1.py", """\ + from coverage import CoveragePlugin + + class Plugin(CoveragePlugin): + pass + """) + + config = FakeConfig("plugin1", {}) + plugins = Plugins.load_plugins([], config) + self.assertFalse(plugins) + + plugins = Plugins.load_plugins(["plugin1"], config) + self.assertTrue(plugins) + def test_importing_and_configuring(self): self.make_file("plugin1.py", """\ from coverage import CoveragePlugin |