def getStateFor(self, jellier): tm = self.original m = tm.method d = adict(name = qual(m).split('.')[-1], klass = qual(m.im_class), fullName = qual(m), setUp = qual(m.im_class.setUp), tearDown = qual(m.im_class.tearDown)) for eqattr in ['module', 'timeout', 'runs', 'startTime', 'endTime', 'skip', 'todo', 'hasTbs', 'status', 'failures', 'errors', 'results']: d[eqattr] = getattr(tm, eqattr, None) if eqattr in ['failures', 'errors', 'results']: d[eqattr] = [f.cleanFailure() for f in d.get(eqattr, [])] return d
SEPARATOR = '-' * 79 DOUBLE_SEPARATOR = '=' * 79 _basefmt = "caught exception in %s, your TestCase is broken\n\n" SET_UP_CLASS_WARN = _basefmt % 'setUpClass' SET_UP_WARN = _basefmt % 'setUp' TEAR_DOWN_WARN = _basefmt % 'tearDown' TEAR_DOWN_CLASS_WARN = _basefmt % 'tearDownClass' DIRTY_REACTOR_POLICY_WARN = "This failure will cause all methods in your class to be reported as ERRORs in the summary" UNCLEAN_REACTOR_WARN = "REACTOR UNCLEAN! traceback(s) follow: " PASSED, FAILED = "PASSED", "FAILED" methNameWarnMsg = adict(setUpClass = SET_UP_CLASS_WARN, setUp = SET_UP_WARN, tearDown = TEAR_DOWN_WARN, tearDownClass = TEAR_DOWN_CLASS_WARN) # ---------------------------------------------------------------------------- def makeLoggingMethod(name, f): def loggingMethod(*a, **kw): print "%s.%s(*%r, **%r)" % (name, f.func_name, a, kw) return f(*a, **kw) return loggingMethod class MethodCallLoggingType(type): def __new__(cls, name, bases, attrs): for (k, v) in attrs.items(): if isinstance(v, types.FunctionType): attrs[k] = makeLoggingMethod(name, v)