Merge pull request #105 from mailgun/sergey/fromstring

html with comment that has no parent crashes html_tree_to_text
This commit is contained in:
Sergey Obukhov
2016-08-15 13:40:37 -07:00
committed by GitHub
3 changed files with 15 additions and 2 deletions

View File

@@ -29,7 +29,7 @@ class InstallCommand(install):
setup(name='talon',
version='1.2.15',
version='1.2.16',
description=("Mailgun library "
"to extract message quotations and signatures."),
long_description=open("README.rst").read(),

View File

@@ -117,7 +117,13 @@ def html_tree_to_text(tree):
style.getparent().remove(style)
for c in tree.xpath('//comment()'):
c.getparent().remove(c)
parent = c.getparent()
# comment with no parent does not impact produced text
if not parent:
continue
parent.remove(c)
text = ""
for el in tree.iter():

View File

@@ -6,6 +6,7 @@ from . import *
from talon import utils as u
import cchardet
import six
from lxml import html
def test_get_delimiter():
@@ -107,3 +108,9 @@ font: 13px 'Lucida Grande', Arial, sans-serif;
<p>TEXT 2 <!-- COMMENT 2 --></p>
</div>"""
eq_(b'TEXT 1 \nTEXT 2', u.html_to_text(html))
def test_comment_no_parent():
s = "<!-- COMMENT 1 --> no comment"
d = html.document_fromstring(s)
eq_("no comment", u.html_tree_to_text(d))