15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
from testsweet import TestBase, run_suite, InTempDir
19
import bzrlib.commands
22
MODULES_TO_DOCTEST = []
25
class BzrTestBase(InTempDir):
26
"""bzr-specific test base class"""
27
def run_bzr(self, *args, **kwargs):
28
retcode = kwargs.get('retcode', 0)
29
self.assertEquals(bzrlib.commands.run_bzr(args), retcode)
32
def selftest(verbose=False):
33
from unittest import TestLoader, TestSuite
34
import bzrlib, bzrlib.store, bzrlib.inventory, bzrlib.branch
35
import bzrlib.osutils, bzrlib.commands, bzrlib.merge3, bzrlib.plugin
36
from doctest import DocTestSuite
20
from unittest import TestLoader
22
from doctest import DocTestSuite
24
tr = unittest.TextTestRunner(verbosity=2)
25
suite = unittest.TestSuite()
26
import bzrlib.whitebox
28
suite.addTest(TestLoader().loadTestsFromModule(bzrlib.whitebox))
30
for m in bzrlib.store, bzrlib.inventory, bzrlib.branch, bzrlib.osutils, \
43
global MODULES_TO_TEST, MODULES_TO_DOCTEST
46
['bzrlib.selftest.whitebox',
47
'bzrlib.selftest.versioning',
48
'bzrlib.selftest.testinv',
49
'bzrlib.selftest.testmerge3',
50
'bzrlib.selftest.testhashcache',
51
'bzrlib.selftest.teststatus',
52
'bzrlib.selftest.testlog',
53
'bzrlib.selftest.blackbox',
54
'bzrlib.selftest.testrevisionnamespaces',
55
'bzrlib.selftest.testbranch',
58
# XXX: should also test bzrlib.merge_core, but they seem to be out
59
# of date with the code.
61
for m in (bzrlib.store, bzrlib.inventory, bzrlib.branch,
62
bzrlib.osutils, bzrlib.commands, bzrlib.merge3):
63
if m not in MODULES_TO_DOCTEST:
64
MODULES_TO_DOCTEST.append(m)
67
TestBase.BZRPATH = os.path.join(os.path.realpath(os.path.dirname(bzrlib.__path__[0])), 'bzr')
68
print '%-30s %s' % ('bzr binary', TestBase.BZRPATH)
74
suite.addTest(TestLoader().loadTestsFromNames(testmod_names))
76
for m in MODULES_TO_TEST:
77
suite.addTest(TestLoader().loadTestsFromModule(m))
79
for m in (MODULES_TO_DOCTEST):
32
80
suite.addTest(DocTestSuite(m))
34
result = tr.run(suite)
35
return result.wasSuccessful()
82
for p in bzrlib.plugin.all_plugins:
83
if hasattr(p, 'test_suite'):
84
suite.addTest(p.test_suite())
86
import bzrlib.merge_core
87
suite.addTest(unittest.makeSuite(bzrlib.merge_core.MergeTest, 'test_'))
89
return run_suite(suite, 'testbzr', verbose=verbose)