diff options
Diffstat (limited to 'test.py')
-rw-r--r-- | test.py | 47 |
1 files changed, 29 insertions, 18 deletions
@@ -9,32 +9,43 @@ that module. """ from libbe import plugin +import unittest import doctest import sys + +suite = unittest.TestSuite() + if len(sys.argv) > 1: + submodname = sys.argv[1] match = False - libbe_failures = libbe_tries = becommands_failures = becommands_tries = 0 - mod = plugin.get_plugin("libbe", sys.argv[1]) - if mod is not None: - libbe_failures, libbe_tries = doctest.testmod(mod) + mod = plugin.get_plugin("libbe", submodname) + if mod is not None and hasattr(mod, "suite"): + suite.addTest(mod.suite) match = True - mod = plugin.get_plugin("becommands", sys.argv[1]) + mod = plugin.get_plugin("becommands", submodname) if mod is not None: - becommands_failures, becommands_tries = doctest.testmod(mod) + suite.addTest(doctest.DocTestSuite(mod)) match = True if not match: - print "No modules match \"%s\"" % sys.argv[1] + print "No modules match \"%s\"" % submodname sys.exit(1) - else: - sys.exit(libbe_failures or becommands_failures) else: failed = False - for module in plugin.iter_plugins("libbe"): - failures, tries = doctest.testmod(module[1]) - if failures: - failed = True - for module in plugin.iter_plugins("becommands"): - failures, tries = doctest.testmod(module[1]) - if failures: - failed = True - sys.exit(failed) + for modname,module in plugin.iter_plugins("libbe"): + if not hasattr(module, "suite"): + continue + suite.addTest(module.suite) + for modname,module in plugin.iter_plugins("becommands"): + suite.addTest(doctest.DocTestSuite(module)) + +#for s in suite._tests: +# print s +#exit(0) +result = unittest.TextTestRunner(verbosity=2).run(suite) + +numErrors = len(result.errors) +numFailures = len(result.failures) +numBad = numErrors + numFailures +if numBad > 126: + numBad = 1 +sys.exit(numBad) |