~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/__init__.py

  • Committer: Martin Pool
  • Date: 2005-08-25 07:46:11 UTC
  • Revision ID: mbp@sourcefrog.net-20050825074611-98130ea6d05d9d2a
- add functions to enable and disable default logging, so that we can
  turn it off while running the tests

- default logging gets turned on from the bzr main function so that
  other applications using the library can make their own decisions

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
 
from testsweet import TestBase, run_suite, InTempDir
19
 
 
20
 
 
21
 
def selftest():
 
18
from testsweet import TestCase, run_suite, InTempDir
 
19
import bzrlib.commands
 
20
import bzrlib.fetch
 
21
 
 
22
MODULES_TO_TEST = []
 
23
MODULES_TO_DOCTEST = []
 
24
 
 
25
 
 
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)
 
31
        
 
32
 
 
33
def selftest(verbose=False):
22
34
    from unittest import TestLoader, TestSuite
23
 
    import bzrlib, bzrlib.store, bzrlib.inventory, bzrlib.branch, bzrlib.osutils, bzrlib.commands
24
 
 
25
 
    import bzrlib.selftest.whitebox
26
 
    import bzrlib.selftest.blackbox
27
 
    import bzrlib.selftest.versioning
28
 
    import bzrlib.selftest.testmerge3
29
 
    import bzrlib.selftest.testhashcache
30
 
    import bzrlib.merge_core
 
35
    import bzrlib, bzrlib.store, bzrlib.inventory, bzrlib.branch
 
36
    import bzrlib.osutils, bzrlib.commands, bzrlib.merge3, bzrlib.plugin
31
37
    from doctest import DocTestSuite
32
38
    import os
33
39
    import shutil
34
40
    import time
35
41
    import sys
36
 
 
37
 
    TestBase.BZRPATH = os.path.join(os.path.realpath(os.path.dirname(bzrlib.__path__[0])), 'bzr')
38
 
    print '%-30s %s' % ('bzr binary', TestBase.BZRPATH)
 
42
    import unittest
 
43
 
 
44
    global MODULES_TO_TEST, MODULES_TO_DOCTEST
 
45
 
 
46
    testmod_names = \
 
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',
 
58
                   'bzrlib.merge_core',
 
59
                   'bzrlib.selftest.testdiff',
 
60
                   'bzrlib.fetch'
 
61
                   ]
 
62
 
 
63
    for m in (bzrlib.store, bzrlib.inventory, bzrlib.branch,
 
64
              bzrlib.osutils, bzrlib.commands, bzrlib.merge3):
 
65
        if m not in MODULES_TO_DOCTEST:
 
66
            MODULES_TO_DOCTEST.append(m)
 
67
 
 
68
    TestCase.BZRPATH = os.path.join(os.path.realpath(os.path.dirname(bzrlib.__path__[0])), 'bzr')
 
69
    print '%-30s %s' % ('bzr binary', TestCase.BZRPATH)
39
70
 
40
71
    print
41
72
 
42
73
    suite = TestSuite()
43
74
 
44
 
    # should also test bzrlib.merge_core, but they seem to be out of date with
45
 
    # the code.
46
 
 
47
 
 
48
 
    # python2.3's TestLoader() doesn't seem to work well; don't know why
49
 
 
50
 
    for m in (bzrlib.store,
51
 
              bzrlib.inventory,
52
 
              bzrlib.branch,
53
 
              bzrlib.osutils, 
54
 
              bzrlib.commands, 
55
 
              bzrlib.merge3):
 
75
    suite.addTest(TestLoader().loadTestsFromNames(testmod_names))
 
76
 
 
77
    for m in MODULES_TO_TEST:
 
78
         suite.addTest(TestLoader().loadTestsFromModule(m))
 
79
 
 
80
    for m in (MODULES_TO_DOCTEST):
56
81
        suite.addTest(DocTestSuite(m))
57
82
 
58
 
    for cl in (bzrlib.selftest.whitebox.TEST_CLASSES 
59
 
               + bzrlib.selftest.versioning.TEST_CLASSES
60
 
               + bzrlib.selftest.testmerge3.TEST_CLASSES
61
 
               + bzrlib.selftest.testhashcache.TEST_CLASSES
62
 
               + bzrlib.selftest.blackbox.TEST_CLASSES):
63
 
        suite.addTest(cl())
64
 
 
65
 
    return run_suite(suite, 'testbzr')
 
83
    for p in bzrlib.plugin.all_plugins:
 
84
        if hasattr(p, 'test_suite'):
 
85
            suite.addTest(p.test_suite())
 
86
 
 
87
    import bzrlib.merge_core
 
88
    suite.addTest(unittest.makeSuite(bzrlib.merge_core.MergeTest, 'test_'))
 
89
 
 
90
    return run_suite(suite, 'testbzr', verbose=verbose)
66
91
 
67
92
 
68
93