ÿØÿà JFIF    ÿÛ „ !.%+&8&+/1555$;@;4?.451 4,$,44444444444414444444444444444444444444444444444444ÿÀ  á á" ÿÄ     ÿÄ ?    !1AQaq"2‘¡±ÁðBRbrÑá#‚’¢²3S CñÿÄ   ÿÄ !    !1QAa‘2ÿÚ   ? 5˜Z¯V¦cø)›t/? z¨±>Õ5€¶‹Á¤·¼z¼Ü¬+ñ®v¤¨_ˆR­BFn©—˜ý®ç̝P8gýt·ÉSTŦˆìät?þé¼íìN/Þa)ì–í6ô… Ï¿øÃj´¿KÇü]ÿ ªô¹-eKànëÕHTx}ýSÜ›ÿ ”7Ø×&µ<¦  ¥ÑO¶[Ù¯ä¨ÞÃÿ PZ-¬;#õ|•oaÿ ©CìÞz3˜öː/¤­ñTûIØ}š^ mÓ%ªxˆ¥ÉŸu=Z+ISe¿45™¼u;ú&WØ÷€æßQ™®{|íx*TC“#ZŠìZ§²‹ 6pv…³¿¡äª*áZÐ%ÒOáˆo"x«OHk w±æ+¬V(kMúŸ5Vö«$ ÁrÏbàb57/luR ¸ÑÛj Òµì`Мq­û žICÀÊ•©4€Âcà¨Ï€O´<èÐ:›ù(Ë^L8þ‘ÍÌ#¸Ð_Ì©ÙK(Öz 4¬û+¸;ü’V’84‘¬ÃŽ:[â‡ÔÌáõp¢~§ªlæ£ö{®G>J¼"°‡7¯ÆÉèßû ‹É‹§ÁòÃýâßî ^ƾÙõ‹×óH#«LP½ïX=xÑÍ$|W?•~• îëÔ©ª‹ {ÝT…Kÿ ”hûâá)J*ö˜–ÔU;iÇ€/ ÆþjóZ\ýwØ=Ìm ºèËL9 ýèÆð/¨’¥öo=nË.%Îì ŽÕ¯È|{Oj²ƒE6e/ßdÄõ²Ìâ1O®ò×TsəԸhOMýíMˆ¿¼H˜l²,7Â¥#MF/Úf°Ö½± ¸–dr‹NýÊ íjqx{œÉ ä-È ¦ øÄër¨q°ð †nцýÑÄÆ’mä…n<0È™;ÁÝá¯ÁZƒ7FÀmì­ É&9ˆîéi¶ùN§Y• ÃZãAâ?•‡©‰ , ó¾IŸŠc1 4â&y­&pŠ­6;M À 0¹qç»p.á …ŸÅáK@%6·y6ƒ‰3?”úºŽ‰éX5ªPT §µ!=Mž«Ú½‹ÅgÂSâÉaþÓoö–¯ÁÔìR>5éÿ üs¶ÆUcÌ kÇR ]ÿ ù¬¼«VŽ;Â|‡~¢¦”ÏŰæ {L™Õ°Óv¹ò¸írޡעCÃ!íVÕ {¶»sŒNPg/ "uÕbkm²“$ďå¿é¹§°½æz¯6 †s¿!s–wÚÝ“™Œ °.ûj>·+™Òa…©Œ&rÝÎtÛë긪Ît’LAVp%c Úý[ÄzJ¾ÇàXXç@˜ó<êL]·T˜¾¥1Ó©V‡g´æ½¦Ý@¹óø!_@´ÞâSÁ —S3™•& ]@JHÚý©ZŽ €×æÔr»Áf!‡yÞ4Mv*èÓã_{‘åóUuљØ«Oïé*®EvÑ Œ÷‡U \"㪒ÍK+À 4“M¡ï:0¥5í!'<@î´”>Ç»&Z–ïCCV˜Ì5Šo&îhè.žû |ÓK©h$s6KìŒëã)¹hI¦GïOåóI;ììü#É$Š0…Ææ¥TØ.5­¾gn´ “ÂÖ\:hœ89G)J@„}œ:’Ò{/Š"¦_Æ×7Æ3VÇŠÊa]ÚŒÙ€Ä–=®uÁßâACZƒ§§£ Qnâ:«,×{tyø¬iÛcœÜÄ€H½ÄÍCk´÷šß .W'b¤Íåh]÷€=,Žv×cÚEÚHXJX¶îo¨FÒtèöŸ>ªª6[J®Fµ£sGÁeqõfe\íjÒÐïÄÐGˆe1Ø‹.Ø”‘Ëuø Y­ˆÜ ŽG|zùªüMpDnQWÄ”%JŠ™)â*p@Örš«ÕT2Ð%ˆG#ª„ ·¤!°ŸOTÂT¸aÚ%4&h™LµšØüÐ.F¿²ÐÞ_Ç‚¾ÅÃaÜ÷09Æ q€öy˜v‡85õN÷]¬äѼóS{°_MެúÔ#°Ç¸0åÞè2ëôPcvÆw9®ií1Ä8F™˜à‰´+‰Ik1òÝ7“Ñ×ÒsÝ\x‚h`ÞÑ`ó"|µEcý£n˜h`}GÞ !±ù²Ápü²ß6 0ïi󜵩SÈÇ7˜-ÕURO˜¦´f$ªž-Í6(œ}<„ éc øs]ŽŽ„*—¾ ìdŽ„)méª\¿êÎIg¾ØÞ~I#C/¼¼´EÁÈŽi8“©õådô·>euä ƒ'Ê×लR1ÉJE1ÐAát`t;ÇР%Ý<‡¥„ÍÆ`×Oyó)õiI€ñQaŸ4Ûù\áàaÃÔ¹HÃu¹*k€¦<„e S‡&õÏ B!ŽhüÞ`yj}mªf×\¿ Ç~æ­9‡û\՞Ǖg²1Žû5V7 !àöšm° c`ܬøÇìµÒ'P"?…´Ö,"§^•õލsÔ)6˜sæéÍR¼ ò|Sl”‹7 nPW Gòú÷½§O¯‡„l¡kSÞŒr½PÊ@æ¢pŽ-mÿ #Ÿ˜Àº¶Áä¦;ïÔæ$1££`“Õ>„—·ž)ßð³ñ#Ï Ô$¶œ‰ÊE‹À;÷º ¯«P:Ñ”8–IÊtpÞ3ª“>ê“þës4ò2OÏÕ­±zô†Õ§‰.÷ä¸;¿˜“'œ›žª}«Œ{ª±Ì 9ÔóÞÕ‡0 $íWV3Üì¬ —@kÝ4@¿r¼±½¬™›?øØæ´'Áé®CË3-g$˜ö‡×auÚi´Žp/êÛ æF›Ú2v‹ã¿¿,nB1̨ƃqÞa5͝@&Æû“él÷ \C²½UÍc ¯k×¢U ÖéQå™—-r wô ÞÏ<Ò=&=ÿ Ôê Òêˈt,i—;LîÜ á¸*ÚÃ1$êL•LÍ <É)ýÐà’ ;F™{ƒ™˜€&'}‚ãÄK`¡ÞT@I;®žZóè‚s’7®°›+§O­Åq©é»²9<Ô J ¼9O’HL»Ùïì¸rk¼Ž_ý‘TŸu[²ßÚŒ·ü÷B%¯E ŸÔX5êO´ Ç•€’I0 ÉJX` ñ¹õ%;µŸD‘«´€àwÒ™U ûئžÖö\×®×´8 ½‡ºÐÆÓ§?Àkmœ=;d5*@-ì0F Rªýš[Ü6âö̃ڸr*KA9· u*µæ£?U¸Âêí†8@¦X4 e-ò„0s{ HâUpU?¼mñRa°®a%Ð'tÉ×’\¾ÊÉ]t›h>·(Ë@R¼¡Ãt h}’O÷au<+nT…Ö…MӐ??Óe95 q>í/;&JSû °¯ÊéÞ øƒ*Ã2½Ài&:nôUl=¾¿5eˆ3”ñc|Ú2V”>„»&eE;«ÚäC p¢Û úy 9š[ŒÌx¼擼A&DåÒ¯ˆ¤ÀÌ;"˜ ÏQä¸åhÊ}Ûq«Û0WžÒ|»€ø®öCm5•\ÇÀ§Pe3£]0ÃàLDÉ‰1øªxjgwT‚÷¿LΨK‹›ùs—xˆÜ±µ kæ¸f‰‰ÜGk/LÛØ6d9ò¶ùA{ƒA3š/¬D¬khÓk‰`˜"㯒r¿±Óã jx‡°e}<Ñø\3y:'À•/h½Í€Ç4~g ?Û(¼]v‘ªlKÎâ~?O‚W%{Ì:“'©úNq¾›úo(X’¥¯ˆ nFê{Ç€ü?º'ë ø‹ì Þ09ŒÌç9Æ —ËC`j@ÓÄ(+a‹un¸#ÂꟋ{K`‘ÑÍÍ'à´»/Û,KW;Þ4²þð ï Nm|~fGÏ(…³Ã)«1ö­Õ ¥‡¨©ƒÃ™ü-s=à=U66Ï«Ýc蓦W¹íž®›nÔ%êÇìŒ<#Ü×84ån®Ð ÒåOC` ñânÑs‡¢ç 1õ%Îhì½Ã½® e:ݼUZo™`  ÅZŸŒÊ«ê1ÏÄo$q¹Þ€©ˆhÐÉä¯ñ[!…Ú˜àJ:x2$Íß&PåT£6ç— ‡Í*4Ýšçjÿ ‰É nófÐ ó(L5C•åÆ\rMÒ@ò }y-W}™üýVù—ú¢=Ù”c®‘< M ž ´Phr ¦©TD ‘ù.$´÷O‡‘V2Æò.=IUŒ=ž‡â¬i™aþÓåÙ?òUø'ØÖ•.~* šTŒ!•-×áºTâ®ä#õü'´ eýlYÅÓeÕKÂrT"CÚ@u!Óxƒ{š3€}1¿(r}%«nËamjÑ%ÑNEò v ˜à  σöK³,*º.àzù¨™Ó ÚçâU¦*¿ 9{%Ö¹ njûdaXöb) kÛÆ±ûÓ\°M7ˆÂ=û›ç¿Ã‚­V»Cg–8ÙêE- j)k$º`Ã-ùEýeBÆÇ]c¡°ñty&Òd0nõ'¡W+ƒ*|–øµFa\GQªEAÔp5\Ǽ·¼Ç8·õ -â§Ú[ ‡ uZeÖ 3}×d'+¹:ð+K†Û®s!Ï$úe€<Û”x)1»a­¡LC]¸µík…ÚàA»AYº{†ªS[¦5HÒ7ù --,ísòDØ€èk ÞÀîÜ ò@â( ËNˆë›4ô½•/¦o‡€Û7 ê•ÆêòðÜy'Án½µ á˜ݦ ndeo…[ì¶Ê,¥R³Ä=À±—–ß;£™´ñSâ*g§”ïaið‘Jå~™ÓÞ ß³Õ¢»8x埒²52>AÊb&-÷\7´éÄù€T˜,w;3{ï˜k…à¹ÄqÀ«œ{€\ ˆ¾[´¨јr &Úé„Ívˆ±8†¿]|¬ņ4I×pÞS1ÈÖz‰#Ìv‡G!YNògñ:màTz¢Ý1ô©^O=~ë|5Bã™ç•¼µõ•bÆ@úÕS¬ÈŒ#¬zünrŸ û” Z²•èðV"ÁHÚý©wÝ €7¼Ìu1hÑa3Éä û f$o¿É ™Ú›ÝçnpÒ3äÌ3†Í§,Äï]$‰/pê †«À¼¸e9­Æê_C]žƒ·ý·frÁN«, E=›Çq -‰öŒ:aÏ¿±í&£Í:-} 84‘ÿ eƒQÑeëSsuiA ³g㟥ú£?ÿ ʼn*”“÷aühe:ÊWa@ÒÞk±eØ] F Ô—r.åä˜ @ö¥ªZoÐýYL·¥S²G/‡ñ <~*ZÆ´è>JlòàÛÆ½ÿ 窘ìGN¢:I®KšJp/`íIÁÀõ#Ä-€ö­šµŒoF4|ÆQØÆ@Ì|£Ô…¢À{9˜è½Üó›€ôYÒÎYsið;ís¤€à²ˆ‚4qÉVŒI$ ‰"° æµ8cXGjœˏ¡Aâý•ËÜ¢ûï e·çLx']á"oÅÎê3¯Ç—¹”ó0nå‚âg{Œñ> S´˜îè°g238‚ãköÝfÚd´6Ò€;ò÷±¢™¼›º ¢Æ'¥Ðx'e¬ç ]bÈÆV¢ó‹kýBO ðÊâ$Ÿ!×T 3Mýמ žìٍàÌü‘8÷€àæØ8æ©6‰©L´«…oãpð„~Çk‰!ñ;‹”ÛžÍ àž±z Ÿôû øŸÝužÏ;ÿ #|u6™Þ¬ÚˆÐõA4¶â|ôl|Ê2ŽÇ¤ÝÅÇY.<#Aí.k§hóF‚”Y; M½Ö4hŸ4&›­¿tès´%FìL¥£Ãk‰ÇT¤haÁ¤ÚxfÉ`ÑìË›>i 3t‚:,–+^÷´–{Û–Nxi"x‘Ûg î¨>¥Õ܁ùZH,2Û“:8xÊ¢Çí9.É-Ìâã-=çjwµS˜dütžçwýGòú®®ûº_ˆýx$–¡ãøO EÚÛÏ÷R„×w+3£Á£öUMyR²¹âŒ°š›¸Ñãò9§Ó_Dl+Ùßc›úšGÅÌc†Ž!Ko=¶.‘Îÿ c²(2®V mª.ÿ ¹B›¹å ù„öŸSV>™ü¯$y:G¢Z×àøúdî¹û­·ýÇ´:•c LÍõi_‹ö+ÎæGÊè>OŠ•äž´§Þ{X}¨1ÚTc›»Qþ•êô°t¿OP?eæ~É{5]•ÙR£r5†nZ\ã@ &îJõ ¾àC°þV>fé¥/ü5ñÊIº_é5 ;e­h<@ Ä&æÃëE%;X,ÒãÆÞ`Oò¦kŸm#˜!ÀyÄ¢| óLšò¥Ä` ¶R=|ÈCâh5ò3DˆïF†ðÒ#ÅìÛœ?¸yhBãœí ZxßÎÄhºRK„`Þödvײ™ÀÈÑÒgŒuY w³%†ƒÓzõ ÖÏp‚dH®¦A´ù§»ÓÇMæ~)ˆð‡û:ù&Ä •vGD´À n ݇¼Ö8Fö óáà£~Ë¥x`oK|Ä?fxiØü%pìR>éò+Û±éÎ>núlFŤ'tq8LZÏvÃ?„¡ß±È⽆¯³íü@x|PöUäèØã¡ð‚ŒAìÏ"vÍwóŸÍ{ ý0.z È•Ö{,N¡£¡ŸKÕÙž>Ýœþ ÍÀ°<×EA!Å‚D™IúOÍ¡>ôG}Â` ÍßkÜL™Ž Þð™ {IøF²¹òQ3&!ÃÂÞz.d&Ï-sH¸,Ôõ˜ŽP€ 77ˆÝ¼ÊëÜw =cÕ Ú,ØÐ5ÎYÐ)ì´öœgŒ[¤ßv㙑8心>h]§µháYš£²ºÑ.{Ï7Sð•?´~×SÃKýJÛ˜ ™Íäiúu<µX¶1õ^kâçIÑ£sZ4h>j*ÔšD:4­¿_ ÷¸ Õxæÿ ¸?Mù _•­ÊÐ ä ÷ý ÑwL œ­ïnTkÛUÍN©ë:¦fV ¶ÜÔÜMªÅâA½–¿R×TXš-%iTÊT•‡Ù‚JôϐZxWÑè‰f‰òG º ×Õû2aZ7OU3[“×AT–ÞŒ…-‘¤”Ì ì&(ˆ¿­•ƒkï’:ðY¦W‘ Å)“†‘˜³Åtcø˜ñTÂwÚÇ4|üLÇªí–v- qˆèU qPE.†â‘˜µ Æ,ÐÅs]8¾„oúÑ i>ÜxxÈó)ƒ ´æÁâØ$À‰vžŸf$Ž |ãw;ÀÁIJ»b` {¦Ó¤Ú$©YÀ‘n@Óïž«9J¼êG m¤ ܯ¹ÌW4€ÐÒÅÛ‡#褕Ÿn-?í|с¥÷Ú¹¬'´ÞÜ9ÓK `hê£SÄSà?7—Wí_´…óB›»:=Ãïq`<8ñÓŒÑlú2d¬ê³£hÖ[l|$vÝro~'R®‰§°ñmY ͧäP |PUª¹·:3Œ[Û{Xÿ ºâ@‚W–Äé u‚ ¯´*=íή.pûÒdt @G‰¬ s¸ ëÉücr ÞæÑ¨Ê@>¤¢Ö±. Þ'¯°ÌME[YéïĵÂCå½ Ué©Áû'Ê9%eÔðNU”ë‘ÌsD3/®+UI˜9h.WC”빓$#:pz:YÓ ¿xž* ³$Í +$kñAŠ‹†¢ Uê>¸)_š¬÷©ßAÂÔb9ÇU ¯¾á•9¯ÏÏ÷O÷¼¼Fähal1‰3Ì[Ïr•´UCksNÐ] R‘¸¥H+§Šé†c©vÖÞ0iÓ76s†î!§=ß ¼~Ô'°Ãmäoäš³ªøi1úÉ)³yV8 CLÄØÁ‘WYïi€H6ÖÑiámø^ÈY´°Ñ7¥Û*—Ñ©L«Qƒï—Ùrÿ ›£Ð*š¸ˆL©ˆ$ˆ ÷¾D§9È®«qbqC)–ˆïv´çñsÑVT­Ø, <àïºÀO«Jý·õ àfPìð .wFšir´þ’2_Y *Æ€x\« ì€9š@ Ž|F⇥ˆkZ@hÖÄ0t¿-<“‹qµ¾*ZL¤Ú)&BJpÓF5=$„at*Zš$’ÑtdûÝRI1 2މ$€$I$#‰SÞ’Hë¬ï;Á$¡t$’`<(ñÇt)$‡Ð.Êf¢X’Kt=Éé$‚ˆªè¢oÝëòI%Rgcª÷ŠyI%¡‰ÿ !ñ)´õ $¤ Ô’IIGÿÙa 3gA@sddlZddlZddlZddlZddlZddlZddlZddlZddlm Z m Z m Z m Z m Z mZmZmZmZmZmZddlmZGdddeZGdddeZGdd d eZGd d d ejZGd d d ejZedkredS)N) TESTFNcaptured_stderrcheck_impl_detailcheck_warnings cpython_only gc_collect no_tracingunlink import_module script_helperSuppressCrashReport)supportc@seZdZddZdS)NaiveExceptioncCs ||_dSNxselfrr3/opt/python39/lib/python3.9/test/test_exceptions.py__init__szNaiveException.__init__N__name__ __module__ __qualname__rrrrrrsrc@seZdZdZddZdS)SlottedNaiveExceptionrcCs ||_dSrrrrrrrszSlottedNaiveException.__init__N)rrr __slots__rrrrrrsrc@seZdZddZdS)BrokenStrExceptioncCs tddS)Nzstr() is broken) Exceptionrrrr__str__szBrokenStrException.__str__N)rrrr rrrrrsrc@sLeZdZddZddZddZddZdd d Zd d ZddZ e ddZ ddZ e ejdkdddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zed(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Z d4d5Z!d6d7Z"d8d9Z#d:d;Z$dd?Z&d@dAZ'dBdCZ(dDdEZ)dFdGZ*dHdIZ+dJdKZ,dLdMZ-dNdOZ.dPdQZ/dRdSZ0dTdUZ1dVdWZ2dXdYZ3edZd[Z4e d\d]Z5e d^d_Z6e d`daZ7dbdcZ8e dddeZ9e dfdgZ:e dhdiZ;e djdkZdpdqZ?drdsZ@e dtduZAdvdwZBdxdyZCdzd{ZDe d|d}d~dZEddZFdS)ExceptionTestsc Cs|j||dz |dWn,|yH}zt|}WYd}~n d}~00z |dWn,|y}zt|}WYd}~n d}~00|||||j|Wdn1s0YdS)N)excexcnameZspam)subTeststr assertEqualr)rr"r#errZbuf1Zbuf2rrr raise_catch$s   zExceptionTests.raise_catchc Cs|td|tttd|tdttd}|ttd}tj }zDzddl }| dWntytYn0W|t_ |t tn|t_ |t t0|t d|t td d|td |ttd |td g}|t|jd |tdi}|t|jd|td|td|tdzt}Wnty^Yn0|tdd}tdD]}||7}qx|td|td|tdz tdWntyYn0|td|tdztdddWnty Yn 0| d|t!d |t"d!|t"tj#d|t$d"z gd#Wnt$yjYn0|t%d$|t%t&d%|t'd&z dd}Wnt'yYn0|t(d'z dd}Wn&t(y}z WYd}~n d}~00|t)d(dS))NAttributeErrorZundefined_attributeEOFErrorwrrOSErrorzthis file does not exist ImportErrorZundefined_module IndexError KeyErrorkeyKeyboardInterrupt MemoryError NameError OverflowError RuntimeErrorRecursionError SyntaxErrorz/ IndentationErrorTabErrorz"try: 1/0 1/0 finally: pass zexeczTabError not raised SystemError SystemExit TypeErrorr ValueErroriZeroDivisionErrorrStopAsyncIteration)*r(r) assertRaisesgetattrsysr*openrclosestdinmarshalloadsr r.r/ __import__r0 __getitem__r2r4r5r6Zundefined_variabler7ranger:r;r<r?r=r>compilefailr@rAexitrBrCchrrDrrE)rfpZ savestdinrLrdummyerrr testRaising1s                              &zExceptionTests.testRaisingcs(fdd}d}||d|dddS)Nc sj||dnzt|ddWnBtyb}z*|j|krNd||jfWYd}~nd}~00dWdn1s0YdS)N)srcmsg r?expected %s, got %s"failed to get expected SyntaxError)r$rQr<rZrR)rYrZrWrrrckmsgs *z4ExceptionTests.testSyntaxErrorMessage..ckmsgzHif 1: try: continue except: passz'continue' not properly in loopz continue rrr^srrrtestSyntaxErrorMessages  z%ExceptionTests.testSyntaxErrorMessagecs^tffdd }d}||dd}||dd}||dd }||d td }||d tdS) Nc sbzt|ddWnB|yR}z*|j|kr>d||jfWYd}~nd}~00ddS)Nr[r?r\r])rQrZrR)rYrZ exceptionrWrrrr^s  *z:ExceptionTests.testSyntaxErrorMissingParens..ckmsgzprint "old style"zHMissing parentheses in call to 'print'. Did you mean print("old style")?zprint "old style",zQMissing parentheses in call to 'print'. Did you mean print("old style", end=" ")?zexec "old style"z%Missing parentheses in call to 'exec'zif True: print "No indent"zexpected an indented blockz6if True: print() exec "mixed tabs and spaces"z2inconsistent use of tabs and spaces in indentation)r<r=r>r_rrrtestSyntaxErrorMissingParenss     z+ExceptionTests.testSyntaxErrorMissingParensutf-8c Cs|j|||d|t}t|ddWdn1s>0Y||jj|||jj||jjdurt |t s| |d}| d|d}| ||jjWdn1s0YdS)N)sourcelinenooffsetr[r?replace r8)r$rFr<rQr&rbrfrgtext isinstancer%decodesplitassertIn)rrYrfrgencodingcmlinerrrchecks *   zExceptionTests.checkcCs|j}|ddddS)Nz"\ "(1 for c in I,\ \)rrrrrrrr)test_error_offset_continuation_characterssz8ExceptionTests.test_error_offset_continuation_characterscCs@|j}|ddd|ddd|ddd|d dd |d dd |d dd dd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|ddd |d!dd|d"dd|d#dd|d$ddd%d|d&d'd |d(dd|d)dd|d*d+trNd+nd,|d-dd.|d/dd|d0dd|d1dd|d2dd|d3dd|d4dd|d5dd|d6dd|d7dd|d8dd.|d9dd|d:dd|d;dd.|ddd.dS)?Nzdef fact(x): return x! r1z1 + r8z def spam(): print(1) print(2)rszPython = "Python" +uPython = "Ṕýţĥòñ" +s+# -*- coding: cp1251 -*- Python = "ϳ" +cp1251)rosPython = "ϳ" +zx = "azlambda x: x = 2z f{a + b + c}zclass foo:return 1 zdef f(): continuezdef f(): breakz4try: pass except: pass except ValueError: passz(0x+1)zx = 0xIz0010 + 2z x = 32e-+4zx = 0o9uα = 0xIsα = 0xIs## -*- coding: iso8859-7 -*- = 0xIz iso8859-7sif 1: def foo(): ''' def bar(): pass def baz(): '''quux''' z"pass pass pass (1+) pass pass passz(1+)s#coding: utf8 print('我') rz!x = [(yield i) for i in range(3)]zdef f(): from _ import *zdef f(x, x): passzdef f(x): nonlocal xzdef f(x): x = 1 global xz nonlocal xz def f(): global x nonlocal xz#from __future__ import doesnt_existzfrom __future__ import bracesz#x=1 from __future__ import divisionzfoo(1=2)zdef f(): x, y: intz[*x for x in xs]zfoo(x for x in range(10), 100)z (yield i) = 2zdef f(*): passzfor 1 in []: pass)rrr Zuse_old_parserrurrrtestSyntaxErrorOffsetsh                                     z$ExceptionTests.testSyntaxErrorOffsetcsjGdddtGdddfdd}fdd}fd d }tjd sf|||dS) Nc@seZdZddZdS)z9ExceptionTests.testSettingException..BadExceptioncSs tddS)Nzcan't instantiate BadException)r:)Zself_rrrrszBExceptionTests.testSettingException..BadException.__init__Nrrrrr BadExceptionsrc@s eZdZdS)z=ExceptionTests.testSettingException..InvalidExceptionNrrrrrrrInvalidExceptionsrc sddl}z|dWnZtyr}zBt\}}}|jj}|jd |j dWYd}~nd}~00 ddS)Nrr8 test_capi1test_exceptions.pyExpected exception) _testcapiraise_exceptionrBrHexc_infotb_framef_coder&co_name assertTrue co_filenameendswithrR)rr'r"tbcorrrrrs(z7ExceptionTests.testSettingException..test_capi1c sddl}z|dWnrty}zZt\}}}|jj}|jd |j d|jj j}|jdWYd}~nd}~00 ddS)Nrrr test_capi2r)rrr:rHrrrr&rrrrf_backrR)rr'r"rrZco2rrrr"s $z7ExceptionTests.testSettingException..test_capi2csddl}t|jddS)Nrr8)rrFr@r)r)rrrr test_capi30s z7ExceptionTests.testSettingException..test_capi3java)rrHplatform startswith)rrrrr)rrrrtestSettingException s  z#ExceptionTests.testSettingExceptioncCsztWntyYn0|tt|ttdd|ttdddtddd}||jd||jd|t|dtd ddd }||jd ||jd ||jd||j d||j d|t|d td ddd}||jd ||jd||jd||j d||j d|t|dtdd}||jd||jd||jd||j d||j ddS)NiZ1001messagez[Errno 1001] messagerfoobarz[Errno 9] foo: 'bar'rrsrwz[WinError 3] foo: 'bar'rtz[WinError 1001] foo) WindowsErrorr6assertIsr.r&r%errnowinerrorstrerrorfilename filename2)rr+rrrtest_WindowsError:sB    z ExceptionTests.test_WindowsErrorwin32ztest specific to WindowscCsLtd}d}|td||j|Wdn1s>0YdS)z:Should fill in unknown error code in Windows error messagectypeslcs@zWindows Error 0x%xN)r assertRaisesRegexr.Z pythonapiZPyErr_SetFromWindowsErr)rrcoderrrtest_windows_messageasz#ExceptionTests.test_windows_messagecCs tdddiftdddiftdddiftdddiftddddftdddddddftd d dddd dftd d d ddd dftd d d ddftddddddftdddddddftddddddddftdddddddddftddd ddddd!d"ftd#dd#dddddd$ftdddiftd%d%d&d'd(d)d*ftd&td+d(dd)fd&td+d(dd)fd&d+d(d)d*ftd,d,d&d+d(d)d*ftd-d-d.d/d(dd0ft dddd1ft dddd1fg}z"| t dddddddd2fWnt yYn0|D] \}}}z ||}Wn$td3||ftjd4Yn0t|jd5sD|t|jd6t|}|D]:}t||}|t|t||d7|||||fqPtfD]n} t| jdD]X} | || }| |} |D]6}tt| |} t||} || | d8||fqqqqdS)9Nrargs)r8)r)rr8r)rr)rrrrr)rrr)rrbazr)rrrNquuxr)rrr)errnoStr strErrorStr filenameStr)rrrrr)rrrr)r8rr)r8rr8)rrrrr)rZrjrrfrgprint_file_and_line)msgStrr)rrjrrZrrfrg)r)r linenoStr offsetStrtextStrrrr)rgrjrrrZrrf)rrrrrZprint_file_and_lineStr)rjrrrZrrfrg)asciiarr8ordinal not in rangerrrr)rroobjectstartreason)rrrr8r)あrr8ouchrr)rrrrend)rr)rrrrrrz exc=%r, args=%r)filerbuiltinsz%r.%s == %r, expected %rzpickled "%r", attribute "%s) BaseExceptionrAr.r< UnicodeErrorUnicodeEncodeErrorUnicodeDecodeError bytearrayUnicodeTranslateErrorrrappendrr6printrHstderrtyperrr&rr%rGreprpicklerPHIGHEST_PROTOCOLdumpsrM)rZ exceptionListr"rZexpectedrWr`Z checkArgNamevaluepprotocolnewZgotZwantrrrtestAttributesks"     O        zExceptionTests.testAttributescCsz tdWntd}Yn0t|}||t||j|td|}||t||j|Gdddt}||}|||||j|dS)Nrxrwrc@s eZdZdS)z5ExceptionTests.testWithTraceback..MyExceptionNrrrrr MyExceptionsr) r0rHrrwith_tracebackassertIsInstancer& __traceback__r)rrrWrrrrtestWithTracebacks      z ExceptionTests.testWithTracebackc CsPz dt_Wn4ty@}z|dt|WYd}~nd}~00|ddS)Nrz!__traceback__ must be a tracebackzNo exception raised)rrrBrnr%rRrrWrrrtestInvalidTracebacks  &z#ExceptionTests.testInvalidTracebackcCsP|tttdd|tttd|tttdd|tttddS)N __cause__r8 __context__)rFrBsetattrrdelattrrrrrtestInvalidAttrsszExceptionTests.testInvalidAttrscCsJz tdWntd}Yn0t}||_d|_||jddS)Nrxrw)r0rHrrrr&)rrrWrrrtestNoneClearsTracebackAttr s z*ExceptionTests.testNoneClearsTracebackAttrcCsnt}||j||jt}||j||jGdddt}|}||j||jdS)Nc@s eZdZdS)z5ExceptionTests.testChainingAttrs..MyExceptionNrrrrrr sr)r assertIsNonerrrBr.)rrWrrrrtestChainingAttrss     z ExceptionTests.testChainingAttrsc Csz tWn(ty2}z|}WYd}~n d}~00||j||j||jt|_d|_||jt||j||jd|_||jdS)NF) rrrrZ assertFalse__suppress_context__r6rr)rr"rWrrrtestChainingDescriptors's      z&ExceptionTests.testChainingDescriptorscCs<|jttddGdddt}|dd}||jddS)Nr8)rc@seZdZddZdS)z8ExceptionTests.testKeywordArgs..DerivedExceptioncSst|||_dSr)rr fancy_arg)rrrrrr?s zAExceptionTests.testKeywordArgs..DerivedException.__init__NrrrrrDerivedException>sr*)r)rFrBrr&r)rrrrrrtestKeywordArgs9s zExceptionTests.testKeywordArgscs4fdd|tfdd|tdS)NcsSrrr)frrrHsz/ExceptionTests.testInfiniteRecursion..fcs"zWStyYdS0dS)NrrCrgrrrLs z/ExceptionTests.testInfiniteRecursion..g)rFr;rr)rrrtestInfiniteRecursionFs   z$ExceptionTests.testInfiniteRecursioncCs8|tt|ttd|ttdddS)Nrb)rr%rrrrrtest_strSszExceptionTests.test_strc Cs|z tWn0ty:}z||tWYd}~n d}~00|dt|t|Wdn1sn0YdSNrWrrZ assertNotInlocalsrFUnboundLocalErrorrrrrtest_exception_cleanup_namesYs " z+ExceptionTests.test_exception_cleanup_namesc Cs~z tWn2ty<}z||t~WYd}~n d}~00|dt|t|Wdn1sp0YdSrrrrrrtest_exception_cleanup_names2ds   z,ExceptionTests.test_exception_cleanup_names2c sGdddtGddd}fdd}|t}z |Wn$yj}z WYd}~n d}~00dt|||t}z |WnyYn0dt|||t}z |Wn Yn0dt|||t}dD]&}z |WnYqLYn0q$dt|||t}z z |WntYn0WnXty}z>d|_dt|tdd rt|WYd}~n d}~00|t}z |Wn<yFzzWn0Wny@Yn0Yn0dtdd r^t||Gd d d }|t}||Wdn1s0Ydtdd rt||dS) Nc@seZdZddZdS)z=ExceptionTests.testExceptionCleanupState..MyExceptioncSs ||_dSrobjrrrrrrtszFExceptionTests.testExceptionCleanupState..MyException.__init__Nrrrrrrssrc@s eZdZdS)z7ExceptionTests.testExceptionCleanupState..MyObjNrrrrrMyObjvsrcs}dSrr)Z local_refrrrrinner_raising_funcyszDExceptionTests.testExceptionCleanupState..inner_raising_func)rF)Zcpythonc@seZdZddZddZdS)z9ExceptionTests.testExceptionCleanupState..ContextcSs|Srrrrrr __enter__szCExceptionTests.testExceptionCleanupState..Context.__enter__cSsdS)NTr)rexc_type exc_valueexc_tbrrr__exit__szBExceptionTests.testExceptionCleanupState..Context.__exit__N)rrrrrrrrrContextsr)rweakrefrefrrr2rr)rrrwrrWirrrrtestExceptionCleanupStateos                        & z(ExceptionTests.testExceptionCleanupStatec sDfdd}ztWn*ty>z|WYdn d00dS)NcsdSrrrrWrr print_errorszIExceptionTests.test_exception_target_in_nested_scope..print_error)Z somethingr)rr rr r%test_exception_target_in_nested_scopes  z4ExceptionTests.test_exception_target_in_nested_scopecCsdd}|}|t|t|tdd|t|t|tdd|t|dz tdWnty|}|t|t|tdt|t|t|tdt|t|t~|tdtYn0dS)NcssNz tdWn.ty:tdVtdVYn0tdVdS)NZcaughtr)r2rHrrrrr yield_raises   z:ExceptionTests.test_generator_leaking..yield_raiserr)r&nextr2rHrrB)rrrrrrtest_generator_leakings$  z%ExceptionTests.test_generator_leakingcCsfdd}ztWn ty0|}t|Yn0z t|WntyPYn0|tddS)Ncss dVdSrrrrrrrsz1ExceptionTests.test_generator_leaking2..gNNN)r:r StopIterationr&rHrrritrrrtest_generator_leaking2s   z&ExceptionTests.test_generator_leaking2c Csdd}|}t|z ddWnbty}zJ|td|||}|td||||WYd}~n d}~00|tddS)Ncss0z dVWn ty*tdVYn0dSNr8rDrHrrrrrr#s  z1ExceptionTests.test_generator_leaking3..gr8rr)rrDrrHrthrowr&)rrrrWZgen_excrrrtest_generator_leaking3 s  "z&ExceptionTests.test_generator_leaking3c Csdd}|}ztWnty0t|}Yn0||tz t|Wn8ty}z |td|WYd}~n d}~00|tddS)Ncss4z ddWn"ty.tdVYn0dSNr8rrrrrrr6s   z1ExceptionTests.test_generator_leaking4..gr8r)rBrrrDrHrr&)rrrtprWrrrtest_generator_leaking43s   *z&ExceptionTests.test_generator_leaking4csHfdd}|}ztWnty4t|Yn0tt|dS)Nc3s.tdtdVtddS)Nr8r)rrHrr:r&rrrrrOsz>ExceptionTests.test_generator_doesnt_retain_old_exc..g)r:rrFrrrrr$test_generator_doesnt_retain_old_excNs  z3ExceptionTests.test_generator_doesnt_retain_old_exccs4ddfdd}|t|tddS)Ncss dVdSrrrrrr simple_gen\szIExceptionTests.test_generator_finalizing_and_exc_info..simple_gencs.}ztWnty(t|YS0dSr)r:r)genrrrrun_gen^s  zFExceptionTests.test_generator_finalizing_and_exc_info..run_genr)rr&rHr)rr!rr r&test_generator_finalizing_and_exc_infoZs  z5ExceptionTests.test_generator_finalizing_and_exc_infocstGdddtGddd}fdd}|t}|}t|||d}t||dS)Nc@seZdZddZdS)zFExceptionTests._check_generator_cleanup_exc_state..MyExceptioncSs ||_dSrrrrrrrlszOExceptionTests._check_generator_cleanup_exc_state..MyException.__init__Nrrrrrrksrc@s eZdZdS)z@ExceptionTests._check_generator_cleanup_exc_state..MyObjNrrrrrrnsrc3s*z Wny$dVYn0dSrrrrrr raising_genqs  zFExceptionTests._check_generator_cleanup_exc_state..raising_gen)rrrrrr)rZtestfuncrr#rrrrr"_check_generator_cleanup_exc_statehs z1ExceptionTests._check_generator_cleanup_exc_statecCsdd}||dS)NcSs(z|tWnty"Yn0dSr)rr:rrrrdo_throws zGExceptionTests.test_generator_throw_cleanup_exc_state..do_throwr$)rr%rrr&test_generator_throw_cleanup_exc_statesz5ExceptionTests.test_generator_throw_cleanup_exc_statecCsdd}||dS)NcSs |dSr)rJrrrrdo_closeszGExceptionTests.test_generator_close_cleanup_exc_state..do_closer&)rr(rrr&test_generator_close_cleanup_exc_statesz5ExceptionTests.test_generator_close_cleanup_exc_statecCsdd}||dS)NcSsd}dSrrrrrrdo_delszCExceptionTests.test_generator_del_cleanup_exc_state..do_delr&)rr*rrr$test_generator_del_cleanup_exc_statesz3ExceptionTests.test_generator_del_cleanup_exc_statecsfdd}|dS)Ncs.z t|WntyYn 0ddSNz should have raised StopIteration)rrrRrrrrdo_nexts   zEExceptionTests.test_generator_next_cleanup_exc_state..do_nextr&)rr-rrr%test_generator_next_cleanup_exc_states z4ExceptionTests.test_generator_next_cleanup_exc_statecsfdd}|dS)Ncs0z|dWnty Yn 0ddSr,)sendrrRrrrrdo_sends  zEExceptionTests.test_generator_send_cleanup_exc_state..do_sendr&)rr0rrr%test_generator_send_cleanup_exc_states z4ExceptionTests.test_generator_send_cleanup_exc_statecsHGfddd}dzt|Wn Yn0t|ddS)NcseZdZfddZdS)z*ExceptionTests.test_3114..MyObjectcs tdSr)rHrrr rr__del__sz2ExceptionTests.test_3114..MyObject.__del__Nrrrr2rr rrMyObjectsr4rr)rrr&)rr4rr r test_3114szExceptionTests.test_3114c CsGdddt}Gdddt}Gdddt}zz|Wn|y}z|}z|Wn|y}z|}z|Wnx|y}z`|} |||||||| |||j||j||| j||WYd}~n d}~00WYd}~n d}~00WYd}~n d}~00Wn*|yH} z| } WYd} ~ n d} ~ 00|| |||j| || j|||jdS)Nc@s eZdZdS)zHExceptionTests.test_raise_does_not_create_context_chain_cycle..ANrrrrrAsr6c@s eZdZdS)zHExceptionTests.test_raise_does_not_create_context_chain_cycle..BNrrrrrBsr7c@s eZdZdS)zHExceptionTests.test_raise_does_not_create_context_chain_cycle..CNrrrrrCsr8)rrrrr) rr6r7r8Za_rZb_rZc_crWr"rrr.test_raise_does_not_create_context_chain_cycles:    J z=ExceptionTests.test_raise_does_not_create_context_chain_cyclec Csldd}z |Wn(ty:}z|}WYd}~n d}~00||t||jt||jj|jdS)Nc SsDz tdWn2ty>}z||_tdWYd}~n d}~00dSNr8rw)rCrrB)exrrrcycles  zBExceptionTests.test_no_hang_on_context_chain_cycle1..cycle)rrrBrrCr)rr=rWr"rrr$test_no_hang_on_context_chain_cycle1s  z3ExceptionTests.test_no_hang_on_context_chain_cycle1c Cs<Gdddt}Gdddt}Gdddt}||}z |Wn|y}z|}z |Wnf|y}zN|}z |Wn2|y} z| } | |_| WYd} ~ n d} ~ 00WYd}~n d}~00WYd}~n d}~00Wdn1s0Y||j| || j|||j|||j| dS)Nc@s eZdZdS)z>ExceptionTests.test_no_hang_on_context_chain_cycle2..ANrrrrrr6sr6c@s eZdZdS)z>ExceptionTests.test_no_hang_on_context_chain_cycle2..BNrrrrrr7sr7c@s eZdZdS)z>ExceptionTests.test_no_hang_on_context_chain_cycle2..CNrrrrrr8sr8rrFrrrb) rr6r7r8rp_ar_br_cr9rrr$test_no_hang_on_context_chain_cycle2s,    dz3ExceptionTests.test_no_hang_on_context_chain_cycle2cCsGdddt}Gdddt}Gdddt}Gdddt}Gd d d t}||}z |Wn|y@}z|}z |Wn|y*} z| } z |Wnn|y} zT| } | |_z |Wn2|y} z| }|}|WYd} ~ n d} ~ 00WYd} ~ n d} ~ 00WYd} ~ n d} ~ 00WYd}~n d}~00Wdn1sX0Y||j|||j|||j| || j| || j|||j| dS) Nc@s eZdZdS)z>ExceptionTests.test_no_hang_on_context_chain_cycle3..ANrrrrrr6sr6c@s eZdZdS)z>ExceptionTests.test_no_hang_on_context_chain_cycle3..BNrrrrrr7sr7c@s eZdZdS)z>ExceptionTests.test_no_hang_on_context_chain_cycle3..CNrrrrrr8sr8c@s eZdZdS)z>ExceptionTests.test_no_hang_on_context_chain_cycle3..DNrrrrrDsrDc@s eZdZdS)z>ExceptionTests.test_no_hang_on_context_chain_cycle3..ENrrrrrE srEr?)rr6r7r8rDrErpr@rrArrBr9Z_ddrWrrr$test_no_hang_on_context_chain_cycle3s>     |z3ExceptionTests.test_no_hang_on_context_chain_cycle3cCsftddddd}|t|dd|_|t|dd|_d |_|t|d d |_|t|d d |_|t|dtddddd}|t|dd|_|t|dd|_d |_|t|dd |_|t|dd |_|t|dtdddd}|t|dd|_|t|dd|_d |_|t|dd |_|t|ddS)NrZxxxxxr8rrz8'baz' codec can't encode characters in position 1-4: foorwz<'baz' codec can't encode character '\x78' in position 1: foolESh MQ)EzJ'baz' codec can't encode characters in position 1-4: 965230951443685724997izK'4000' codec can't encode characters in position 1-4: 965230951443685724997izN'4000' codec can't encode characters in position 1000-4: 965230951443685724997sxxxxxz3'baz' codec can't decode bytes in position 1-4: fooz5'baz' codec can't decode byte 0x78 in position 1: foozE'baz' codec can't decode bytes in position 1-4: 965230951443685724997zF'4000' codec can't decode bytes in position 1-4: 965230951443685724997zI'4000' codec can't decode bytes in position 1000-4: 965230951443685724997Zxxxxz/can't translate characters in position 1-4: fooz3can't translate character '\x78' in position 1: foozAcan't translate characters in position 1-4: 965230951443685724997zDcan't translate characters in position 1000-4: 965230951443685724997) rr&r%rrrorrr)rurrrtest_unicode_change_attributesDs>z-ExceptionTests.test_unicode_change_attributescCs.tttf}|D]}|t||dqdS)N)rrrr&r%__new__)rZklassesklassrrrtest_unicode_errors_no_objectis z,ExceptionTests.test_unicode_errors_no_objectc sGdddt}Gdddt|d}tx}z tWnR|yd}z|dWYd}~n8d}~0tytYn |dYn 0|dWdn1s0Yfdd \}}}||tt||d t|dS) Nc@seZdZddZdS)z/ExceptionTests.test_badisinstance..MetacSs tdSrr)clssubclassrrr__subclasscheck__tszAExceptionTests.test_badisinstance..Meta.__subclasscheck__N)rrrrPrrrrMetassrQc@s eZdZdS)z6ExceptionTests.test_badisinstance..MyExceptionNrrrrrrvsr) metaclassz%exception should not be a MyExceptionzShould have raised KeyErrorcs(zWSty"tYS0dSr)r;rHrrrrrrs z,ExceptionTests.test_badisinstance..gz maximum recursion depth exceeded) rrrr2rRrr;rnr%)rrQrrrWvrrrrtest_badisinstanceos   (  z!ExceptionTests.test_badisinstancecCsdd}|tdS)NcSst}tdD] }|j}qdS)Ni@B)rrP__dir__)orrrrrs z3ExceptionTests.test_trashcan_recursion..foo)r r)rrrrrtest_trashcan_recursionsz&ExceptionTests.test_trashcan_recursioncCsPdt}tdd|\}}}||d|d||d||d|dS)Naif 1: import sys from _testinternalcapi import get_recursion_depth class MyException(Exception): pass def setrecursionlimit(depth): while 1: try: sys.setrecursionlimit(depth) return depth except RecursionError: # sys.setrecursionlimit() raises a RecursionError if # the new recursion limit is too low (issue #25274). depth += 1 def recurse(cnt): cnt -= 1 if cnt: recurse(cnt) else: generator.throw(MyException) def gen(): f = open(%a, mode='rb', buffering=0) yield generator = gen() next(generator) recursionlimit = sys.getrecursionlimit() depth = get_recursion_depth() try: # Upon the last recursive invocation of recurse(), # tstate->recursion_depth is equal to (recursion_limit - 1) # and is equal to recursion_limit when _gen_throw() calls # PyErr_NormalizeException(). recurse(setrecursionlimit(depth + 2) - depth) finally: sys.setrecursionlimit(recursionlimit) print('Done.') z-Wd-cr8sRecursionErrorsResourceWarningDone.)__file__r assert_python_failurer&rnrrrcoutr'rrr$test_recursion_normalizing_exceptions ()   z3ExceptionTests.test_recursion_normalizing_exceptioncCs>d}td|\}}}||d|d||d|dS)Nzif 1: import _testcapi try: raise _testcapi.RecursingInfinitelyError finally: print('Done.') rXr8sORecursionError: maximum recursion depth exceeded while normalizing an exceptionrY)r r[r&rnr\rrr-test_recursion_normalizing_infinite_exceptions z.set_relative_recursion_limitcs$z ddWnYn0dSrrr)recurse_in_exceptrrres zJExceptionTests.test_recursion_in_except_handler..recurse_in_exceptcs$z ddWn Yn0dSrrr)recurse_after_exceptrrrfs  zMExceptionTests.test_recursion_in_except_handler..recurse_after_exceptcs"z WnYn0dSrrr)recurse_in_body_and_exceptrrrgs zSExceptionTests.test_recursion_in_except_handler..recurse_in_body_and_exceptr1)funcz#Should have raised a RecursionError)rHgetrecursionlimitr$r;rRra)rrdZrecursionlimitrhr)rfrgrer test_recursion_in_except_handlers     ,z/ExceptionTests.test_recursion_in_except_handlercCsLd}t.td|\}}}|d|Wdn1s>0YdS)Na+if 1: import _testcapi class C(): pass def recurse(cnt): cnt -= 1 if cnt: recurse(cnt) else: _testcapi.set_nomemory(0) C() recurse(16) rXsmFatal Python error: _PyErr_NormalizeException: Cannot recover from MemoryErrors while normalizing exceptions.)r r r[rnr\rrr)test_recursion_normalizing_with_no_memorys  z8ExceptionTests.test_recursion_normalizing_with_no_memorycs@ddlddlmfdd}|}|}||dS)Nrraise_memoryerrorc sJz Wn*ty4}z|j}WYd}~nd}~00d|S)Nz Should have raises a MemoryError)r5rrR format_tb)rWrrmr tracebackrr raiseMemError6s   z6ExceptionTests.test_MemoryError..raiseMemError)rprrmr&)rrqZtb1Ztb2rrortest_MemoryError0s   zExceptionTests.test_MemoryErrorc Cs"ddl}d}d}|t|jd|d}|t|t|t|t| |j |d|}| |j ||jd|d}|t||Gd d d t }|d |||f}|t|||t||| |j ||d d |ddi} |t| || | j d| | j d dS)NrzThis is a test docstring.zThis is another test docstring.error1z_testcapi.error1z_testcapi.error2z_testcapi.error3)basec@s eZdZdS)z1ExceptionTests.test_exception_with_doc..CNrrrrrr8\sr8z_testcapi.error4z_testcapi.error5rJrr8)rrFr@Zmake_exception_with_docrrr issubclassrr__doc__r&rr) rrZdoc2Zdoc4rsZerror2Zerror3r8Zerror4Zerror5rrrtest_exception_with_docCs:    z&ExceptionTests.test_exception_with_docc sddlmGddddfdd}z |Wn2tyj}z|dWYd}~nd}~00|dt|ddS)Nrrlc@s eZdZdS)z3ExceptionTests.test_memory_error_cleanup..CNrrrrrr8psr8cs}t|dSrrrr9r8rmrrrinnerss z7ExceptionTests.test_memory_error_cleanup..innerzMemoryError not raised)rrmr5assertNotEqualrRrr&)rr{rWrrzrtest_memory_error_cleanupks  $ z(ExceptionTests.test_memory_error_cleanupc sGddddfddz Wn2ty^}z|dWYd}~nd}~00|dt|ddS)Nc@s eZdZdS)z6ExceptionTests.test_recursion_error_cleanup..CNrrrrrr8sr8cs}t|dSrrxryr8r{rrrr{s z:ExceptionTests.test_recursion_error_cleanup..innerzRecursionError not raised)r;r|rRrr&rrr~rtest_recursion_error_cleanups $ z+ExceptionTests.test_recursion_error_cleanupcCsN|t}ttWdn1s*0Y||jjtj|jdSr) rFr.oslistdirrZr&rbrENOTDIR)rrprrrtest_errno_ENOTDIRs (z!ExceptionTests.test_errno_ENOTDIRcCshGddd}|}t8}~t||jj|j||jjWdn1sZ0YdS)Nc@seZdZddZdS)z1ExceptionTests.test_unraisable..BrokenDelcSstd}|dS)Nz del is brokenrrr"rrrr2sz9ExceptionTests.test_unraisable..BrokenDel.__del__Nr3rrrr BrokenDelsr) r Zcatch_unraisable_exceptionrr&Z unraisablerr2ZassertIsNotNone exc_traceback)rrrrprrrtest_unraisables zExceptionTests.test_unraisablec CsttfD]}||z|d}|WnF|ynt}tjtWdn1s`0YYn0|}|d||d|||j ||tur|d|n |d|| | dWdq1s0YqdS)Nz test messagerz raise exczri) rCrr$rrH__excepthook__rgetvaluernrrr)rrr"rreportrrrtest_unhandleds    2   zExceptionTests.test_unhandledcCsFd}tddD]2}td||\}}}||d|d|qdS)Nzif 1: import _testcapi class C(): pass _testcapi.set_nomemory(0, %d) C() r8ryrX)r8xs MemoryError)rPr r[rn)rrr r]r^r'rrr"test_memory_error_in_PyErr_PrintExs   z1ExceptionTests.test_memory_error_in_PyErr_PrintExcsxGdddtGdddtfdd}|}|d||Wdn1sj0YdS)Nc@s eZdZdS)zBExceptionTests.test_yield_in_nested_try_excepts..MainErrorNrrrrr MainErrorsrc@s eZdZdS)zAExceptionTests.test_yield_in_nested_try_excepts..SubErrorNrrrrrSubErrorsrc 3sBz Wn2y<z dVWny4Yn0Yn0dSrrrrrrrmains    z=ExceptionTests.test_yield_in_nested_try_excepts..main)rr/rFr)rrcororrr test_yield_in_nested_try_exceptss   z/ExceptionTests.test_yield_in_nested_try_exceptscsRfdd}|}ztWn"ty<t|dYn0t|ddS)Nc3s<ztWnty dVYn0tddVdS)Nr8rrw)rCr&rHrrrrrrs   z?ExceptionTests.test_generator_doesnt_retain_old_exc2..gr8rw)r0r&r)rrrrrr%test_generator_doesnt_retain_old_exc2s  z4ExceptionTests.test_generator_doesnt_retain_old_exc2cCsfdd}|t@|}z ddWnt|t|Yn0Wdn1sX0YdS)NcssdVdVdSr;rrrrrrsz1ExceptionTests.test_raise_in_generator..gr8r)rFrDr)rrr rrrtest_raise_in_generators  z&ExceptionTests.test_raise_in_generatorTz Won't work if __debug__ is Falsec CshtazdsJdWnBtyV}z*b||t|t|dWYd}~nd}~00b|ddS)NFZhellor)rBAssertionErrorrrr&r%rRrrrrtest_assert_shadowing s &z$ExceptionTests.test_assert_shadowingc CsGdddt}ztWn(ty@}z|}WYd}~n d}~00z|Wnty\Yn0tdD]8}ztWn$ty}z WYd}~n d}~00tqfdS)Nc@s eZdZdS)zBExceptionTests.test_memory_error_subclasses..TestExceptionNrrrrr TestException$srr1)r5rrPr)rrr"inst_rrrtest_memory_error_subclassess   z+ExceptionTests.test_memory_error_subclassesN)rd)Grrrr(rXrarcrrrvrrrrunittestZ skipUnlessrHrrrrrrrrrrrrrrrr r rrrrrr"r$r'r)r+r.r1r5r:r>rCrGrIrMrTrWr_r`rjrkrrrwr}rrrrrrrrrrrrrrr!"s T B /'  ~     y    ($/%   : .   '     r!c@s,eZdZddZddZddZddZd S) ImportErrorTestscCstd}||j||jtddd}||jd||jtddd}||jd||jtdddd}||jd||jdd}|t|tdd d Wdn1s0Y|t|tdd d d Wdn1s0Y|t|tdd d dWdn1s@0Y|t|td d Wdn1sx0Y|t|tdd ddWdn1s0YdS)NtestZ somemodulenamesomepathpathsomename)rrz8'invalid' is an invalid keyword argument for ImportErrorkeyword)invalidr)rrr)rrT)rZanother)r/rrrr&rrB)rr"rZrrrtest_attributes<s.      *..*z ImportErrorTests.test_attributescCstdddd}||jd||jd||jd||jd|||jd||jd||jd||jddS)Nrrrrrrr)r/r&rrZrrrrrrrtest_reset_attributes^sz&ImportErrorTests.test_reset_attributescCsTtdtfdd0d}t|}|t|t|Wdn1sF0YdS)NrJT)quietsabc)r BytesWarningr/r&r%)rargr"rrrtest_non_str_argumentlsz&ImportErrorTests.test_non_str_argumentcCsttddtddtdddfD]}td i|}ttjdD]R}tt||}||jd||j d||j |j ||j |j qBt j t j fD]H}||}||jd||j d||j |j ||j |j qq"dS) Nrrrrrrr8r)r)dictr/rPrrrMrr&rrZrrcopydeepcopy)rkwargsZorigprotor"r9rrrtest_copy_pickless$ z!ImportErrorTests.test_copy_pickleN)rrrrrrrrrrrr:s"r__main__)rgcrrHrrrrZ test.supportrrrrrrrr r r r rr rrrrZTestCaser!rrrrrrrs84 $M