summaryrefslogtreecommitdiff
path: root/tests/test_plugins.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2014-11-12 06:28:12 -0500
committerNed Batchelder <ned@nedbatchelder.com>2014-11-12 06:28:12 -0500
commit2bfb7a99063911fd17d16bf0dc304546cb7b720d (patch)
treea6b5cc008b7715afcbc1673b8d4648581b4472a0 /tests/test_plugins.py
parent81f5697e7cb2f5a064fd891617c0c8caf5ab21d9 (diff)
downloadpython-coveragepy-git-2bfb7a99063911fd17d16bf0dc304546cb7b720d.tar.gz
Clean up some plugin tests.
Diffstat (limited to 'tests/test_plugins.py')
-rw-r--r--tests/test_plugins.py52
1 files changed, 12 insertions, 40 deletions
diff --git a/tests/test_plugins.py b/tests/test_plugins.py
index 5039082e..83840ea3 100644
--- a/tests/test_plugins.py
+++ b/tests/test_plugins.py
@@ -1,13 +1,10 @@
"""Tests for plugins."""
-import os.path
import sys
from nose.plugins.skip import SkipTest
import coverage
-from coverage.codeunit import CodeUnit
-from coverage.parser import CodeParser
from coverage.plugin import Plugins, overrides
import coverage.plugin
@@ -32,7 +29,7 @@ class FakeConfig(object):
return {}
-class PluginUnitTest(CoverageTest):
+class LoadPluginsTest(CoverageTest):
"""Test Plugins.load_plugins directly."""
def test_importing_and_configuring(self):
@@ -78,11 +75,21 @@ class PluginUnitTest(CoverageTest):
self.assertEqual(plugins[1].options, {})
self.assertEqual(config.asked_for, ['plugin1', 'plugin2'])
+ # The order matters...
+ config = FakeConfig("plugin1", {'a':'second'})
+ plugins = list(Plugins.load_plugins(["plugin2", "plugin1"], config))
+
+ self.assertEqual(len(plugins), 2)
+ self.assertEqual(plugins[0].options, {})
+ self.assertEqual(plugins[1].this_is, "me")
+ self.assertEqual(plugins[1].options, {'a':'second'})
+
def test_cant_import(self):
with self.assertRaises(ImportError):
_ = Plugins.load_plugins(["plugin_not_there"], None)
def test_ok_to_not_define_plugin(self):
+ # TODO: should this actually be an error or warning?
self.make_file("plugin2.py", """\
from coverage import CoveragePlugin
@@ -145,7 +152,7 @@ class PluginTest(CoverageTest):
""")
cov = coverage.Coverage()
- cov.config["run:plugins"] = ["tests.test_plugins"]
+ cov.config["run:plugins"] = ["tests.plugin1"]
# Import the python file, executing it.
self.start_import_stop(cov, "simple")
@@ -157,41 +164,6 @@ class PluginTest(CoverageTest):
self.assertEqual(statements, [105, 106, 107, 205, 206, 207])
-class Plugin(coverage.CoveragePlugin):
- def file_tracer(self, filename):
- if "xyz.py" in filename:
- file_tracer = FileTracer(filename)
- return file_tracer
-
- def file_reporter(self, filename):
- return FileReporter(filename)
-
-
-class FileTracer(coverage.plugin.FileTracer):
- def __init__(self, filename):
- self._filename = filename
- self._source_filename = os.path.join(
- "/src",
- os.path.basename(filename.replace("xyz.py", "ABC.zz"))
- )
-
- def source_filename(self):
- return self._source_filename
-
- def line_number_range(self, frame):
- lineno = frame.f_lineno
- return lineno*100+5, lineno*100+7
-
-
-class FileReporter(coverage.plugin.FileReporter):
- def get_parser(self, exclude=None):
- return PluginParser()
-
-class PluginParser(CodeParser):
- def parse_source(self):
- return set([105, 106, 107, 205, 206, 207]), set([])
-
-
class OverridesTest(CoverageTest):
"""Test plugins.py:overrides."""