~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/__init__.py

  • Committer: Martin Pool
  • Date: 2005-05-10 08:15:58 UTC
  • Revision ID: mbp@sourcefrog.net-20050510081558-9a38e2c46ba4ebc4
- Patch from Fredrik Lundh to check Python version and 
  try to find a better one if it's too old.

  Patched to try to prevent infinite loops in wierd configurations,
  and to log to stderr.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005 by Canonical Ltd
2
 
 
3
 
# This program is free software; you can redistribute it and/or modify
4
 
# it under the terms of the GNU General Public License as published by
5
 
# the Free Software Foundation; either version 2 of the License, or
6
 
# (at your option) any later version.
7
 
 
8
 
# This program is distributed in the hope that it will be useful,
9
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
 
# GNU General Public License for more details.
12
 
 
13
 
# You should have received a copy of the GNU General Public License
14
 
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
 
 
17
 
 
18
 
from testsweet import TestBase, run_suite, InTempDir
19
 
 
20
 
MODULES_TO_TEST = []
21
 
MODULES_TO_DOCTEST = []
22
 
 
23
 
def selftest():
24
 
    from unittest import TestLoader, TestSuite
25
 
    import bzrlib, bzrlib.store, bzrlib.inventory, bzrlib.branch
26
 
    import bzrlib.osutils, bzrlib.commands, bzrlib.merge3, bzrlib.plugin
27
 
    global MODULES_TO_TEST, MODULES_TO_DOCTEST
28
 
 
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.merge_core
38
 
    from doctest import DocTestSuite
39
 
    import os
40
 
    import shutil
41
 
    import time
42
 
    import sys
43
 
    import unittest
44
 
 
45
 
    for m in (bzrlib.store, bzrlib.inventory, bzrlib.branch,
46
 
              bzrlib.osutils, bzrlib.commands, bzrlib.merge3):
47
 
        if m not in MODULES_TO_DOCTEST:
48
 
            MODULES_TO_DOCTEST.append(m)
49
 
            
50
 
    for m in (bzrlib.selftest.whitebox,
51
 
              bzrlib.selftest.versioning,
52
 
              bzrlib.selftest.testmerge3,
53
 
              bzrlib.selftest.testhashcache,
54
 
              bzrlib.selftest.teststatus,
55
 
              bzrlib.selftest.blackbox,
56
 
              bzrlib.selftest.testhashcache,
57
 
              bzrlib.selftest.testrevisionnamespaces,
58
 
              bzrlib.selftest.testbranch,
59
 
              ):
60
 
        if m not in MODULES_TO_TEST:
61
 
            MODULES_TO_TEST.append(m)
62
 
 
63
 
 
64
 
    TestBase.BZRPATH = os.path.join(os.path.realpath(os.path.dirname(bzrlib.__path__[0])), 'bzr')
65
 
    print '%-30s %s' % ('bzr binary', TestBase.BZRPATH)
66
 
 
67
 
    print
68
 
 
69
 
    suite = TestSuite()
70
 
 
71
 
    # should also test bzrlib.merge_core, but they seem to be out of date with
72
 
    # the code.
73
 
 
74
 
 
75
 
    # XXX: python2.3's TestLoader() doesn't seem to find all the
76
 
    # tests; don't know why
77
 
    for m in MODULES_TO_TEST:
78
 
         suite.addTest(TestLoader().loadTestsFromModule(m))
79
 
 
80
 
    for m in (MODULES_TO_DOCTEST):
81
 
        suite.addTest(DocTestSuite(m))
82
 
 
83
 
    for p in bzrlib.plugin.all_plugins:
84
 
        if hasattr(p, 'test_suite'):
85
 
            suite.addTest(p.test_suite())
86
 
 
87
 
    suite.addTest(unittest.makeSuite(bzrlib.merge_core.MergeTest, 'test_'))
88
 
 
89
 
    return run_suite(suite, 'testbzr')
90
 
 
91
 
 
92