[Python-checkins] python/dist/src/Lib/test string_tests.py, 1.38, 1.39 test_unicode.py, 1.91, 1.92 test_unicodedata.py, 1.10, 1.11 test_userstring.py, 1.12, 1.13

perky at users.sourceforge.net perky at users.sourceforge.net
Wed Aug 4 09:38:36 CEST 2004


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1744/Lib/test

Modified Files:
	string_tests.py test_unicode.py test_unicodedata.py 
	test_userstring.py 
Log Message:
SF #989185: Drop unicode.iswide() and unicode.width() and add
unicodedata.east_asian_width().  You can still implement your own
simple width() function using it like this:
    def width(u):
        w = 0
        for c in unicodedata.normalize('NFC', u):
            cwidth = unicodedata.east_asian_width(c)
            if cwidth in ('W', 'F'): w += 2
            else: w += 1
        return w


Index: string_tests.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/string_tests.py,v
retrieving revision 1.38
retrieving revision 1.39
diff -C2 -d -r1.38 -r1.39
*** string_tests.py	4 Jun 2004 03:18:12 -0000	1.38
--- string_tests.py	4 Aug 2004 07:38:33 -0000	1.39
***************
*** 696,722 ****
          self.checkraises(TypeError, 'xyz', 'decode', 42)
          self.checkraises(TypeError, 'xyz', 'encode', 42)
- 
- 
- class MixinUnicodeUserStringTest:
-     # Additional tests that only work with
-     # unicode compatible object, i.e. unicode and UserString
- 
-     def test_iswide(self):
-         self.checkequal(False, u'', 'iswide')
-         self.checkequal(False, u'\x1f', 'iswide') # Neutral
-         self.checkequal(False, u'\x20', 'iswide') # Narrow
-         self.checkequal(True, u'\u2329', 'iswide') # Wide
-         self.checkequal(False, u'\uff64', 'iswide') # Half
-         self.checkequal(True, u'\u3000', 'iswide') # Full
-         self.checkequal(False, u'\u2460', 'iswide') # Ambiguous
-         self.checkequal(True, u'\ud55c\uae00', 'iswide')
-         self.checkequal(False, u'\ud55c\u2606\uae00', 'iswide')
- 
-     def test_width(self):
-         self.checkequal(0, u'', 'width')
-         self.checkequal(4, u'abcd', 'width')
-         self.checkequal(2, u'\u0187\u01c9', 'width')
-         self.checkequal(3, u'\u2460\u2329', 'width')
-         self.checkequal(3, u'\u2329\u2460', 'width')
-         self.checkequal(4, u'\ud55c\uae00', 'width')
-         self.checkequal(5, u'\ud55c\u2606\uae00', 'width')
--- 696,697 ----

Index: test_unicode.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_unicode.py,v
retrieving revision 1.91
retrieving revision 1.92
diff -C2 -d -r1.91 -r1.92
*** test_unicode.py	23 Jul 2004 16:13:25 -0000	1.91
--- test_unicode.py	4 Aug 2004 07:38:33 -0000	1.92
***************
*** 12,17 ****
  class UnicodeTest(
      string_tests.CommonTest,
!     string_tests.MixinStrUnicodeUserStringTest,
!     string_tests.MixinUnicodeUserStringTest
      ):
      type2test = unicode
--- 12,16 ----
  class UnicodeTest(
      string_tests.CommonTest,
!     string_tests.MixinStrUnicodeUserStringTest
      ):
      type2test = unicode

Index: test_unicodedata.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_unicodedata.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** test_unicodedata.py	17 Apr 2004 19:36:48 -0000	1.10
--- test_unicodedata.py	4 Aug 2004 07:38:33 -0000	1.11
***************
*** 175,178 ****
--- 175,189 ----
          # which requires an external file.
  
+     def test_east_asian_width(self):
+         eaw = self.db.east_asian_width
+         self.assertRaises(TypeError, eaw, 'a')
+         self.assertRaises(TypeError, eaw, u'')
+         self.assertRaises(TypeError, eaw, u'ra')
+         self.assertEqual(eaw(u'\x1e'), 'N')
+         self.assertEqual(eaw(u'\x20'), 'Na')
+         self.assertEqual(eaw(u'\uC894'), 'W')
+         self.assertEqual(eaw(u'\uFF66'), 'H')
+         self.assertEqual(eaw(u'\uFF1F'), 'F')
+         self.assertEqual(eaw(u'\u2010'), 'A')
  
  class UnicodeMiscTest(UnicodeDatabaseTest):

Index: test_userstring.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_userstring.py,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** test_userstring.py	4 Jun 2004 03:18:12 -0000	1.12
--- test_userstring.py	4 Aug 2004 07:38:33 -0000	1.13
***************
*** 12,17 ****
      string_tests.MixinStrUnicodeUserStringTest,
      string_tests.MixinStrStringUserStringTest,
!     string_tests.MixinStrUserStringTest,
!     string_tests.MixinUnicodeUserStringTest
      ):
  
--- 12,16 ----
      string_tests.MixinStrUnicodeUserStringTest,
      string_tests.MixinStrStringUserStringTest,
!     string_tests.MixinStrUserStringTest
      ):
  



More information about the Python-checkins mailing list