Kaydet (Commit) 44bf631a authored tarafından Antoine Pitrou's avatar Antoine Pitrou

Followup of #4874: also fix multibytecodec.c

üst 81fabdb4
......@@ -44,7 +44,7 @@ class Test_MultibyteCodec(unittest.TestCase):
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 @@ class Test_MultibyteCodec(unittest.TestCase):
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 @@ class Test_IncrementalDecoder(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:
......
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment