Followup of #4874: also fix multibytecodec.c

This commit is contained in:
Antoine Pitrou 2009-01-22 11:59:55 +00:00
parent 81fabdb437
commit 44bf631ad9
2 changed files with 13 additions and 3 deletions

View file

@ -44,7 +44,7 @@ def test_errorcallback_longindex(self):
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:
@ -61,6 +61,10 @@ def test_init_segfault(self):
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):
@ -146,6 +150,12 @@ def test_iso2022(self):
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:

View file

@ -612,7 +612,7 @@ MultibyteCodec_Decode(MultibyteCodecObject *self,
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;
@ -1038,7 +1038,7 @@ mbidecoder_decode(MultibyteIncrementalDecoderObject *self,
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;