Syntax highlighting for tracebacks during tests

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from pygments import highlight
from pygments.lexers import PythonTracebackLexer
from pygments.formatters import TerminalFormatter

from django.utils.unittest import TextTestRunner, TextTestResult

from discover_runner import DiscoverRunner


class HighlightedTextTestResult(TextTestResult):

    def _exc_info_to_string(self, err, test):
        code = super(HighlightedTextTestResult, self)._exc_info_to_string(err, test)
        return highlight(code, PythonTracebackLexer(), TerminalFormatter())


class HighlightedTextTestRunner(TextTestRunner):
    resultclass = HighlightedTextTestResult


class HighlightedDiscoverRunner(DiscoverRunner):

    def run_suite(self, suite, **kwargs):
        return HighlightedTextTestRunner(
            verbosity=self.verbosity, failfast=self.failfast).run(suite)

More like this

  1. Class-based coverage test runner by brutasse 2 years, 11 months ago
  2. Custom nose runner by tomas 3 years, 11 months ago
  3. Unit Test Profiling for Django 1.3/1.4 by hoffmaje 1 year ago
  4. DebugFooter middleware with Pygments sql syntax highlighting by monolar 4 years, 11 months ago
  5. Test Suite URL Coverage by jterrace 1 year, 2 months ago

Comments

vdboor (on August 20, 2012):

This would be really useful to have in the standard Django testrunner! :-)

#

(Forgotten your password?)