summaryrefslogtreecommitdiff
path: root/coverage/control.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-06-13 08:22:00 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-06-13 08:22:00 -0400
commit0ce35d98b867a92f1022034e4b906ee8536aed63 (patch)
treefe0cbedd9d1cdc6814f2a344c2fe8e9597718f6b /coverage/control.py
parenta0e01c038565f0e49ea5d5c742d8646b121a5e08 (diff)
downloadpython-coveragepy-git-0ce35d98b867a92f1022034e4b906ee8536aed63.tar.gz
Move plugin support stuff into plugin_support.py
Diffstat (limited to 'coverage/control.py')
-rw-r--r--coverage/control.py49
1 files changed, 1 insertions, 48 deletions
diff --git a/coverage/control.py b/coverage/control.py
index d05b8443..9256edb2 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -24,6 +24,7 @@ from coverage.misc import CoverageException, bool_or_none, join_regex
from coverage.misc import file_be_gone, overrides
from coverage.monkey import patch_multiprocessing
from coverage.plugin import CoveragePlugin, FileReporter
+from coverage.plugin_support import Plugins
from coverage.python import PythonFileReporter
from coverage.results import Analysis, Numbers
from coverage.summary import SummaryReporter
@@ -1163,51 +1164,3 @@ def process_startup():
# A hack for debugging testing in sub-processes.
_TEST_NAME_FILE = "" # "/tmp/covtest.txt"
-
-
-class Plugins(object):
- """The currently loaded collection of coverage.py plugins."""
-
- def __init__(self):
- self.order = []
- self.names = {}
-
- @classmethod
- def load_plugins(cls, modules, config):
- """Load plugins from `modules`.
-
- Returns a list of loaded and configured plugins.
-
- """
- plugins = cls()
-
- for module in modules:
- __import__(module)
- mod = sys.modules[module]
-
- plugin_class = getattr(mod, "Plugin", None)
- if plugin_class:
- options = config.get_plugin_options(module)
- plugin = plugin_class(options)
- plugin._coverage_plugin_name = module
- plugin._coverage_enabled = True
- plugins.order.append(plugin)
- plugins.names[module] = plugin
- else:
- raise CoverageException(
- "Plugin module %r didn't define a Plugin class" % module
- )
-
- return plugins
-
- def __nonzero__(self):
- return bool(self.order)
-
- __bool__ = __nonzero__
-
- def __iter__(self):
- return iter(self.order)
-
- def get(self, plugin_name):
- """Return a plugin by name."""
- return self.names[plugin_name]