summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2009-01-22 11:59:55 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2009-01-22 11:59:55 (GMT)
commit44bf631ad9996004cbd3e0cb03dd94febcba950f (patch)
tree7bcd62f56229eae1d97c30168433e977049f58a9
parent81fabdb437eea29e2616de58e6952b7ef2e5542f (diff)
downloadcpython-44bf631ad9996004cbd3e0cb03dd94febcba950f.zip
cpython-44bf631ad9996004cbd3e0cb03dd94febcba950f.tar.gz
cpython-44bf631ad9996004cbd3e0cb03dd94febcba950f.tar.bz2
Followup of #4874: also fix multibytecodec.c
-rw-r--r--Lib/test/test_multibytecodec.py12
-rw-r--r--Modules/cjkcodecs/multibytecodec.c4
2 files changed, 13 insertions, 3 deletions
diff --git a/Lib/test/test_multibytecodec.py b/Lib/test/test_multibytecodec.py
index 7962d5e..2f64867 100644
--- a/Lib/test/test_multibytecodec.py
+++ b/Lib/test/test_multibytecodec.py
@@ -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:
diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c
index 2732270..82dfd49 100644
--- a/Modules/cjkcodecs/multibytecodec.c
+++ b/Modules/cjkcodecs/multibytecodec.c
@@ -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;