add more tests, make standard reply tests more relaxed
This commit is contained in:
@@ -5,9 +5,7 @@ from . fixtures import *
|
||||
|
||||
import regex as re
|
||||
|
||||
from talon import quotations
|
||||
|
||||
import html2text
|
||||
from talon import quotations, utils as u
|
||||
|
||||
|
||||
RE_WHITESPACE = re.compile("\s")
|
||||
@@ -270,26 +268,15 @@ def test_reply_separated_by_hr():
|
||||
'', quotations.extract_from_html(REPLY_SEPARATED_BY_HR)))
|
||||
|
||||
|
||||
RE_REPLY = re.compile(r"^Hi\. I am fine\.\s*\n\s*Thanks,\s*\n\s*Alex\s*$")
|
||||
|
||||
|
||||
def extract_reply_and_check(filename):
|
||||
f = open(filename)
|
||||
|
||||
msg_body = f.read()
|
||||
reply = quotations.extract_from_html(msg_body)
|
||||
plain_reply = u.html_to_text(reply)
|
||||
|
||||
h = html2text.HTML2Text()
|
||||
h.body_width = 0
|
||||
plain_reply = h.handle(reply)
|
||||
|
||||
#remove spaces
|
||||
plain_reply = plain_reply.replace(u'\xa0', u' ')
|
||||
|
||||
if RE_REPLY.match(plain_reply):
|
||||
eq_(1, 1)
|
||||
else:
|
||||
eq_("Hi. I am fine.\n\nThanks,\nAlex", plain_reply)
|
||||
eq_(RE_WHITESPACE.sub('', "Hi. I am fine.\n\nThanks,\nAlex"),
|
||||
RE_WHITESPACE.sub('', plain_reply))
|
||||
|
||||
|
||||
def test_gmail_reply():
|
||||
|
||||
@@ -58,3 +58,50 @@ def test_quick_detect_encoding_edge_cases(detect_encoding, cchardet_detect):
|
||||
detect_encoding.return_value = 'utf-8'
|
||||
eq_('utf-8', u.quick_detect_encoding("qwe"))
|
||||
ok_(detect_encoding.called)
|
||||
|
||||
|
||||
def test_html_to_text():
|
||||
html = """<body>
|
||||
<p>Hello world!</p>
|
||||
<br>
|
||||
<ul>
|
||||
<li>One!</li>
|
||||
<li>Two</li>
|
||||
</ul>
|
||||
<p>
|
||||
Haha
|
||||
</p>
|
||||
</body>"""
|
||||
text = u.html_to_text(html)
|
||||
eq_("Hello world! \n\n * One! \n * Two \nHaha", text)
|
||||
eq_("привет!", u.html_to_text("<b>привет!</b>"))
|
||||
|
||||
html = '<body><br/><br/>Hi</body>'
|
||||
eq_ ('Hi', u.html_to_text(html))
|
||||
|
||||
html = """Hi
|
||||
<style type="text/css">
|
||||
|
||||
div, p, li {
|
||||
|
||||
font: 13px 'Lucida Grande', Arial, sans-serif;
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
h1 {
|
||||
|
||||
font: 13px 'Lucida Grande', Arial, sans-serif;
|
||||
|
||||
}
|
||||
</style>"""
|
||||
eq_ ('Hi', u.html_to_text(html))
|
||||
|
||||
html = """<div>
|
||||
<!-- COMMENT 1 -->
|
||||
<span>TEXT 1</span>
|
||||
<p>TEXT 2 <!-- COMMENT 2 --></p>
|
||||
</div>"""
|
||||
eq_('TEXT 1 \nTEXT 2', u.html_to_text(html))
|
||||
|
||||
Reference in New Issue
Block a user