/breezy/unstable

To get this branch, use:
bzr branch https://code.breezy-vcs.org/breezy/unstable

« back to all changes in this revision

Viewing changes to breezy/tests/TestUtil.py

  • Committer: Jelmer Vernooij
  • Date: 2017-05-24 01:39:33 UTC
  • mfrom: (3815.3776.6)
  • Revision ID: jelmer@jelmer.uk-20170524013933-ir4y4tqtrsiz2ka2
New upstream snapshot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import unittest
22
22
import weakref
23
23
 
24
 
from bzrlib import pyutils
 
24
from .. import pyutils
25
25
 
26
26
# Mark this python module as being part of the implementation
27
27
# of unittest: this gives us better tracebacks where the last
63
63
                visitor.visitSuite(test)
64
64
                visitTests(test, visitor)
65
65
            else:
66
 
                print "unvisitable non-unittest.TestCase element %r (%r)" % (
67
 
                    test, test.__class__)
 
66
                print("unvisitable non-unittest.TestCase element %r (%r)" % (
 
67
                    test, test.__class__))
68
68
 
69
69
 
70
70
class FailedCollectionCase(unittest.TestCase):
103
103
        self._tests = []
104
104
        stored_count = 0
105
105
        count_stored_tests = getattr(result, "_count_stored_tests", int)
106
 
        from bzrlib.tests import selftest_debug_flags
 
106
        from breezy.tests import selftest_debug_flags
107
107
        notify = "uncollected_cases" in selftest_debug_flags
108
108
        while tests:
109
109
            if result.shouldStop:
155
155
        result.addTests(self.loadTestsFromModule(module))
156
156
        return result
157
157
 
158
 
    def loadTestsFromModule(self, module):
159
 
        """Load tests from a module object.
160
 
 
161
 
        This extension of the python test loader looks for an attribute
162
 
        load_tests in the module object, and if not found falls back to the
163
 
        regular python loadTestsFromModule.
164
 
 
165
 
        If a load_tests attribute is found, it is called and the result is
166
 
        returned.
167
 
 
168
 
        load_tests should be defined like so:
169
 
        >>> def load_tests(standard_tests, module, loader):
170
 
        >>>    pass
171
 
 
172
 
        standard_tests is the tests found by the stock TestLoader in the
173
 
        module, module and loader are the module and loader instances.
174
 
 
175
 
        For instance, to run every test twice, you might do:
176
 
        >>> def load_tests(standard_tests, module, loader):
177
 
        >>>     result = loader.suiteClass()
178
 
        >>>     for test in iter_suite_tests(standard_tests):
179
 
        >>>         result.addTests([test, test])
180
 
        >>>     return result
181
 
        """
182
 
        if sys.version_info < (2, 7):
183
 
            basic_tests = super(TestLoader, self).loadTestsFromModule(module)
184
 
        else:
185
 
            # GZ 2010-07-19: Python 2.7 unittest also uses load_tests but with
186
 
            #                a different and incompatible signature
187
 
            basic_tests = super(TestLoader, self).loadTestsFromModule(module,
188
 
                use_load_tests=False)
189
 
        load_tests = getattr(module, "load_tests", None)
190
 
        if load_tests is not None:
191
 
            return load_tests(basic_tests, module, self)
192
 
        else:
193
 
            return basic_tests
194
 
 
195
158
    def getTestCaseNames(self, test_case_class):
196
159
        test_fn_names = self.test_func_names.get(test_case_class, None)
197
160
        if test_fn_names is not None: