Generated: Wed 2013-03-13 10:33 CET
Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/cms/test_utils/runners.py
Stats: 0 executed, 28 missed, 6 excluded, 17 ignored
from django.conf import settingsfrom django.test.simple import DjangoTestSuiteRunnerfrom django.utils.unittest.suite import TestSuiteimport operatorimport timeTIMINGS = {}def time_it(func): def _inner(*args, **kwargs): start = time.time() func(*args, **kwargs) end = time.time() TIMINGS[unicode(func)] = end - start return _innerclass TimingSuite(TestSuite): def addTest(self, test): test = time_it(test) super(TimingSuite, self).addTest(test)class JenkinsTestRunner(DjangoTestSuiteRunner): def run_suite(self, suite, **kwargs): from xmlrunner import XMLTestRunner return XMLTestRunner(output=settings.JUNIT_OUTPUT_DIR).run(suite)class NormalTestRunner(DjangoTestSuiteRunner): def build_suite(self, test_labels, extra_tests=None, **kwargs): suite = super(NormalTestRunner, self).build_suite(test_labels, extra_tests, **kwargs) if settings.TIME_TESTS: return TimingSuite(suite) else: return suite def teardown_test_environment(self, **kwargs): super(NormalTestRunner, self).teardown_test_environment(**kwargs) if settings.TIME_TESTS: by_time = sorted( TIMINGS.iteritems(), key=operator.itemgetter(1), reverse=True)[:10] print("Ten slowest tests:") for func_name, timing in by_time: print("{t:.2f}s {f}".format(f=func_name, t=timing))