poezio/test/test_xhtml.py
mathieui 29942d38bb
Add some unit tests using py.test
- we need to have more
2014-10-27 20:01:22 +01:00

50 lines
1.7 KiB
Python

"""
Test the functions in the `xhtml` module
"""
import pytest
import sys
import xml
sys.path.append('src')
from xhtml import (poezio_colors_to_html, xhtml_to_poezio_colors,
parse_css, clean_text)
def test_clean_text():
example_string = '\x191}Toto \x192,-1}titi\x19b Tata'
assert clean_text(example_string) == 'Toto titi Tata'
clean_string = 'toto titi tata'
assert clean_text(clean_string) == clean_string
def test_poezio_colors_to_html():
base = "<body xmlns='http://www.w3.org/1999/xhtml'><p>"
end = "</p></body>"
text = '\x191}coucou'
assert poezio_colors_to_html(text) == base + '<span style="color: red;">coucou</span>' + end
text = '\x19bcoucou\x19o toto \x194}titi'
assert poezio_colors_to_html(text) == base + '<span style="font-weight: bold;">coucou</span> toto <span style="color: blue;">titi</span>' + end
def test_xhtml_to_poezio_colors():
start = b'<body xmlns="http://www.w3.org/1999/xhtml"><p>'
end = b'</p></body>'
xhtml = start + b'test' + end
assert xhtml_to_poezio_colors(xhtml) == 'test'
xhtml = start + b'<a href="http://perdu.com">salut</a>' + end
assert xhtml_to_poezio_colors(xhtml) == '\x19usalut\x19o (http://perdu.com)'
xhtml = start + b'<a href="http://perdu.com">http://perdu.com</a>' + end
assert xhtml_to_poezio_colors(xhtml) == '\x19uhttp://perdu.com\x19o'
with pytest.raises(xml.sax._exceptions.SAXParseException):
xhtml_to_poezio_colors(b'<p>Invalid xml')
def test_parse_css():
example_css = 'text-decoration: underline; color: red;'
assert parse_css(example_css) == '\x19u\x19196}'
example_css = 'text-decoration: underline coucou color: red;'
assert parse_css(example_css) == ''