def terminal_size(): size = utils.get_terminal_size() assert type(size) is tuple assert len(size) == 2 assert type(size[0]) is int assert type(size[1]) is int with disable_imports('fcntl', 'termios'): size = utils.get_terminal_size() assert size == (80, 24) size = utils.get_terminal_size((1, 2)) assert size == (1, 2)
def terminal_size(): size = utils.get_terminal_size() assert type(size) is tuple assert len(size) == 2 assert type(size[0]) is int assert type(size[1]) is int with disable_imports("fcntl", "termios"): size = utils.get_terminal_size() assert size == (80, 24) size = utils.get_terminal_size((1, 2)) assert size == (1, 2)
def plain_reporter(): """PlainReporter""" with attest.capture_output() as (out, err): with Assert.raises(SystemExit): _meta.suite.run(attest.PlainReporter) width, _ = utils.get_terminal_size() for line, expected in zip(out[:7] + out[-3:], [ '.F', '', 'attest.tests._meta.failing', '-' * width, '-> stdout', 'E: stderr', 'Traceback (most recent call last):', '%s' % EXCEPTION, '', 'Failures: 1/2 (1 assertions)', ]): assert line == expected
def finished(self): print print width, _ = utils.get_terminal_size() for result in self.failures: print result.test_name if result.test.__doc__: print inspect.getdoc(result.test) print '-' * width if result.stdout: print '->', '\n'.join(result.stdout) if result.stderr: print 'E:', '\n'.join(result.stderr) print result.traceback print result.debug() print 'Failures: %s/%s (%s assertions)' % (len( self.failures), self.total, statistics.assertions) if self.failures: raise SystemExit(1)
def finished(self): print print width, _ = utils.get_terminal_size() for result in self.failures: print result.test_name if result.test.__doc__: print inspect.getdoc(result.test) print '-' * width if result.stdout: print '->', '\n'.join(result.stdout) if result.stderr: print 'E:', '\n'.join(result.stderr) print result.traceback print result.debug() print 'Failures: %s/%s (%s assertions)' % (len(self.failures), self.total, statistics.assertions) if self.failures: raise SystemExit(1)
def finished(self): from pygments.lexers import (PythonTracebackLexer, PythonLexer, DiffLexer) if ANSI_COLORS_SUPPORT: from pygments.console import colorize from pygments import highlight if self.style in ('light', 'dark'): from pygments.formatters import TerminalFormatter formatter = TerminalFormatter(bg=self.style) if self.colorscheme is not None: from pygments.token import string_to_tokentype for token, value in self.colorscheme.iteritems(): token = string_to_tokentype(token.capitalize()) formatter.colorscheme[token] = (value, value) else: from pygments.formatters import Terminal256Formatter formatter = Terminal256Formatter(style=self.style) else: # ANSI color codes seem not to be supported, make colorize() # and highlight() no-ops. formatter = None def colorize(_format, text): return text def highlight(text, _lexer, _formatter): return text if self.counter: self.progress.finish() print width, _ = utils.get_terminal_size() def show(result): print colorize('bold', result.test_name) if result.test.__doc__: print inspect.getdoc(result.test) print colorize('faint', '─' * width) for line in result.stdout: print colorize('bold', '→'), print line for line in result.stderr: print colorize('red', '→'), print line if self.verbose: for result in self.passes: if result.stdout or result.stderr: show(result) print for result in self.failures: show(result) # result.traceback seems to be in UTF-8 on my system (eg. for # literal unicode strings) but I guess this depends on the source # file encoding. Tell Pygments to guess: try UTF-8 and then latin1. # Without an `encoding` argument, Pygments just uses latin1. print highlight(result.traceback, PythonTracebackLexer(encoding='guess'), formatter) assertion = result.assertion if assertion is not None: print highlight(assertion, PythonLexer(encoding='guess'), formatter) equality_diff = result.equality_diff if equality_diff is not None: print highlight(equality_diff, DiffLexer(encoding='guess'), formatter) result.debug() if self.failures: failed = colorize('red', str(len(self.failures))) else: failed = len(self.failures) print 'Failures: %s/%s (%s assertions, %.3f seconds)' % ( failed, self.counter, statistics.assertions, self.total_time) if self.failures: raise SystemExit(1)