blob: fb19c378e42a0148bf4faa7a66c727448c05bb9b [file] [log] [blame]
Marc-André Lemburgef342742001-01-10 10:21:11 +00001""" Python character mapping codec test
2
3This uses the test codec in testcodec.py and thus also tests the
4encodings package lookup scheme.
Marc-André Lemburg1109db42001-01-06 15:09:57 +00005
6Written by Marc-Andre Lemburg (mal@lemburg.com).
7
8(c) Copyright 2000 Guido van Rossum.
9
10"""#"
Marc-André Lemburg1109db42001-01-06 15:09:57 +000011
12def check(a, b):
13 if a != b:
14 print '*** check failed: %s != %s' % (repr(a), repr(b))
Marc-André Lemburgef342742001-01-10 10:21:11 +000015 else:
16 print '%s == %s: OK' % (repr(a), repr(b))
Marc-André Lemburg1109db42001-01-06 15:09:57 +000017
Marc-André Lemburgef342742001-01-10 10:21:11 +000018# test codec's full path name (see test/testcodec.py)
Marc-André Lemburgd2ebe872001-01-17 15:07:00 +000019codecname = 'test.testcodec'
Tim Petersd2bf3b72001-01-18 02:22:22 +000020
Marc-André Lemburgef342742001-01-10 10:21:11 +000021check(unicode('abc', codecname), u'abc')
22check(unicode('xdef', codecname), u'abcdef')
23check(unicode('defx', codecname), u'defabc')
24check(unicode('dxf', codecname), u'dabcf')
25check(unicode('dxfx', codecname), u'dabcfabc')
26
27check(u'abc'.encode(codecname), 'abc')
28check(u'xdef'.encode(codecname), 'abcdef')
29check(u'defx'.encode(codecname), 'defabc')
30check(u'dxf'.encode(codecname), 'dabcf')
31check(u'dxfx'.encode(codecname), 'dabcfabc')
32
33check(unicode('ydef', codecname), u'def')
34check(unicode('defy', codecname), u'def')
35check(unicode('dyf', codecname), u'df')
36check(unicode('dyfy', codecname), u'df')
37
38try:
39 unicode('abc\001', codecname)
40except UnicodeError:
41 print '\\001 maps to undefined: OK'
42else:
43 print '*** check failed: \\001 does not map to undefined'