cms.test_utils.runners: 34 total statements, 0.0% covered

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

  1. from django.conf import settings
  2. from django.test.simple import DjangoTestSuiteRunner
  3. from django.utils.unittest.suite import TestSuite
  4. import operator
  5. import time
  6. TIMINGS = {}
  7. def time_it(func):
  8. def _inner(*args, **kwargs):
  9. start = time.time()
  10. func(*args, **kwargs)
  11. end = time.time()
  12. TIMINGS[unicode(func)] = end - start
  13. return _inner
  14. class TimingSuite(TestSuite):
  15. def addTest(self, test):
  16. test = time_it(test)
  17. super(TimingSuite, self).addTest(test)
  18. class JenkinsTestRunner(DjangoTestSuiteRunner):
  19. def run_suite(self, suite, **kwargs):
  20. from xmlrunner import XMLTestRunner
  21. return XMLTestRunner(output=settings.JUNIT_OUTPUT_DIR).run(suite)
  22. class NormalTestRunner(DjangoTestSuiteRunner):
  23. def build_suite(self, test_labels, extra_tests=None, **kwargs):
  24. suite = super(NormalTestRunner, self).build_suite(test_labels, extra_tests, **kwargs)
  25. if settings.TIME_TESTS:
  26. return TimingSuite(suite)
  27. else:
  28. return suite
  29. def teardown_test_environment(self, **kwargs):
  30. super(NormalTestRunner, self).teardown_test_environment(**kwargs)
  31. if settings.TIME_TESTS:
  32. by_time = sorted(
  33. TIMINGS.iteritems(),
  34. key=operator.itemgetter(1),
  35. reverse=True)[:10]
  36. print("Ten slowest tests:")
  37. for func_name, timing in by_time:
  38. print("{t:.2f}s {f}".format(f=func_name, t=timing))