diff options
author | Matth?us G. Chajdas <dev@anteru.net> | 2019-11-10 13:56:53 +0100 |
---|---|---|
committer | Matth?us G. Chajdas <dev@anteru.net> | 2019-11-10 13:56:53 +0100 |
commit | 1dd3124a9770e11b6684e5dd1e6bc15a0aa3bc67 (patch) | |
tree | 87a171383266dd1f64196589af081bc2f8e497c3 /tests/test_terminal_formatter.py | |
parent | f1c080e184dc1bbc36eaa7cd729ff3a499de568a (diff) | |
download | pygments-master.tar.gz |
Diffstat (limited to 'tests/test_terminal_formatter.py')
-rw-r--r-- | tests/test_terminal_formatter.py | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/tests/test_terminal_formatter.py b/tests/test_terminal_formatter.py deleted file mode 100644 index e5a13431..00000000 --- a/tests/test_terminal_formatter.py +++ /dev/null @@ -1,102 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Pygments terminal formatter tests - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" - -from __future__ import print_function - -import unittest -import re - -from pygments.util import StringIO -from pygments.lexers.sql import PlPgsqlLexer -from pygments.formatters import TerminalFormatter, Terminal256Formatter, \ - HtmlFormatter, LatexFormatter - -from pygments.style import Style -from pygments.token import Token -from pygments.lexers import Python3Lexer -from pygments import highlight - -DEMO_TEXT = '''\ --- comment -select -* from bar; -''' -DEMO_LEXER = PlPgsqlLexer -DEMO_TOKENS = list(DEMO_LEXER().get_tokens(DEMO_TEXT)) - -ANSI_RE = re.compile(r'\x1b[\w\W]*?m') - - -def strip_ansi(x): - return ANSI_RE.sub('', x) - - -class TerminalFormatterTest(unittest.TestCase): - def test_reasonable_output(self): - out = StringIO() - TerminalFormatter().format(DEMO_TOKENS, out) - plain = strip_ansi(out.getvalue()) - self.assertEqual(DEMO_TEXT.count('\n'), plain.count('\n')) - print(repr(plain)) - - for a, b in zip(DEMO_TEXT.splitlines(), plain.splitlines()): - self.assertEqual(a, b) - - def test_reasonable_output_lineno(self): - out = StringIO() - TerminalFormatter(linenos=True).format(DEMO_TOKENS, out) - plain = strip_ansi(out.getvalue()) - self.assertEqual(DEMO_TEXT.count('\n') + 1, plain.count('\n')) - print(repr(plain)) - - for a, b in zip(DEMO_TEXT.splitlines(), plain.splitlines()): - self.assertTrue(a in b) - - -class MyStyle(Style): - styles = { - Token.Comment: 'ansibrightblack', - Token.String: 'ansibrightblue bg:ansired', - Token.Number: 'ansibrightgreen bg:ansigreen', - Token.Number.Hex: 'ansigreen bg:ansibrightred', - } - - -class Terminal256FormatterTest(unittest.TestCase): - code = ''' -# this should be a comment -print("Hello World") -async def function(a,b,c, *d, **kwarg:Bool)->Bool: - pass - return 123, 0xb3e3 - -''' - - def test_style_html(self): - style = HtmlFormatter(style=MyStyle).get_style_defs() - self.assertTrue('#555555' in style, - "ansigray for comment not html css style") - - def test_others_work(self): - """check other formatters don't crash""" - highlight(self.code, Python3Lexer(), LatexFormatter(style=MyStyle)) - highlight(self.code, Python3Lexer(), HtmlFormatter(style=MyStyle)) - - def test_256esc_seq(self): - """ - test that a few escape sequences are actually used when using ansi<> color codes - """ - def termtest(x): - return highlight(x, Python3Lexer(), - Terminal256Formatter(style=MyStyle)) - - self.assertTrue('32;101' in termtest('0x123')) - self.assertTrue('92;42' in termtest('123')) - self.assertTrue('90' in termtest('#comment')) - self.assertTrue('94;41' in termtest('"String"')) |