+# TestCase auxiliary methods
+
+def runTestCase(cls, test_name, args=[]):
+ suite = TestSuite()
+ if args:
+ suite.addTest(cls('_'.join(['test'] + args)))
+ else:
+ suite.addTest(makeSuite(cls))
+ print('* Test * %s *' % test_name)
+ TextTestRunner(verbosity=2).run(suite)
+
+
+def _add_value(foo, value):
+ def wrap(self):
+ return foo(self, value)
+ return wrap
+
+
+def get_test_classes(module=__import__(__name__), name=''):
+ module_stack = [module]
+ while module_stack:
+ module = module_stack[-1]
+ module_stack = module_stack[:-1]
+ for objname, obj in getmembers(module):
+ if (objname == name or not name):
+ if isclass(obj) and objname != 'TestCase' and (
+ issubclass(obj, TestCase)):
+ yield (obj, objname)
+
+