~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/TestUtil.py

  • Committer: Vincent Ladeuil
  • Date: 2010-06-17 16:54:26 UTC
  • mto: This revision was merged to the branch mainline in revision 5306.
  • Revision ID: v.ladeuil+lp@free.fr-20100617165426-741tbmgwi62a9zub
Pass BZR_PLUGINS_AT and BZR_DISABLE_PLINGS to the subprocess fpr test_import_tariff

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
import logging
21
21
import unittest
22
22
 
23
 
from bzrlib import pyutils
24
 
 
25
23
# Mark this python module as being part of the implementation
26
24
# of unittest: this gives us better tracebacks where the last
27
25
# shown frame is the test code, not our assertXYZ.
108
106
 
109
107
    def loadTestsFromModuleName(self, name):
110
108
        result = self.suiteClass()
111
 
        module = pyutils.get_named_object(name)
 
109
        module = _load_module_by_name(name)
112
110
 
113
111
        result.addTests(self.loadTestsFromModule(module))
114
112
        return result
137
135
        >>>         result.addTests([test, test])
138
136
        >>>     return result
139
137
        """
140
 
        if sys.version_info < (2, 7):
141
 
            basic_tests = super(TestLoader, self).loadTestsFromModule(module)
142
 
        else:
143
 
            # GZ 2010-07-19: Python 2.7 unittest also uses load_tests but with
144
 
            #                a different and incompatible signature
145
 
            basic_tests = super(TestLoader, self).loadTestsFromModule(module,
146
 
                use_load_tests=False)
 
138
        basic_tests = super(TestLoader, self).loadTestsFromModule(module)
147
139
        load_tests = getattr(module, "load_tests", None)
148
140
        if load_tests is not None:
149
141
            return load_tests(basic_tests, module, self)
181
173
            return self.suiteClass()
182
174
 
183
175
 
 
176
def _load_module_by_name(mod_name):
 
177
    parts = mod_name.split('.')
 
178
    module = __import__(mod_name)
 
179
    del parts[0]
 
180
    # for historical reasons python returns the top-level module even though
 
181
    # it loads the submodule; we need to walk down to get the one we want.
 
182
    while parts:
 
183
        module = getattr(module, parts.pop(0))
 
184
    return module
 
185
 
 
186
 
184
187
class TestVisitor(object):
185
188
    """A visitor for Tests"""
186
189
    def visitSuite(self, aTestSuite):