608
by Martin Pool
- Split selftests out into a new module and start changing them |
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 |
||
609
by Martin Pool
- cleanup test code |
17 |
|
841
by Martin Pool
- Start splitting bzr-independent parts of the test framework into |
18 |
from testsweet import TestBase, run_suite, InTempDir |
978
by Martin Pool
- new BzrTestBase class allowing running bzr in-process |
19 |
import bzrlib.commands |
719
by Martin Pool
- reorganize selftest code |
20 |
|
855
by Martin Pool
- Patch from John to allow plugins to add their own tests. |
21 |
MODULES_TO_TEST = [] |
22 |
MODULES_TO_DOCTEST = [] |
|
720
by Martin Pool
- start moving external tests into the testsuite framework |
23 |
|
978
by Martin Pool
- new BzrTestBase class allowing running bzr in-process |
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 |
||
965
by Martin Pool
- selftest is less verbose by default, and takes a -v option if you want it |
32 |
def selftest(verbose=False): |
721
by Martin Pool
- framework for running external commands from unittest suite |
33 |
from unittest import TestLoader, TestSuite |
855
by Martin Pool
- Patch from John to allow plugins to add their own tests. |
34 |
import bzrlib, bzrlib.store, bzrlib.inventory, bzrlib.branch |
908
by Martin Pool
- merge john's plugins-have-test_suite.patch: |
35 |
import bzrlib.osutils, bzrlib.commands, bzrlib.merge3, bzrlib.plugin |
721
by Martin Pool
- framework for running external commands from unittest suite |
36 |
from doctest import DocTestSuite |
37 |
import os |
|
38 |
import shutil |
|
39 |
import time |
|
745
by Martin Pool
- redirect stdout/stderr while running tests |
40 |
import sys |
851
by Martin Pool
- run merge_core tests from bzr selftest |
41 |
import unittest |
721
by Martin Pool
- framework for running external commands from unittest suite |
42 |
|
983
by Martin Pool
- clean up code that loads modules to test, taking advantage of less broken |
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', |
|
989
by Martin Pool
- add trivial test for show_log function |
52 |
'bzrlib.selftest.testlog', |
983
by Martin Pool
- clean up code that loads modules to test, taking advantage of less broken |
53 |
'bzrlib.selftest.blackbox', |
54 |
'bzrlib.selftest.testrevisionnamespaces', |
|
55 |
'bzrlib.selftest.testbranch', |
|
1020
by Martin Pool
- merge aaron's revert and merge improvements |
56 |
'bzrlib.merge_core', |
57 |
'bzrlib.selftest.testdiff', |
|
983
by Martin Pool
- clean up code that loads modules to test, taking advantage of less broken |
58 |
]
|
59 |
||
60 |
# XXX: should also test bzrlib.merge_core, but they seem to be out
|
|
61 |
# of date with the code.
|
|
62 |
||
855
by Martin Pool
- Patch from John to allow plugins to add their own tests. |
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) |
|
983
by Martin Pool
- clean up code that loads modules to test, taking advantage of less broken |
67 |
|
969
by Martin Pool
- Add less-sucky is_within_any |
68 |
|
797
by Martin Pool
- run the right bzr for testing |
69 |
TestBase.BZRPATH = os.path.join(os.path.realpath(os.path.dirname(bzrlib.__path__[0])), 'bzr') |
70 |
print '%-30s %s' % ('bzr binary', TestBase.BZRPATH) |
|
71 |
||
744
by Martin Pool
- show nicer descriptions while running tests |
72 |
print
|
721
by Martin Pool
- framework for running external commands from unittest suite |
73 |
|
74 |
suite = TestSuite() |
|
75 |
||
983
by Martin Pool
- clean up code that loads modules to test, taking advantage of less broken |
76 |
suite.addTest(TestLoader().loadTestsFromNames(testmod_names)) |
77 |
||
855
by Martin Pool
- Patch from John to allow plugins to add their own tests. |
78 |
for m in MODULES_TO_TEST: |
79 |
suite.addTest(TestLoader().loadTestsFromModule(m)) |
|
843
by Martin Pool
- workaround for flaky TestLoader in python2.3 |
80 |
|
855
by Martin Pool
- Patch from John to allow plugins to add their own tests. |
81 |
for m in (MODULES_TO_DOCTEST): |
721
by Martin Pool
- framework for running external commands from unittest suite |
82 |
suite.addTest(DocTestSuite(m)) |
83 |
||
908
by Martin Pool
- merge john's plugins-have-test_suite.patch: |
84 |
for p in bzrlib.plugin.all_plugins: |
85 |
if hasattr(p, 'test_suite'): |
|
86 |
suite.addTest(p.test_suite()) |
|
87 |
||
983
by Martin Pool
- clean up code that loads modules to test, taking advantage of less broken |
88 |
import bzrlib.merge_core |
851
by Martin Pool
- run merge_core tests from bzr selftest |
89 |
suite.addTest(unittest.makeSuite(bzrlib.merge_core.MergeTest, 'test_')) |
90 |
||
965
by Martin Pool
- selftest is less verbose by default, and takes a -v option if you want it |
91 |
return run_suite(suite, 'testbzr', verbose=verbose) |
841
by Martin Pool
- Start splitting bzr-independent parts of the test framework into |
92 |
|
93 |
||
764
by Martin Pool
- log messages from a particular test are printed if that test fails |
94 |