test_ansi.py
89 lines
| 3.8 KiB
| text/x-python
|
PythonLexer
Jonathan Frederic
|
r11481 | """ | ||
Module with tests for ansi filters | ||||
""" | ||||
#----------------------------------------------------------------------------- | ||||
# Copyright (c) 2013, the IPython Development Team. | ||||
# | ||||
# Distributed under the terms of the Modified BSD License. | ||||
# | ||||
# The full license is in the file COPYING.txt, distributed with this software. | ||||
#----------------------------------------------------------------------------- | ||||
#----------------------------------------------------------------------------- | ||||
# Imports | ||||
#----------------------------------------------------------------------------- | ||||
from IPython.utils.coloransi import TermColors | ||||
from ...tests.base import TestsBase | ||||
Jonathan Frederic
|
r11928 | from ..ansi import strip_ansi, ansi2html, ansi2latex | ||
Jonathan Frederic
|
r11481 | |||
#----------------------------------------------------------------------------- | ||||
# Class | ||||
#----------------------------------------------------------------------------- | ||||
Jonathan Frederic
|
r11494 | class TestAnsi(TestsBase): | ||
Jonathan Frederic
|
r11481 | """Contains test functions for ansi.py""" | ||
Jonathan Frederic
|
r11685 | def test_strip_ansi(self): | ||
Jonathan Frederic
|
r11934 | """strip_ansi test""" | ||
Jonathan Frederic
|
r11481 | correct_outputs = { | ||
'%s%s%s' % (TermColors.Green, TermColors.White, TermColors.Red) : '', | ||||
'hello%s' % TermColors.Blue: 'hello', | ||||
'he%s%sllo' % (TermColors.Yellow, TermColors.Cyan) : 'hello', | ||||
'%shello' % TermColors.Blue : 'hello', | ||||
'{0}h{0}e{0}l{0}l{0}o{0}'.format(TermColors.Red) : 'hello', | ||||
'hel%slo' % TermColors.Green : 'hello', | ||||
'hello' : 'hello'} | ||||
for inval, outval in correct_outputs.items(): | ||||
Thomas Kluyver
|
r12373 | self._try_strip_ansi(inval, outval) | ||
Jonathan Frederic
|
r11481 | |||
Jonathan Frederic
|
r11685 | def _try_strip_ansi(self, inval, outval): | ||
Jonathan Frederic
|
r11936 | self.assertEqual(outval, strip_ansi(inval)) | ||
Jonathan Frederic
|
r11481 | |||
def test_ansi2html(self): | ||||
Jonathan Frederic
|
r11934 | """ansi2html test""" | ||
Jonathan Frederic
|
r11481 | correct_outputs = { | ||
'%s' % (TermColors.Red) : '<span class="ansired"></span>', | ||||
'hello%s' % TermColors.Blue: 'hello<span class="ansiblue"></span>', | ||||
'he%s%sllo' % (TermColors.Green, TermColors.Cyan) : 'he<span class="ansigreen"></span><span class="ansicyan">llo</span>', | ||||
'%shello' % TermColors.Yellow : '<span class="ansiyellow">hello</span>', | ||||
'{0}h{0}e{0}l{0}l{0}o{0}'.format(TermColors.White) : '<span class="ansigrey">h</span><span class="ansigrey">e</span><span class="ansigrey">l</span><span class="ansigrey">l</span><span class="ansigrey">o</span><span class="ansigrey"></span>', | ||||
'hel%slo' % TermColors.Green : 'hel<span class="ansigreen">lo</span>', | ||||
'hello' : 'hello'} | ||||
for inval, outval in correct_outputs.items(): | ||||
Thomas Kluyver
|
r12373 | self._try_ansi2html(inval, outval) | ||
Jonathan Frederic
|
r11481 | |||
def _try_ansi2html(self, inval, outval): | ||||
Jonathan Frederic
|
r11909 | self.fuzzy_compare(outval, ansi2html(inval)) | ||
Jonathan Frederic
|
r11481 | |||
def test_ansi2latex(self): | ||||
Jonathan Frederic
|
r11934 | """ansi2latex test""" | ||
Jonathan Frederic
|
r11481 | correct_outputs = { | ||
MinRK
|
r13443 | '%s' % (TermColors.Red) : r'{\color{red}}', | ||
'hello%s' % TermColors.Blue: r'hello{\color{blue}}', | ||||
'he%s%sllo' % (TermColors.Green, TermColors.Cyan) : r'he{\color{green}}{\color{cyan}llo}', | ||||
Richard Everson
|
r14215 | '%shello' % TermColors.Yellow : r'\textbf{\color{yellow}hello}', | ||
'{0}h{0}e{0}l{0}l{0}o{0}'.format(TermColors.White) : r'\textbf{\color{white}h}\textbf{\color{white}e}\textbf{\color{white}l}\textbf{\color{white}l}\textbf{\color{white}o}\textbf{\color{white}}', | ||||
MinRK
|
r13443 | 'hel%slo' % TermColors.Green : r'hel{\color{green}lo}', | ||
Richard Everson
|
r14215 | 'hello' : 'hello', | ||
u'hello\x1b[34mthere\x1b[mworld' : u'hello{\\color{blue}there}world', | ||||
Richard Everson
|
r14783 | u'hello\x1b[mthere': u'hellothere', | ||
u'hello\x1b[01;34mthere' : u"hello\\textbf{\\color{lightblue}there}", | ||||
u'hello\x1b[001;34mthere' : u"hello\\textbf{\\color{lightblue}there}" | ||||
Richard Everson
|
r14215 | } | ||
Jonathan Frederic
|
r11481 | |||
for inval, outval in correct_outputs.items(): | ||||
Thomas Kluyver
|
r12373 | self._try_ansi2latex(inval, outval) | ||
Jonathan Frederic
|
r11481 | |||
def _try_ansi2latex(self, inval, outval): | ||||
Jonathan Frederic
|
r11909 | self.fuzzy_compare(outval, ansi2latex(inval), case_sensitive=True) | ||