Fix in telegram.Message (#1042)

* Fix in telegram.Message

The `_parse_(html|markdown)` methods now properly return `None` on an empty `Message.text` or an empty `Message.caption`

* As per CR
This commit is contained in:
Eldinnie 2018-03-16 21:42:39 +01:00 committed by Jannes Höke
parent 1530ed20e5
commit e182046376
2 changed files with 26 additions and 0 deletions

View file

@ -868,6 +868,9 @@ class Message(TelegramObject):
@staticmethod
def _parse_html(message_text, entities, urled=False):
if message_text is None:
return None
if not sys.maxunicode == 0xffff:
message_text = message_text.encode('utf-16-le')
@ -962,6 +965,9 @@ class Message(TelegramObject):
@staticmethod
def _parse_markdown(message_text, entities, urled=False):
if message_text is None:
return None
if not sys.maxunicode == 0xffff:
message_text = message_text.encode('utf-16-le')

View file

@ -173,6 +173,11 @@ class TestMessage(object):
text_html = self.test_message.text_html
assert text_html == test_html_string
def test_text_html_empty(self, message):
message.text = None
message.caption = "test"
assert message.text_html is None
def test_text_html_urled(self):
test_html_string = ('Test for &lt;<b>bold</b>, <i>ita_lic</i>, <code>code</code>, '
'<a href="http://github.com/">links</a> and <pre>pre</pre>. '
@ -186,6 +191,11 @@ class TestMessage(object):
text_markdown = self.test_message.text_markdown
assert text_markdown == test_md_string
def test_text_markdown_empty(self, message):
message.text = None
message.caption = "test"
assert message.text_markdown is None
def test_text_markdown_urled(self):
test_md_string = ('Test for <*bold*, _ita\_lic_, `code`, [links](http://github.com/) and '
'```pre```. [http://google.com](http://google.com)')
@ -215,6 +225,11 @@ class TestMessage(object):
caption_html = self.test_message.caption_html
assert caption_html == test_html_string
def test_caption_html_empty(self, message):
message.text = "test"
message.caption = None
assert message.caption_html is None
def test_caption_html_urled(self):
test_html_string = ('Test for &lt;<b>bold</b>, <i>ita_lic</i>, <code>code</code>, '
'<a href="http://github.com/">links</a> and <pre>pre</pre>. '
@ -228,6 +243,11 @@ class TestMessage(object):
caption_markdown = self.test_message.caption_markdown
assert caption_markdown == test_md_string
def test_caption_markdown_empty(self, message):
message.text = "test"
message.caption = None
assert message.caption_markdown is None
def test_caption_markdown_urled(self):
test_md_string = ('Test for <*bold*, _ita\_lic_, `code`, [links](http://github.com/) and '
'```pre```. [http://google.com](http://google.com)')