diff options
author | Marc-André Lemburg <mal@egenix.com> | 2001-01-10 10:21:11 (GMT) |
---|---|---|
committer | Marc-André Lemburg <mal@egenix.com> | 2001-01-10 10:21:11 (GMT) |
commit | ef34274d3bec2ac513f6e67bca9eb2ecda5a0cd4 (patch) | |
tree | 9c91b3d322104b113b46d61ae15dbb840272cc3a /Lib/test/test_charmapcodec.py | |
parent | 0d9f9dcf67c4c044f27cbbc7d3852951869dee53 (diff) | |
download | cpython-ef34274d3bec2ac513f6e67bca9eb2ecda5a0cd4.zip cpython-ef34274d3bec2ac513f6e67bca9eb2ecda5a0cd4.tar.gz cpython-ef34274d3bec2ac513f6e67bca9eb2ecda5a0cd4.tar.bz2 |
Moved the test codec definition to a new module and updated the test and
codec to test all charmap codec features.
As side-effect of moving the test codec into a new module, the encodings
package codec import mechanism is checked as well.
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 21251fb..ca33cdb 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' + |