fix: conversion html_to_text hr tags rstrip non string object (#1162)

Co-authored-by: Fabio Lucattini <f.lucattini@desys.it>
This commit is contained in:
Fabio Lucattini 2024-07-17 21:45:56 +02:00 committed by GitHub
parent ddb5b52d17
commit e30adb4dee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 67 additions and 1 deletions

View File

@ -180,8 +180,10 @@ class HTMLConverter(HTMLParser, object):
self._result.append('\n')
elif tag == 'hr':
if self._result:
if self._result and isinstance(self._result[-1], str):
self._result[-1] = self._result[-1].rstrip(' ')
else:
pass
self._result.append('\n---\n')

View File

@ -127,6 +127,70 @@ def test_conversion_html_to_text():
# If you give nothing, you get nothing in return
assert to_html("") == ""
# Special case on HR tag
assert to_html("""
<html>
<head></head>
<body>
<p><b>FROM: </b>apprise-test@mydomain.yyy
<apprise-test@mydomain.yyy></p>
Hi!<br/>
How are you?<br/>
<font color=3D"#FF0000">red font</font>
<a href=3D"http://www.python.org">link</a> you wanted.<br/>
</body>
</html>
""") == "FROM: apprise-test@mydomain.yyy\nHi!\n How are you?\n \
red font link you wanted."
assert to_html("""
<html>
<head></head>
<body>
<p><b>FROM: </b>apprise-test@mydomain.yyy
<apprise-test@mydomain.yyy><hr></p>
Hi!<br/>
How are you?<br/>
<font color=3D"#FF0000">red font</font>
<a href=3D"http://www.python.org">link</a> you wanted.<br/>
</body>
</html>
""") == "FROM: apprise-test@mydomain.yyy\n---\nHi!\n \
How are you?\n red font link you wanted."
# Special case on HR if text is sorrunded by HR tags
# its created a dict element
assert to_html("""
<html>
<head></head>
<body>
<p><hr><b>FROM: </b>apprise-test@mydomain.yyy
<apprise-test@mydomain.yyy><hr></p>
Hi!<br/>
How are you?<br/>
<font color=3D"#FF0000">red font</font>
<a href=3D"http://www.python.org">link</a> you wanted.<br/>
</body>
</html>
""") == "---\nFROM: apprise-test@mydomain.yyy\n---\nHi!\n \
How are you?\n red font link you wanted."
assert to_html("""
<html>
<head></head>
<body>
<p>
<hr><b>TEST</b><hr>
</p>
Hi!<br/>
How are you?<br/>
<font color=3D"#FF0000">red font</font>
<a href=3D"http://www.python.org">link</a> you wanted.<br/>
</body>
</html>
""") == "---\nTEST\n---\nHi!\n How are you?\n red font link you \
wanted."
with pytest.raises(TypeError):
# Invalid input
assert to_html(None)