14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
from unittest import TestLoader, TestSuite
18
from bzrlib.tests import TestUtil
25
loader = TestUtil.TestLoader()
35
testmod_names.append("test_tortoise_bzr")
37
result.addTest(loader.loadTestsFromModuleNames(["%s.%s" % (__name__, i) for i in testmod_names]))
26
def discover_test_names(match=''):
27
file_names = os.listdir(os.path.dirname(__file__))
29
for file_name in file_names:
30
name, ext = os.path.splitext(file_name)
31
if name.startswith('test_') and match in name:
32
test_names.add("%s.%s" % (__name__, name))
36
def load_tests(basic_tests, module, loader):
37
if isinstance(module, basestring):
38
test_names = discover_test_names(match=module)
40
test_names = discover_test_names()
41
basic_tests.addTest(loader.loadTestsFromModuleNames(test_names))
45
class MockMethod(object):
48
def bind(klass, test_instance, obj, method_name, return_value=None):
49
original_method = getattr(obj, method_name)
50
test_instance.addCleanup(setattr, obj, method_name, original_method)
51
setattr(obj, method_name, klass(return_value))
53
def __init__(self, return_value=None):
58
self.return_value = return_value
60
def __call__(self, *args, **kwargs):
65
return self.return_value
68
class MockProperty(MockMethod):
71
def bind(klass, test_instance, obj, method_name, return_value=None):
72
original_method = getattr(obj, method_name)
73
test_instance.addCleanup(setattr, obj, method_name, original_method)
74
mock = klass(return_value)
75
setattr(obj, method_name, property(mock.get_value, mock.set_value))
78
def get_value(self, other):
80
return self.return_value
82
def set_value(self, other, value):
84
self.return_value = value