18
18
from testsweet import TestBase, run_suite, InTempDir
19
import bzrlib.commands
22
20
MODULES_TO_TEST = []
23
21
MODULES_TO_DOCTEST = []
26
class BzrTestBase(InTempDir):
27
"""bzr-specific test base class"""
28
def run_bzr(self, *args, **kwargs):
29
retcode = kwargs.get('retcode', 0)
30
self.assertEquals(bzrlib.commands.run_bzr(args), retcode)
33
23
def selftest(verbose=False):
34
24
from unittest import TestLoader, TestSuite
35
25
import bzrlib, bzrlib.store, bzrlib.inventory, bzrlib.branch
36
26
import bzrlib.osutils, bzrlib.commands, bzrlib.merge3, bzrlib.plugin
27
global MODULES_TO_TEST, MODULES_TO_DOCTEST
29
import bzrlib.selftest.whitebox
30
import bzrlib.selftest.blackbox
31
import bzrlib.selftest.versioning
32
import bzrlib.selftest.testmerge3
33
import bzrlib.selftest.testhashcache
34
import bzrlib.selftest.testrevisionnamespaces
35
import bzrlib.selftest.testbranch
36
import bzrlib.selftest.teststatus
37
import bzrlib.selftest.testinv
38
import bzrlib.merge_core
37
39
from doctest import DocTestSuite
44
global MODULES_TO_TEST, MODULES_TO_DOCTEST
47
['bzrlib.selftest.whitebox',
48
'bzrlib.selftest.versioning',
49
'bzrlib.selftest.testinv',
50
'bzrlib.selftest.testmerge3',
51
'bzrlib.selftest.testhashcache',
52
'bzrlib.selftest.teststatus',
53
'bzrlib.selftest.testlog',
54
'bzrlib.selftest.blackbox',
55
'bzrlib.selftest.testrevisionnamespaces',
56
'bzrlib.selftest.testbranch',
57
'bzrlib.selftest.testrevision',
59
'bzrlib.selftest.testdiff',
62
testmod_names = ['bzrlib.fetch']
64
# XXX: should also test bzrlib.merge_core, but they seem to be out
65
# of date with the code.
67
46
for m in (bzrlib.store, bzrlib.inventory, bzrlib.branch,
68
47
bzrlib.osutils, bzrlib.commands, bzrlib.merge3):
69
48
if m not in MODULES_TO_DOCTEST:
70
49
MODULES_TO_DOCTEST.append(m)
52
for m in (bzrlib.selftest.whitebox,
53
bzrlib.selftest.versioning,
54
bzrlib.selftest.testinv,
55
bzrlib.selftest.testmerge3,
56
bzrlib.selftest.testhashcache,
57
bzrlib.selftest.teststatus,
58
bzrlib.selftest.blackbox,
59
bzrlib.selftest.testhashcache,
60
bzrlib.selftest.testrevisionnamespaces,
61
bzrlib.selftest.testbranch,
63
if m not in MODULES_TO_TEST:
64
MODULES_TO_TEST.append(m)
73
67
TestBase.BZRPATH = os.path.join(os.path.realpath(os.path.dirname(bzrlib.__path__[0])), 'bzr')
74
68
print '%-30s %s' % ('bzr binary', TestBase.BZRPATH)
78
72
suite = TestSuite()
80
suite.addTest(TestLoader().loadTestsFromNames(testmod_names))
74
# should also test bzrlib.merge_core, but they seem to be out of date with
78
# XXX: python2.3's TestLoader() doesn't seem to find all the
79
# tests; don't know why
82
80
for m in MODULES_TO_TEST:
83
81
suite.addTest(TestLoader().loadTestsFromModule(m))
89
87
if hasattr(p, 'test_suite'):
90
88
suite.addTest(p.test_suite())
92
import bzrlib.merge_core
93
90
suite.addTest(unittest.makeSuite(bzrlib.merge_core.MergeTest, 'test_'))
95
92
return run_suite(suite, 'testbzr', verbose=verbose)