summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_unicode.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-10-02 18:30:59 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2016-10-02 18:30:59 (GMT)
commitad72467bef0fb8043ca034ed8baf95cb218b1eed (patch)
tree72981ae7e513c7b8ed5489ce0f49da04f2a425c8 /Lib/test/test_unicode.py
parent9bc0507998ea118148487ef501d437e41d23c7ce (diff)
parentb3648576cd76232e618ecc227541c7b722355f6e (diff)
downloadcpython-ad72467bef0fb8043ca034ed8baf95cb218b1eed.zip
cpython-ad72467bef0fb8043ca034ed8baf95cb218b1eed.tar.gz
cpython-ad72467bef0fb8043ca034ed8baf95cb218b1eed.tar.bz2
Issue #28295: Fixed the documentation and added tests for PyUnicode_AsUCS4().
Original patch by Xiang Zhang.
Diffstat (limited to 'Lib/test/test_unicode.py')
-rw-r--r--Lib/test/test_unicode.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
index 9cb69d4..c98cc14 100644
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -2711,6 +2711,23 @@ class CAPITest(unittest.TestCase):
self.assertEqual(size, nchar)
self.assertEqual(wchar, nonbmp + '\0')
+ # Test PyUnicode_AsUCS4()
+ @support.cpython_only
+ def test_asucs4(self):
+ from _testcapi import unicode_asucs4
+ for s in ['abc', '\xa1\xa2', '\u4f60\u597d', 'a\U0001f600',
+ 'a\ud800b\udfffc', '\ud834\udd1e']:
+ l = len(s)
+ self.assertEqual(unicode_asucs4(s, l, 1), s+'\0')
+ self.assertEqual(unicode_asucs4(s, l, 0), s+'\uffff')
+ self.assertEqual(unicode_asucs4(s, l+1, 1), s+'\0\uffff')
+ self.assertEqual(unicode_asucs4(s, l+1, 0), s+'\0\uffff')
+ self.assertRaises(SystemError, unicode_asucs4, s, l-1, 1)
+ self.assertRaises(SystemError, unicode_asucs4, s, l-2, 0)
+ s = '\0'.join([s, s])
+ self.assertEqual(unicode_asucs4(s, len(s), 1), s+'\0')
+ self.assertEqual(unicode_asucs4(s, len(s), 0), s+'\uffff')
+
@support.cpython_only
def test_encode_decimal(self):
from _testcapi import unicode_encodedecimal