/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to tests/__init__.py

  • Committer: Curtis Hovey
  • Date: 2012-02-28 17:45:56 UTC
  • mto: This revision was merged to the branch mainline in revision 780.
  • Revision ID: sinzui.is@verizon.net-20120228174556-pf274fas9qcggrqj
Support selftest, check, and check -m

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
import os
24
24
 
25
25
 
26
 
def discover_test_names(module_or_name):
27
 
    if isinstance(module_or_name, basestring):
28
 
        match = module_or_name
29
 
    else:
30
 
        match = ''
 
26
def discover_test_names(match=''):
31
27
    file_names = os.listdir(os.path.dirname(__file__))
32
28
    test_names = set()
33
29
    for file_name in file_names:
34
30
        name, ext = os.path.splitext(file_name)
35
 
        if name.startswith('test_') and ext == '.py' and match in name:
 
31
        if name.startswith('test_') and match in name:
36
32
            test_names.add("%s.%s" % (__name__, name))
37
33
    return test_names
38
34
 
39
35
 
40
36
def load_tests(basic_tests, module, loader):
41
 
    test_names = discover_test_names(module)
 
37
    if isinstance(module, basestring):
 
38
        test_names = discover_test_names(match=module)
 
39
    else:
 
40
        test_names = discover_test_names()
42
41
    basic_tests.addTest(loader.loadTestsFromModuleNames(test_names))
43
42
    return basic_tests
44
43
 
46
45
class MockMethod(object):
47
46
 
48
47
    @classmethod
49
 
    def bind(klass, test_instance, obj, method_name,
50
 
             return_value=None, raise_error=None, raise_on=1):
 
48
    def bind(klass, test_instance, obj, method_name, return_value=None):
51
49
        original_method = getattr(obj, method_name)
52
50
        test_instance.addCleanup(setattr, obj, method_name, original_method)
53
 
        setattr(obj, method_name, klass(return_value, raise_error, raise_on))
 
51
        setattr(obj, method_name, klass(return_value))
54
52
 
55
 
    def __init__(self, return_value=None, raise_error=None, raise_on=1):
 
53
    def __init__(self, return_value=None):
56
54
        self.called = False
57
55
        self.call_count = 0
58
56
        self.args = None
59
57
        self.kwargs = None
60
58
        self.return_value = return_value
61
 
        self.raise_error = raise_error
62
 
        self.raise_on = raise_on
63
59
 
64
60
    def __call__(self, *args, **kwargs):
65
61
        self.called = True
66
62
        self.call_count += 1
67
63
        self.args = args
68
64
        self.kwargs = kwargs
69
 
        if self.raise_error is not None and self.call_count == self.raise_on:
70
 
            raise self.raise_error
71
65
        return self.return_value
72
66
 
73
67