diff options
Diffstat (limited to 'Lib/test/test_charmapcodec.py')
-rw-r--r-- | Lib/test/test_charmapcodec.py | 87 |
1 files changed, 33 insertions, 54 deletions
diff --git a/Lib/test/test_charmapcodec.py b/Lib/test/test_charmapcodec.py index 21251fba8a..ca33cdb23f 100644 --- a/Lib/test/test_charmapcodec.py +++ b/Lib/test/test_charmapcodec.py @@ -1,65 +1,44 @@ -""" Python Character Mapping Codec test +""" Python character mapping codec test + +This uses the test codec in testcodec.py and thus also tests the +encodings package lookup scheme. 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') + else: + print '%s == %s: OK' % (repr(a), repr(b)) -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') +# test codec's full path name (see test/testcodec.py) +codecname = 'testcodec' + +check(unicode('abc', codecname), u'abc') +check(unicode('xdef', codecname), u'abcdef') +check(unicode('defx', codecname), u'defabc') +check(unicode('dxf', codecname), u'dabcf') +check(unicode('dxfx', codecname), u'dabcfabc') + +check(u'abc'.encode(codecname), 'abc') +check(u'xdef'.encode(codecname), 'abcdef') +check(u'defx'.encode(codecname), 'defabc') +check(u'dxf'.encode(codecname), 'dabcf') +check(u'dxfx'.encode(codecname), 'dabcfabc') + +check(unicode('ydef', codecname), u'def') +check(unicode('defy', codecname), u'def') +check(unicode('dyf', codecname), u'df') +check(unicode('dyfy', codecname), u'df') + +try: + unicode('abc\001', codecname) +except UnicodeError: + print '\\001 maps to undefined: OK' +else: + print '*** check failed: \\001 does not map to undefined' + |