diff --git a/Lib/test/output/test_charmapcodec b/Lib/test/output/test_charmapcodec new file mode 100644 index 00000000000..9b1589403da --- /dev/null +++ b/Lib/test/output/test_charmapcodec @@ -0,0 +1 @@ +test_charmapcodec diff --git a/Lib/test/test_charmapcodec.py b/Lib/test/test_charmapcodec.py new file mode 100644 index 00000000000..21251fba8ac --- /dev/null +++ b/Lib/test/test_charmapcodec.py @@ -0,0 +1,65 @@ +""" Python Character Mapping Codec test + +Written by Marc-Andre Lemburg (mal@lemburg.com). + +(c) Copyright 2000 Guido van Rossum. + +"""#" +import codecs + +### Codec APIs + +class Codec(codecs.Codec): + + def encode(self,input,errors='strict'): + + return codecs.charmap_encode(input,errors,encoding_map) + + def decode(self,input,errors='strict'): + + return codecs.charmap_decode(input,errors,decoding_map) + +class StreamWriter(Codec,codecs.StreamWriter): + pass + +class StreamReader(Codec,codecs.StreamReader): + pass + +### encodings module API + +def getregentry(): + + return (Codec().encode,Codec().decode,StreamReader,StreamWriter) + +### Decoding Map + +decoding_map = codecs.make_identity_dict(range(256)) +decoding_map.update({ + 0x0078: u"abc", + "abc": 0x0078, +}) + +### Encoding Map + +encoding_map = {} +for k,v in decoding_map.items(): + encoding_map[v] = k + + +### Tests + +def check(a, b): + if a != b: + print '*** check failed: %s != %s' % (repr(a), repr(b)) + +check(unicode('abc', 'mycp'), u'abc') +check(unicode('xdef', 'mycp'), u'abcdef') +check(unicode('defx', 'mycp'), u'defabc') +check(unicode('dxf', 'mycp'), u'dabcf') +check(unicode('dxfx', 'mycp'), u'dabcfabc') + +check(u'abc'.encode('mycp'), 'abc') +check(u'xdef'.encode('mycp'), 'abcdef') +check(u'defx'.encode('mycp'), 'defabc') +check(u'dxf'.encode('mycp'), 'dabcf') +check(u'dxfx'.encode('mycp'), 'dabcfabc')