~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/__init__.py

  • Committer: Martin Pool
  • Date: 2005-07-29 12:29:27 UTC
  • Revision ID: mbp@sourcefrog.net-20050729122927-d51c2cedc14dd5d5
doc

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
 
18
 
def selftest():
 
18
from testsweet import TestBase, run_suite, InTempDir
 
19
import bzrlib.commands
 
20
 
 
21
MODULES_TO_TEST = []
 
22
MODULES_TO_DOCTEST = []
 
23
 
 
24
 
 
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)
 
30
        
 
31
 
 
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
 
37
    import os
 
38
    import shutil
 
39
    import time
 
40
    import sys
19
41
    import unittest
20
 
    from unittest import TestLoader
21
 
    import bzrlib
22
 
    from doctest import DocTestSuite
23
 
    
24
 
    tr = unittest.TextTestRunner(verbosity=2)
25
 
    suite = unittest.TestSuite()
26
 
    import bzrlib.whitebox
27
 
 
28
 
    suite.addTest(TestLoader().loadTestsFromModule(bzrlib.whitebox))
29
 
    
30
 
    for m in bzrlib.store, bzrlib.inventory, bzrlib.branch, bzrlib.osutils, \
31
 
            bzrlib.commands:
 
42
 
 
43
    global MODULES_TO_TEST, MODULES_TO_DOCTEST
 
44
 
 
45
    testmod_names = \
 
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',
 
56
                   ]
 
57
 
 
58
    # XXX: should also test bzrlib.merge_core, but they seem to be out
 
59
    # of date with the code.
 
60
 
 
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)
 
65
 
 
66
    
 
67
    TestBase.BZRPATH = os.path.join(os.path.realpath(os.path.dirname(bzrlib.__path__[0])), 'bzr')
 
68
    print '%-30s %s' % ('bzr binary', TestBase.BZRPATH)
 
69
 
 
70
    print
 
71
 
 
72
    suite = TestSuite()
 
73
 
 
74
    suite.addTest(TestLoader().loadTestsFromNames(testmod_names))
 
75
 
 
76
    for m in MODULES_TO_TEST:
 
77
         suite.addTest(TestLoader().loadTestsFromModule(m))
 
78
 
 
79
    for m in (MODULES_TO_DOCTEST):
32
80
        suite.addTest(DocTestSuite(m))
33
81
 
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())
 
85
 
 
86
    import bzrlib.merge_core
 
87
    suite.addTest(unittest.makeSuite(bzrlib.merge_core.MergeTest, 'test_'))
 
88
 
 
89
    return run_suite(suite, 'testbzr', verbose=verbose)
 
90
 
 
91
 
 
92