mirror of
https://github.com/python/cpython.git
synced 2025-07-28 21:55:21 +00:00
Add tests for the C APIs PyCodec_IncrementalEncoder() and
PyCodec_IncrementalDecoder().
This commit is contained in:
parent
ba8e180f3b
commit
9ae019bf5b
2 changed files with 38 additions and 2 deletions
|
@ -1,7 +1,7 @@
|
|||
from test import test_support
|
||||
import unittest
|
||||
import codecs
|
||||
import sys, StringIO
|
||||
import sys, StringIO, _testcapi
|
||||
|
||||
class Queue(object):
|
||||
"""
|
||||
|
@ -1032,9 +1032,11 @@ class BasicUnicodeTest(unittest.TestCase):
|
|||
decodedresult += reader.read()
|
||||
self.assertEqual(decodedresult, s, "%r != %r (encoding=%r)" % (decodedresult, s, encoding))
|
||||
|
||||
# check incremental decoder/encoder and iterencode()/iterdecode()
|
||||
# check incremental decoder/encoder (fetched via the Python
|
||||
# and C API) and iterencode()/iterdecode()
|
||||
try:
|
||||
encoder = codecs.getincrementalencoder(encoding)()
|
||||
cencoder = _testcapi.codec_incrementalencoder(encoding)
|
||||
except LookupError: # no IncrementalEncoder
|
||||
pass
|
||||
else:
|
||||
|
@ -1048,6 +1050,16 @@ class BasicUnicodeTest(unittest.TestCase):
|
|||
decodedresult += decoder.decode(c)
|
||||
self.assertEqual(decodedresult, s, "%r != %r (encoding=%r)" % (decodedresult, s, encoding))
|
||||
|
||||
# check C API
|
||||
encodedresult = ""
|
||||
for c in s:
|
||||
encodedresult += cencoder.encode(c)
|
||||
cdecoder = _testcapi.codec_incrementaldecoder(encoding)
|
||||
decodedresult = u""
|
||||
for c in encodedresult:
|
||||
decodedresult += cdecoder.decode(c)
|
||||
self.assertEqual(decodedresult, s, "%r != %r (encoding=%r)" % (decodedresult, s, encoding))
|
||||
|
||||
# check iterencode()/iterdecode()
|
||||
result = u"".join(codecs.iterdecode(codecs.iterencode(s, encoding), encoding))
|
||||
self.assertEqual(result, s, "%r != %r (encoding=%r)" % (result, s, encoding))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue