Rev 3318: Prepare bzrlib.plugin to use the new test loader. in file:///v/home/vila/src/bzr/experimental/faster-selftest/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Wed Mar 26 09:06:39 GMT 2008
At file:///v/home/vila/src/bzr/experimental/faster-selftest/
------------------------------------------------------------
revno: 3318
revision-id: v.ladeuil+lp at free.fr-20080326090634-1yv15m2m2e08uezt
parent: v.ladeuil+lp at free.fr-20080326084201-5nk05zka1xnoua90
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: filter-by-module-test-loader
timestamp: Wed 2008-03-26 10:06:34 +0100
message:
Prepare bzrlib.plugin to use the new test loader.
* bzrlib/tests/test_plugins.py:
(TestPlugins.test_no_load_tests_gives_None_for_load_tests): Smoke
tests for plugin.load_tests().
* bzrlib/plugin.py:
(PlugIn.load_tests): Add the ability to use load_tests() instead
of test_suite().
modified:
bzrlib/plugin.py plugin.py-20050622060424-829b654519533d69
bzrlib/tests/test_plugins.py plugins.py-20050622075746-32002b55e5e943e9
-------------- next part --------------
=== modified file 'bzrlib/plugin.py'
--- a/bzrlib/plugin.py 2008-03-17 13:10:32 +0000
+++ b/bzrlib/plugin.py 2008-03-26 09:06:34 +0000
@@ -407,13 +407,31 @@
else:
return None
+ def load_tests(self, standard_tests, loader):
+ """Return the adapted plugin's test suite.
+
+ :param standard_tests: The test suite as returned by the regular python
+ loadTestsFromModule.
+
+ :param loader: The custom loader that should be used to load additional
+ tests.
+
+ Note that TestUtil.TestLoader defines load_tests(self, standard_tests,
+ module, loader), but here we are handling the associated plugin module
+ ourselves.
+ """
+ if getattr(self.module, 'load_tests', None) is not None:
+ return self.module.load_tests(standard_tests, self.module, loader)
+ else:
+ return None
+
def version_info(self):
"""Return the plugin's version_tuple or None if unknown."""
version_info = getattr(self.module, 'version_info', None)
if version_info is not None and len(version_info) == 3:
version_info = tuple(version_info) + ('final', 0)
return version_info
-
+
def _get__version__(self):
version_info = self.version_info()
if version_info is None:
=== modified file 'bzrlib/tests/test_plugins.py'
--- a/bzrlib/tests/test_plugins.py 2008-03-17 13:10:32 +0000
+++ b/bzrlib/tests/test_plugins.py 2008-03-26 09:06:34 +0000
@@ -282,6 +282,20 @@
plugin = bzrlib.plugin.plugins()['plugin']
self.assertEqual('foo', plugin.test_suite())
+ def test_no_load_tests_gives_None_for_load_tests(self):
+ self.setup_plugin()
+ plugin = bzrlib.plugin.plugins()['plugin']
+ self.assertEqual(None, plugin.load_tests('bar', 'bzr'))
+
+ def test_load_tests_gives_load_tests_result(self):
+ source = """
+def load_tests(standard_tests, module, loader):
+ return 'foo'"""
+ self.setup_plugin(source)
+ plugin = bzrlib.plugin.plugins()['plugin']
+ # Note that
+ self.assertEqual('foo', plugin.load_tests('bar', 'bzr'))
+
def test_no_version_info(self):
self.setup_plugin()
plugin = bzrlib.plugin.plugins()['plugin']
More information about the bazaar-commits
mailing list