{G_Tc@s1ddlZddlZddlZddlZddlZddlZdfdYZdefdYZ defdYZ de fd YZ d e fd YZ d efd YZdefdYZdefdYZdejfdYZdZedkr-endS(iNt PosReturncBseZdZdZRS(cCs d|_dS(Ni(tpos(tself((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt__init__scCs_|j}|}|dkr1t|j|}n||jkrUt|j|_nd|fS(Niu(Rtlentobjecttstart(Rtexctoldpostrealpos((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pythandle s  (t__name__t __module__RR (((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyRs tBadStartUnicodeEncodeErrorcBseZdZRS(cCs)tj|dddddg|_dS(Ntasciiuiitbad(tUnicodeEncodeErrorRR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyRs(R R R(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR stBadObjectUnicodeEncodeErrorcBseZdZRS(cCs)tj|dddddg|_dS(NRuiiR(RRR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyRs(R R R(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyRstNoEndUnicodeDecodeErrorcBseZdZRS(cCs&tj|ddddd|`dS(NRtiiR(tUnicodeDecodeErrorRtend(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR#s(R R R(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR"stBadObjectUnicodeDecodeErrorcBseZdZRS(cCs)tj|dddddg|_dS(NRRiiR(RRR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR)s(R R R(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR(stNoStartUnicodeTranslateErrorcBseZdZRS(cCs#tj|dddd|`dS(NuiiR(tUnicodeTranslateErrorRR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR/s(R R R(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR.stNoEndUnicodeTranslateErrorcBseZdZRS(cCs#tj|dddd|`dS(NuiiR(RRR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR5s(R R R(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR4stNoObjectUnicodeTranslateErrorcBseZdZRS(cCs#tj|dddd|`dS(NuiiR(RRR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR;s(R R R(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR:stCodecCallbackTestcBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZRS(cCs^d}|j|jddd|j|jddd|j|jddddS( Nuスパモ änd eggšRtxmlcharrefreplaces+スパモ änd eggšslatin-1s&スパモ nd eggšs iso-8859-15s!スパモ nd egg(t assertEqualtencode(Rts((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_xmlcharrefreplaceAsc Csdddg}ddkr+|dg7}nxd d d gD]}xx|D]p\}}|j|j|d |d d||f|j|dj|d |dd d|d|fqHWq;WdS(Nu💝s 💝us�us�u💝s��Rtlatin1s iso-8859-15Rtmsgs %r.encode(%r)tX(u💝s 💝(us�(us�(u💝s��(RR(RtteststencodingRtexp((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt&test_xmlcharrefreplace_with_surrogatesSs   cCsd}tjd|d}d}|j|jdd|d}|j|jdd|d}|j|jd d|dS( NcSst|ts"td|ng}xk|j|j|j!D]S}y"|jdtjt |Wq?t k r|jdt |q?Xq?Wdj ||jfS(Nsdon't know how to handle %ru&%s;u&#%d;u( t isinstanceRt TypeErrorRRRtappendthtmlentitydefstcodepoint2nametordtKeyErrortjoin(Rtltc((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pytxmlcharnamereplacefs" stest.xmlcharnamereplaceu«ℜ» = 〈ሴ€〉s0«ℜ» = ⟨ሴ€⟩Rs$ℜ = ⟨ሴ€⟩slatin-1sℜ = ⟨ሴ⟩s iso-8859-15(tcodecstregister_errorRR(RR2tsintsout((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_xmlcharnamereplacebs  cCsd}tjd|d}d}|j|jdd|d}|j|jdd|d}|j|jd d|dS( NcSst|ts"td|ng}xA|j|j|j!D])}|jtj|dt |q?Wddj ||jfS(Nsdon't know how to handle %ru0x%xu %su, ( R(RR)RRRR*t unicodedatatnameR-R/(RR0R1((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pytuninamereplaces '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(R3R4RR(RR:R5R6((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_uninamereplace|s  cCsd}tjdkr+|ttj7}nd}tjdkrT|dtj7}n|j|jdd|d}tjdkr|dtj7}n|j|jdd|d }tjdkr|dtj7}n|j|jd d|dS( Nu a¬ሴ€耀isa\xac\u1234\u20ac\u8000s\U%08xRtbackslashreplacesa\u1234\u20ac\u8000slatin-1sa\u1234\u8000s iso-8859-15(tsyst maxunicodetunichrRR(RR5R6((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_backslashescapescCsdd}tjd|d}d}|j|jdd|d}|jt|jdddS(NcSs]t|ts"td|n|j|j|jd!dkrSd|jdfS|dS(Nsdon't know how to handle %risu(R(RR)RR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt relaxedutf8s  stest.relaxedutf8t abcüu abcüsutf-8s(R3R4Rtdecodet assertRaisesR(RRAR5R6((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_decoding_callbackss cCs!tgdD]"}t|d|jf^q }d}d}|jtj|d|d|d}|jttj|d|d|td RR3R4(RRT((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_decodeunicodeinternals  cCsd}tjd|d}tjd|d}|j|jddd|j|jddd|jd jd dd |jd jd dd |jtjddidtd6dd|jdjddd|jdjddddS(NcSst|t r3t|t r3td|ngt|j|jD]}dt|j|^qI}ddj ||jfS(Nsdon't know how to handle %ru<%d>u[%s]u( R(RRR)txrangeRRR-RR/(RRR0((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pythandler1s 9s test.handler1cSsyt|ts"td|ngt|j|jD]}dt|j|^q8}ddj||jdfS(Nsdon't know how to handle %ru<%d>u[%s]ui( R(RR)RWRRR-RR/(RRR0((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pythandler2s9s test.handler2tRu[<129>][<128>][<255>]u[<129>][<128>]s \u3042\u3xxxsunicode-escapeuあ[<92><117><51>]xxxs \u3042\u3xxuあ[<92><117><51>]xxtabcuztaiu z[<98>][<99>]ugüßrkug[<252><223>]rkugüßu g[<252><223>](R3R4RRCtcharmap_decodeR-R(RRXRYR((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_callbackss4  #c Csdddddg}x+|D]#}tjd|tj|qWd}|g|D]}d|^qS7}xogdD]}||^qtD]P}xGdD]?}x6|D].}y|j||Wqtk rqXqWqWqWdS(NRHRURLRR<stest.iuxuあuaäRslatin-1s iso-8859-1s iso-8859-15sutf-8sutf-7sutf-16sutf-32(uxuあuaä(sasciislatin-1s iso-8859-1s iso-8859-15sutf-8sutf-7sutf-16sutf-32(R3R4t lookup_errorRRP(RterrorsterrR0Rtunitenc((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_longstrings3s   !!$   c Cs|jt||d |jt||dgdddddg}xtt|D]}x|D]}t|t||krqfng}xGtt|D]3}||kr|j|q|j||qW|jt||qfWqYW||} |jt| |dS(Nistoo muchtspamueggsi*g?( RDR)tNoneRWRttypeR*Rtstr( RtexctypetargsR"t wrongargstitwrongargtcallargstjR((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pytcheck_exceptionobjectargsFs   cCs|jtdddddgd|jtdddddgd|jtdd d ddgd |jtdd d ddgd |jtddd ddgdtjdkr|jtddd 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(RpRR=R>(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_unicodeencodeerror_s2cCsH|jtdddddgd|jtdddddgddS( NRsgrkiiRqs8'ascii' codec can't decode byte 0xfc in position 1: ouchis6'ascii' codec can't decode bytes in position 1-2: ouch(RpR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_unicodedecodeerrorscCs|jtddddgd|jtddddgd|jtddddgd tjd kr|jtd dddgd n|jtddd dgddS(NugürkiiRqs5can'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(RpRR=R>(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_unicodetranslateerrors* c Cs^|jttjd|jttjtd|jttjtddddddS(Ni*RqRuあii(RDR)R3t strict_errorst ExceptionR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_badandgoodstrictexceptionss cCs|jttjd|jttjtd|jtjtdddddd |jtjtdddddd |jtjtddddd dS( Ni*RqRuあiius(ui(ui(ui( RDR)R3t ignore_errorsRPRRRR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_badandgoodignoreexceptionss" cCs|jttjd|jttjtd|jttjt|jttjt|jtjtdddddd |jtjt dddddd |jtjt ddddd dS( Ni*RqRuあiiu?su�(u?i(u�i(u�i( RDR)R3treplace_errorsRPRRRRRR(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt test_badandgoodreplaceexceptionss2   c Cs|jttjd|jttjtd|jttjtddddd|jttjtddddd}djd|D}|jtjt d|dt |ddjd|Dt |fdS(Ni*RqRsiiuあi i icidiii'i'iB0Rcss|]}t|VqdS(N(R?(t.0R1((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pys sucss|]}dt|VqdS(u&#%d;N(R-(R|R1((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pys s( iii i icidiii'i'iB0( RDR)R3txmlcharrefreplace_errorsRPRRR/RRR(RtcsR((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt*test_badandgoodxmlcharrefreplaceexceptionss, c Cs|jttjd|jttjtd|jttjtddddd|jttjtdddd|jtjtdddddd|jtjtdd dddd|jtjtdd dddd|jtjtdd dddd|jtjtddddddt j dkr|jtjtdddddd|jtjtddddddndS(Ni*RqRsiiuあ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( RDR)R3tbackslashreplace_errorsRPRRRRR=R>(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt)test_badandgoodbackslashreplaceexceptionssL c sdddddddddf }d}x|D]tjd fd x'|D]}|jtd j|d qTWx9ddddfD]%\}}|jt|j|d qWq.WdS( Ni*ufooiiitfooRslatin-1s iso-8859-1s iso-8859-15stest.badhandlercsS(N((tx(tres(s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt[suあssutf-8sutf-7s+x-sunicode-internalt(iii(ufooii(ufooN(ufoo(Rii(RN(R(sasciislatin-1s iso-8859-1s iso-8859-15(sasciis(sutf-8s(sutf-7s+x-(sunicode-internals(RfR3R4RDR)RRC(RtresultstencsRctbytes((Rs4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_badhandlerresultsVs(!   cCs|jtjtjd|jtjtjd|jtjtjd|jtjtjd|jtjtjddS(NRHRURR<(RR3RuR_RxR}R(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt test_lookuppscCsGd}tjd|x'dD]}|jtdj|dq WdS(NcSs0t|trd|jfStd|dS(Nu䉂sdon't know how to handle %r(R(RRR)(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt unencrepl~s stest.unencreplhandlerRs iso-8859-1s iso-8859-15u䉂(sasciis iso-8859-1s iso-8859-15(R3R4RDRR(RRRc((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_unencodablereplacement}s  cCs3|jttjd|jttjdddS(Ni*s test.dummy(RDR)R3R4(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_badregistercallscCs|jttjdS(N(RDR)R3R_(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_badlookupcallscCs|jttjddS(Ns test.unknown(RDt LookupErrorR3R_(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_unknownhandlersc Csd}tjd kr"|d7}ndjg|D]}t|^q/}tjdtjx/dD]'}xdD]}|j||qqWqdWdS(Niii i2idiiii'iPii i@Bustest.xmlcharrefreplaceRs iso-8859-15R( iii i2idiiii'iP(ii i@B(sasciis iso-8859-15(sxmlcharrefreplacestest.xmlcharrefreplace(R=R>R/R?R3R4R}R(RtvRRRcRa((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_xmlcharrefvaluess (  cCs|jtdjddd}tjd||jtdjdd|jtdjdd|jtdjdd|jtd jdd|jtd jdd|jtd jd dd }tjd||jtdjddt}tjd|jd|_|j djdddd|_|j djdddd|_|jt djddd|_|j djdddd|_|j djdddd|_|jt djddd|_|j djd dddt fdY}|jt tj ddidd6|jttj dd||jttj ddid d6dS(!NsRs test.unknowncSsdS(Ni*((R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pytbaddecodereturn1sstest.baddecodereturn1s\sunicode-escapes\x0s\x0ys \Uffffeeees\uyyyysraw-unicode-escapecSsdS(Nu?(u?N(Rf(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pytbaddecodereturn2sstest.baddecodereturn2stest.posreturnis0u0iuiiiuiis\uyyyy0tDcBseZdZRS(cSs tdS(N(t ValueError(Rtkey((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt __getitem__s(R R R(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyRsRHii(RDRRCR3R4R)RR RRt IndexErrorRMRPR]RfR(RRRthandlerR((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_decodehelpers@          #c Cs |jtdjddd}tjd||jtdjddd}tjd||jtdjddt}tjd|jd |_|j d jddd d |_|j d jddd d|_|jt d jddd|_|j d jddd d|_|j d jdddd|_|jt d jddd|_dt fdY}xsdD]k}|jt tj d|idd6|jttj d|||jttj d|idd6qWdS(NuÿRs test.unknowncSsdS(Ni*((R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pytbadencodereturn1sstest.badencodereturn1cSsdS(Nu?(u?N(Rf(R((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pytbadencodereturn2sstest.badencodereturn2stest.posreturniuÿ0s0isiiisiiRcBseZdZRS(cSs tdS(N(R(RR((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyRs(R R R(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyRsRHRLRR<ii,(sstrictsreplacesxmlcharrefreplacesbackslashreplacestest.posreturn(RDRRR3R4R)RR RRRRMRPRORfR(RRRRRRa((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_encodehelpers6           #cCstdtfdY}|jtdj||jtdjitjdd6|jtdjidd6dS(NRcBseZdZRS(cSs tdS(N(R(RR((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR!s(R R R(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR suÿii((RMRDRt translateR)R=R>(RR((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_translatehelpers$cCsfidtd6dtd6dtd6dtd6}x%dD]}d |}|j|qAWdS(Nu&t&u<tu"t"ii idiu abcghi(ii idi(R-R(RRQtnttext((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyttest_bug828737's     ( R R R R'R7R;R@RERRRVR^RdRpRrRsRtRwRyR{RRRRRRRRRRRRR(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyR?s<         6   !    % " 7      ; 5 cCstjjtdS(N(ttestt test_supportt run_unittestR(((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyt test_main3st__main__(ttest.test_supportRtunittestR=R3R+R8RRR RRRRRRRRtTestCaseRRR (((s4/usr/local/lib/python2.7/test/test_codeccallbacks.pyts0