def testMixedText(self): self.assertEqual(truncate_hanzi(' 公 模asdf! hello 你好', 6), u' 公 模asdf! hello 你好') self.assertEqual(truncate_hanzi(' 公 模asdf! hello 你好', 5), u' 公 模asdf! hello 你...') self.assertEqual(truncate_hanzi(' 公 模asdf! hello 你好', 4), u' 公 模asdf! hello...') self.assertEqual(truncate_hanzi(' 公 模asdf! hello 你好', 3), u' 公 模asdf...') self.assertEqual(truncate_hanzi('截取段落工具,支持English、Γρεεκ等字母语言和CJK汉字。', 11), u'截取段落工具,支持English、Γρεεκ等...') self.assertEqual(truncate_hanzi('截取段落工具,支持English、Γρεεκ等字母语言和CJK汉字。', 10), u'截取段落工具,支持English、Γρεεκ...') self.assertEqual(truncate_hanzi('截取段落工具,支持English、Γρεεκ等字母语言和CJK汉字。', 9), u'截取段落工具,支持English...')
def truncatehanzi(value, arg): """ Truncates a string after a certain number of words including alphanumeric and CJK characters. Argument: Number of words to truncate after. """ from truncate_hanzi import truncate_hanzi try: length = int(arg) except ValueError: # Invalid literal for int(). return value # Fail silently. return truncate_hanzi(value, length)
def testChinese(self): self.assertEqual(truncate_hanzi('公共的模' ,4), u'公共的模') self.assertEqual(truncate_hanzi('公共的模' ,3), u'公共的...') self.assertEqual(truncate_hanzi('公共的模' ,1), u'公...') self.assertEqual(truncate_hanzi('公共的模' ,0), u'...')
def testNumberMixed(self): self.assertEqual(truncate_hanzi('开始时间: 7月2日 周三 19:00 结束时间: 8月3日 周日 19:00', 9), u'开始时间: 7月2日 周...')
def testWestern(self): self.assertEqual(truncate_hanzi('αέβ Λğ Ґєʯ', 3), u'αέβ Λğ Ґєʯ') self.assertEqual(truncate_hanzi('αέβ Λğ Ґєʯ', 2), u'αέβ Λğ...') self.assertEqual(truncate_hanzi('αέβ Λğ Ґєʯ', 1), u'αέβ...') self.assertEqual(truncate_hanzi('αέβ Λğ Ґєʯ', 0), u'...')
def testEnglish(self): self.assertEqual(truncate_hanzi('WOW! We Say ENGLISH!!!', 4), u'WOW! We Say ENGLISH...') self.assertEqual(truncate_hanzi('WOW! We Say ENGLISH!!!', 3), u'WOW! We Say...') self.assertEqual(truncate_hanzi('WOW! We Say ENGLISH!!!', 2), u'WOW! We...') self.assertEqual(truncate_hanzi('WOW! We Say ENGLISH!!!', 1), u'WOW...')