diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-02 18:30:35 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-02 18:30:35 (GMT) |
commit | b3648576cd76232e618ecc227541c7b722355f6e (patch) | |
tree | 7e3348aca1818955eba0c1d88d8934118f5c8473 /Lib/test/test_unicode.py | |
parent | 1edebef724012a4dff48ec3eb2b41981b1610fdd (diff) | |
parent | cc164232aa736006d3c45ee76680c14738e2f9e6 (diff) | |
download | cpython-b3648576cd76232e618ecc227541c7b722355f6e.zip cpython-b3648576cd76232e618ecc227541c7b722355f6e.tar.gz cpython-b3648576cd76232e618ecc227541c7b722355f6e.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.py | 17 |
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 |