myreplace = lambda exc: ('', sys.maxsize+1)
codecs.register_error('test.cjktest', myreplace)
self.assertRaises(IndexError, dec,
- 'apple\x92ham\x93spam', 'test.cjktest')
+ b'apple\x92ham\x93spam', 'test.cjktest')
def test_codingspec(self):
try:
self.assertRaises(AttributeError,
_multibytecodec.MultibyteStreamWriter, None)
+ def test_decode_unicode(self):
+ # Trying to decode an unicode string should raise a TypeError
+ for enc in ALL_CJKENCODINGS:
+ self.assertRaises(TypeError, codecs.getdecoder(enc), "")
class Test_IncrementalEncoder(unittest.TestCase):
self.assertRaises(UnicodeDecodeError, decoder.decode, b'', True)
self.assertEqual(decoder.decode(b'B@$'), '\u4e16')
+ def test_decode_unicode(self):
+ # Trying to decode an unicode string should raise a TypeError
+ for enc in ALL_CJKENCODINGS:
+ decoder = codecs.getincrementaldecoder(enc)()
+ self.assertRaises(TypeError, decoder.decode, "")
+
class Test_StreamReader(unittest.TestCase):
def test_bug1728403(self):
try:
const char *data, *errors = NULL;
Py_ssize_t datalen, finalsize;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s*|z:decode",
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|z:decode",
codeckwarglist, &pdata, &errors))
return NULL;
data = pdata.buf;
Py_ssize_t wsize, finalsize = 0, size, origpending;
int final = 0;
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s*|i:decode",
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "y*|i:decode",
incrementalkwarglist, &pdata, &final))
return NULL;
data = pdata.buf;