diff --git a/tests/test_python/test_lib.py b/tests/test_python/test_lib.py index eb53be03..f7b47858 100644 --- a/tests/test_python/test_lib.py +++ b/tests/test_python/test_lib.py @@ -6,6 +6,7 @@ import os import sys import re import shutil +import unicodedata from time import sleep from subprocess import call, PIPE @@ -429,6 +430,13 @@ width_data = { 'F': 2, # Fullwidth } +unidata_version = tuple(( + int(c) for c in unicodedata.unidata_version.split('.'))) + +U1F48E_WIDTH = ( + 1 if unidata_version >= (6,) else 2 +) + class TestUnicode(TestCase): def assertStringsIdentical(self, s1, s2): @@ -497,14 +505,14 @@ class TestUnicode(TestCase): if sys.maxunicode < 0x10FFFF: raise SkipTest('Can only test strwidth_ucs_4 in UCS-4 Pythons') - self.assertEqual(1, plu.strwidth_ucs_4(width_data, '\U0001F48E')) + self.assertEqual(U1F48E_WIDTH, plu.strwidth_ucs_4(width_data, '\U0001F48E')) def test_strwidth_ucs_2(self): self.assertEqual(4, plu.strwidth_ucs_2(width_data, 'abcd')) self.assertEqual(4, plu.strwidth_ucs_2(width_data, 'AB')) if not sys.maxunicode < 0x10FFFF: raise SkipTest('Can only test strwidth_ucs_2 in UCS-2 Pythons') - self.assertEqual(1, plu.strwidth_ucs_2(width_data, '\ud83d\udc8e')) + self.assertEqual(U1F48E_WIDTH, plu.strwidth_ucs_2(width_data, '\ud83d\udc8e')) class TestVCS(TestCase):