m %UIc@sdkZdkZdkZdkZdkZdkZdfdYZdeifdYZ dZ e djo e ndS(Nt PosReturncBstZdZdZRS(NcCs d|_dS(Ni(tselftpos(R((t5/data/zmath/lib/python2.4/test/test_codeccallbacks.pyt__init__scCsc|i}|}|djot|i|}n||ijot|i|_nd|fS(Niu(RRtoldpostrealpostlentexctobjecttstart(RRRR((Rthandle s  (t__name__t __module__RR (((RRs tCodecCallbackTestcBstZdZdZdZdZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZRS(NcCsBd}|i|iddd|i|iddddS(Nuスパモ änd eggstasciitxmlcharrefreplaces&スパモ änd eggsslatin-1s!スパモ nd eggs(tsRt assertEqualtencode(RR((Rttest_xmlcharrefreplaces cCsd}tid|d}d}|i|idd|d}|i|idd|d}|i|id d|dS( NcCst|tptd|ng}xm|i|i|i!D]U}y"|i dt i t |WqAt j o|i dt |qAXqAWdi||ifS(Nsdon't know how to handle %ru&%s;u&#%d;u(t isinstanceRtUnicodeEncodeErrort TypeErrortlR R tendtctappendthtmlentitydefstcodepoint2nametordtKeyErrortjoin(RRR((Rtxmlcharnamereplace)s" stest.xmlcharnamereplaceu«ℜ» = 〈ሴ€〉s0«ℜ» = ⟨ሴ€⟩Rs$ℜ = ⟨ሴ€⟩slatin-1sℜ = ⟨ሴ⟩s iso-8859-15(R!tcodecstregister_errortsintsoutRRR(RR!R$R%((Rttest_xmlcharnamereplace%s cCsd}tid|d}d}|i|idd|d}|i|idd|d}|i|id d|dS( NcCst|tptd|ng}xA|i|i|i!D])}|i t i |dt |qAWddi ||ifS(Nsdon't know how to handle %ru0x%xu %su, (RRRRRR R RRRt unicodedatatnameRR (RRR((RtuninamereplaceHs'stest.uninamereplaceu ¬ሴ€耀sNNOT SIGN, ETHIOPIC SYLLABLE SEE, EURO SIGN, CJK UNIFIED IDEOGRAPH-8000RsEETHIOPIC SYLLABLE SEE, EURO SIGN, CJK UNIFIED IDEOGRAPH-8000slatin-1sAETHIOPIC SYLLABLE SEECJK UNIFIED IDEOGRAPH-8000s iso-8859-15(R)R"R#R$R%RRR(RR$R%R)((Rttest_uninamereplace?s cCsd}tidjo|tti7}nd}tidjo|dti7}n|i|idd|d}tidjo|dti7}n|i|idd|d }tidjo|dti7}n|i|id d|dS( Nu a¬ሴ€耀isa\xac\u1234\u20ac\u8000s\U%08xRtbackslashreplacesa\u1234\u20ac\u8000slatin-1sa\u1234\u8000s iso-8859-15(R$tsyst maxunicodetunichrR%RRR(RR$R%((Rttest_backslashescape]scCsdd}tid|d}d}|i|idd|d}|it |idddS(NcCsct|tptd|n|i|i|i!idod|idfSn|dS(Nsdon't know how to handle %rsui(RRtUnicodeDecodeErrorRR R Rt startswith(R((Rt relaxedutf8xs  stest.relaxedutf8t abcüu abcüsutf-8s( R2R"R#R$R%RRtdecodet assertRaisest UnicodeError(RR2R%R$((Rttest_decoderelaxedutf8rs cCs)tg}dD]#}|t|d|ifq~}d}d}|i t i |d|d|d}|i t t i |d|d|td u�stest.huiu( RR5R0R4R,R-RGRR"R#(RRG((Rttest_decodeunicodeinternals  cCsd}tid|d}tid|d}|i|iddd|i|iddd|id id dd |id id dd |itiddht dd<dd|idi ddd|idi ddddS(NcCst|t o%t|t otd|ng}t|i|iD]}|dt |i |qP~}ddi ||ifS(Nsdon't know how to handle %ru<%d>u[%s]u(RRRR0RR@txrangeR RRRR RR (RRRR@((Rthandler1s"As test.handler1cCst|tptd|ng}t|i|iD]}|dt |i |q>~}ddi ||idfS(Nsdon't know how to handle %ru<%d>u[%s]ui( RRR0RR@RJR RRRR RR (RRRR@((Rthandler2sAs test.handler2tRu[<129>][<128>][<255>]u[<129>][<128>]s \u3042\u3xxxsunicode-escapeuあ[<92><117><51><120>]xxs \u3042\u3xxuあ[<92><117><51><120><120>]tabctauziu z[<98>][<99>]ugüßrkug[<252><223>]rkugüßu g[<252><223>]( RKR"R#RLRRRR4tcharmap_decodeRR(RRKRLR((Rttest_callbackss&  +cCsdddddg}x+|D]#}tid|ti|qWd}|g}|D]}|d|qW~7}xyg}dD]}|||q~D]R}xIdD]A}x8|D]0}y|i ||Wqt j oqXqWqWqWdS(NR:RHR>RR+stest.iuxuあuaäRslatin-1s iso-8859-1s iso-8859-15sutf-8sutf-7sutf-16(uxuあuaä(sasciislatin-1s iso-8859-1s iso-8859-15sutf-8sutf-7sutf-16( terrorsterrR"R#t lookup_errorRR@RtunitencRR6(RRRRSRR@RRVRU((Rttest_longstringss !)&c Cs#|it||d |it||dgdddddg}xtt|D]}x|D]}t |t ||joqfng} xItt|D]5}||jo| i|q| i||qW|it|| qfWqYW||}|it||dS(Nistoo muchtspamueggsi*f1.0(RR5RtexctypetargstNonet wrongargsRJRtitwrongargttypetcallargstjRRRCtstrtmsg( RRYRZRcRR]R\RaR^R`((Rtcheck_exceptionobjectargss$  cCs|itdddddgd|itdddddgd|itdd d ddgd |itdd d ddgd |itddd ddgdtidjo&|itddd ddgdndS(NRugürkiitouchs@'ascii' codec can't encode character u'\xfc' in position 1: ouchis;'ascii' codec can't encode characters in position 1-3: ouchuüxis@'ascii' codec can't encode character u'\xfc' in position 0: ouchuĀxsB'ascii' codec can't encode character u'\u0100' in position 0: ouchu￿xsB'ascii' codec can't encode character u'\uffff' in position 0: ouchiu𐀀xsF'ascii' codec can't encode character u'\U00010000' in position 0: ouch(RRdRR,R-(R((Rttest_unicodeencodeerrors&      cCsH|itdddddgd|itdddddgddS( NRsgrkiiRes8'ascii' codec can't decode byte 0xfc in position 1: ouchis6'ascii' codec can't decode bytes in position 1-2: ouch(RRdR0(R((Rttest_unicodedecodeerror?s   cCs|itddddgd|itddddgd|itddddgd tid jo#|itd dddgd n|itddd dgddS(NugürkiiRes5can't translate character u'\xfc' in position 1: ouchugĀrks7can't translate character u'\u0100' in position 1: ouchug￿rks7can't translate character u'\uffff' in position 1: ouchiug𐀀rks;can't translate character u'\U00010000' in position 1: ouchis0can't translate characters in position 1-2: ouch(RRdtUnicodeTranslateErrorR,R-(R((Rttest_unicodetranslateerrorKs       c Cs^|ittid|ittitd|ittitddddddS(Ni*ReRuあii(RR5RR"t strict_errorst ExceptionR(R((Rttest_badandgoodstrictexceptionsgs    cCs|ittid|ittitd|ititdddddd |ititdddddd |itit ddddd dS( Ni*ReRuあiius(ui(ui(ui( RR5RR"t ignore_errorsR6RCRR0Rh(R((Rttest_badandgoodignoreexceptions|s   $$!cCs|ittid|ittitd|ititdddddd |ititdddddd |itit ddddd dS( Ni*ReRuあiiu?su�(u?i(u�i(u�i( RR5RR"treplace_errorsR6RCRR0Rh(R((Rt test_badandgoodreplaceexceptionss   $$!c Cs|ittid|ittitd|ittitddddd|ittitdddd|itit ddddddd dfdS( Ni*ReRsiiuあu&#%d;iB0( RR5RR"txmlcharrefreplace_errorsR6R0RhRCR(R((Rt*test_badandgoodxmlcharrefreplaceexceptionss     $c Cs|ittid|ittitd|ittitddddd|ittitdddd|itit dddddd|itit dd dddd|itit dd dddd|itit dd dddd|itit ddddddt i djoZ|itit dddddd|itit ddddddndS(Ni*ReRsiiuあu\u3042uu\x00uÿu\xffuĀu\u0100u￿u\uffffiu𐀀u \U00010000u􏿿u \U0010ffff(u\u3042i(u\x00i(u\xffi(u\u0100i(u\uffffi(u \U00010000i(u \U0010ffffi( RR5RR"tbackslashreplace_errorsR6R0RhRCRR,R-(R((Rt)test_badandgoodbackslashreplaceexceptionss6     $$$$$$$c sdddddddddf }d}x|D]tid d x'|D]}|it d i |d qQWx9ddddfD]%\}}|it |i |d qWq.WdS( Ni*ufooiiitfooRslatin-1s iso-8859-1s iso-8859-15stest.badhandlercsS(N(tres((Rv(Rt suあssutf-8sutf-7s+x-sunicode-internalt(iii(ufooii(ufooN(ufoo(Ruii(RuN(Ru(sasciislatin-1s iso-8859-1s iso-8859-15(sasciis(sutf-8s(sutf-7s+x-(sunicode-internals( R[tresultstencsRvR"R#RVRR5RRtbytesR4(RRVRvRzR{Ry((RvRttest_badhandlerresultss"!    cCs|ititid|ititid|ititid|ititid|ititiddS(NR:RHRR+(RRCR"RjRTRmRqRs(R((Rt test_lookup!s  cCsGd}tid|x'dD]}|itdi|dq WdS(NcCs5t|tod|ifSntd|dS(Nu䉂sdon't know how to handle %r(RRRRR(R((Rt unencrepl/sstest.unencreplhandlerRs iso-8859-1s iso-8859-15u䉂(sasciis iso-8859-1s iso-8859-15(R~R"R#RVRR5RR(RRVR~((Rttest_unencodablereplacement.s  cCs3|ittid|ittidddS(Ni*s test.dummy(RR5RR"R#(R((Rttest_badregistercall=scCs|ittiddS(Ns test.unknown(RR5t LookupErrorR"RT(R((Rttest_unknownhandlerDsc Csd}tid jo|d7}ndig}|D]}|t|q5~}ti dti x/dD]'}xdD]}|i ||q{WqnWdS(Niii i2idiiii'iPii i@Bustest.xmlcharrefreplaceRs iso-8859-15R( iii i2idiiii'iP(ii i@B(sasciis iso-8859-15(sxmlcharrefreplacestest.xmlcharrefreplace(tvR,R-R R@txR.RR"R#RqRVRSR(RR@RVRSRRR((Rttest_xmlcharrefvaluesIs0c Cs|itdiddd}tid||itdidd|itdidd|itdidd|itd idd|itd idd|itd id dd }tid||itdiddt }tid|i d|_ |i didddd|_ |i didddd|_ |itdiddd|_ |i didddd|_ |i didddd|_ |itdiddd|_ |i did dddtfdY}|ittiddhdd<|ittidd||ittiddhdtid<dS( NsRs test.unknowncCsdS(Ni*((R((Rtbaddecodereturn1\sstest.baddecodereturn1s\sunicode-escapes\x0s\x0ys \Uffffeeees\uyyyysraw-unicode-escapecCsdS(Nu?(u?N(R[(R((Rtbaddecodereturn2fsstest.baddecodereturn2stest.posreturnis0u0iuiiiuiis\uyyyy0tDcBstZdZRS(NcCs tdS(N(t ValueError(Rtkey((Rt __getitem__s(R R R(((RRsR:i(RR5RR4RR"R#RRRthandlerR RRCt IndexErrorR?RR6RPR[RR,R-(RRRRR((Rttest_decodehelperVs@          %c Cs|itdiddd}tid||itdiddd}tid||itdiddt }tid|i d |_ |i d iddd d |_ |i d iddd d|_ |itd iddd|_ |i d iddd d|_ |i d idddd|_ |itd iddd|_ dtfdY}xwdD]o}|ittid|hdd<|ittid|||ittid|hdd<qWdS(NuÿRs test.unknowncCsdS(Ni*((R((Rtbadencodereturn1sstest.badencodereturn1cCsdS(Nu?(u?N(R[(R((Rtbadencodereturn2sstest.badencodereturn2stest.posreturniuÿ0s0isiiisiiRcBstZdZRS(NcCs tdS(N(R(RR((RRs(R R R(((RRsR:R>RR+ii,(sstrictsreplacesxmlcharrefreplacesbackslashreplacestest.posreturn(RR5RRRR"R#RRRRR RRCRR?RRSR6RDR[R(RRSRRRR((Rttest_encodehelpers8          %cCsxdtfdY}|itdi||itdihdtid<|itdihdf<dS(NRcBstZdZRS(NcCs tdS(N(R(RR((RRs(R R R(((RRsuÿii( R?RRR5Rt translateRR,R-(RR((Rttest_translatehelpers&cCsnhtdd<tdd<tdd<tdd<}x%dD]}d |}|i|qIWdS(Nt&u&tu>t"u"ii idiu abcghi(ii idi(RRBtnttextR(RRBRR((Rttest_bug828737s B (R R RR&R*R/R7RERIRQRWRdRfRgRiRlRnRpRrRtR|R}RRRRRRRR(((RRs8        6   !      7     ; 5 cCstiitdS(N(ttestt test_supportt run_unittestR(((Rt test_mainst__main__( ttest.test_supportRtunittestR,R"RR'RtTestCaseRRR ( R'RRRR,RRR"R((RR<s$