示例#1
0
 def process_twitter_message_text_combined_test(self):
     """Check Twitter text message processing for Qt 5 - combined test."""
     # check all the text processing techniques at once to verify they don't interfere with each other
     # - clickable hashtags
     # - media URL removal
     # - URL expansion
     # - newline replacement (in fulltext only)
     # - correct plaintext version
     message_dict = {
         "hashtags" : [
             {"text" : "猫耳"},
             {"text" : "けものフレンズ"},
         ],
         "media" : [
             {"url" : "https://kaban.media.org/sugoi"}
         ],
         "urls" : [
             {"url" : "https://short.japari.park/boss", "expanded_url" : "https://expanded.japari.park/boss"}
         ]
     }
     full_text = "@tsubame_project Serval-chan is very cute!\n#猫耳 #けものフレンズ https://short.japari.park/boss\n楽しい!! https://kaban.media.org/sugoi"
     result_text, result_plaintext = lib.process_twitter_message_text(full_text, message_dict)
     # check the results look correct
     expected_result_text = '@tsubame_project Serval-chan is very cute!<br>' \
                            '<a href="#猫耳">#猫耳</a> ' \
                            '<a href="#けものフレンズ">#けものフレンズ</a> ' \
                            '<a href="https://expanded.japari.park/boss">https://expanded.japari.park/boss</a><br>' \
                            '楽しい!!'
     expected_result_plaintext = "@tsubame_project Serval-chan is very cute!\n#猫耳 #けものフレンズ https://expanded.japari.park/boss\n楽しい!!"
     self.assertEqual(result_text, expected_result_text)
     self.assertEqual(result_plaintext, expected_result_plaintext)
示例#2
0
 def process_twitter_message_text_newline_test(self):
     """Check Twitter text message processing for Qt 5 - newline replacement."""
     message_dict = {}
     full_text = 'a\n\nb\nc <a href="http://www.example.com">foo</a>'
     result_text, result_plaintext = lib.process_twitter_message_text(full_text, message_dict)
     # check that the resulting text contains <br> instead of \n and
     # does not contain the hyperlink
     expected_result_text = 'a<br><br>b<br>c <a href="http://www.example.com">foo</a>'
     expected_result_plaintext = 'a\n\nb\nc foo'
     self.assertEqual(result_text, expected_result_text)
     self.assertEqual(result_plaintext, expected_result_plaintext)
示例#3
0
 def process_twitter_message_text_url_test(self):
     """Check Twitter text message processing for Qt 5 - make urls clickable."""
     message_dict = {
         "urls" : [
             {"url" : "https://short.url.com/foo", "expanded_url" : "https://expanded.url.com/foo"},
             {"url" : "https://short.url.com/bar", "expanded_url" : "https://expanded.url.com/bar"},
             {"url" : "https://short.url.com/baz", "expanded_url" : "https://expanded.url.com/baz"}
         ]
     }
     full_text = "foo https://short.url.com/foo bar https://short.url.com/bar baz https://short.url.com/baz"
     result_text, result_plaintext = lib.process_twitter_message_text(full_text, message_dict)
     # check the short URLs have been correctly replaced by extended URL & plaintext does not
     # have clickable links
     expected_result_text = 'foo <a href="https://expanded.url.com/foo">https://expanded.url.com/foo</a> bar <a href="https://expanded.url.com/bar">https://expanded.url.com/bar</a> baz <a href="https://expanded.url.com/baz">https://expanded.url.com/baz</a>'
     expected_result_plaintext = 'foo https://expanded.url.com/foo bar https://expanded.url.com/bar baz https://expanded.url.com/baz'
     self.assertEqual(result_text, expected_result_text)
     self.assertEqual(result_plaintext, expected_result_plaintext)
示例#4
0
    def process_twitter_message_text_drop_media_urls_test(self):
        """Check Twitter text message processing for Qt 5 - drop media urls."""
        message_dict = {
            "media" : [
                {"url" : "https://media.url.com/foo"},
                {"url" : "https://media.url.com/bar"},
                {"url" : "https://media.url.com/baz"}
            ]
        }

        full_text = "blah blah blah https://media.url.com/foo https://media.url.com/bar https://media.url.com/baz"
        result_text, result_plaintext = lib.process_twitter_message_text(full_text, message_dict)
        # check the results are correctly stripped of the media links
        expected_result_text = 'blah blah blah'
        expected_result_plaintext = 'blah blah blah'
        self.assertEqual(result_text, expected_result_text)
        self.assertEqual(result_plaintext, expected_result_plaintext)
示例#5
0
 def process_twitter_message_text_clickable_hashtags_test(self):
     """Check Twitter text message processing for Qt 5 - clickable hashtags."""
     # check that hashtags are correctly turned into clickable links, including non-ASCII hashtags
     message_dict = {
         "hashtags" : [
             {"text" : "cat_ears"},
             {"text" : "kočičí_uši"},
             {"text" : "猫耳"},
             {"text" : "けものフレンズ"},
         ]
     }
     # we include a user mention and some message text before and after the hashtags
     full_text = "@tsubame_project Serval-chan is very cute! #cat_ears #kočičí_uši #猫耳 #けものフレンズ 楽しい!!"
     result_text, result_plaintext = lib.process_twitter_message_text(full_text, message_dict)
     # check the results have correctly processed hashtags
     expected_result_text = '@tsubame_project Serval-chan is very cute! <a href="#cat_ears">#cat_ears</a> ' \
                            '<a href="#kočičí_uši">#kočičí_uši</a> ' \
                            '<a href="#猫耳">#猫耳</a> ' \
                            '<a href="#けものフレンズ">#けものフレンズ</a> ' \
                            '楽しい!!'
     expected_result_plaintext = "@tsubame_project Serval-chan is very cute! #cat_ears #kočičí_uši #猫耳 #けものフレンズ 楽しい!!"
     self.assertEqual(result_text, expected_result_text)
     self.assertEqual(result_plaintext, expected_result_plaintext)