a 9êdgŸ6ã@sdZddlmZddlZddlZddlmZmZddlZddlm Z ddlZddl m Z de_ Gdd „d ej ƒZGd d „d eƒZGd d „d ƒZGdd„dej ƒZGdd„dej ƒZGdd„dej ƒZGdd„dej ƒZGdd„dej ƒZedkrüejdddS)zTest run, coverage 49%.é)ÚrunN)Úcaptured_outputÚcaptured_stderr)Úmock)ÚFuncTc@seZdZdd„ZdS)ÚPrintExceptionTestcCsGdd„dtƒ}|dƒ}|dƒ}z ||‚Wn”|y¾z|‚Wnx|y¸tƒP}tj td¡"}dd„|_t ¡Wdƒn1sŒ0YWdƒn1sª0YYn0Yn0| ¡  ¡  ¡}|  dt |ƒ¡|  d |d ¡|  d |d ¡dS) Nc@seZdZdd„ZdS)zOPrintExceptionTest.test_print_exception_unhashable..UnhashableExceptioncSsdS)NT©)ÚselfÚotherrrú6/usr/local/lib/python3.9/idlelib/idle_test/test_run.pyÚ__eq__szVPrintExceptionTest.test_print_exception_unhashable..UnhashableException.__eq__N)Ú__name__Ú __module__Ú __qualname__r rrrr ÚUnhashableExceptionsrÚex1Úex2Zcleanup_tracebackcSs|S©Nr)ÚtÚerrr Ú!ózDPrintExceptionTest.test_print_exception_unhashable..é zUnhashableException: ex2ézUnhashableException: ex1é )Ú ExceptionrrÚpatchÚobjectrZ side_effectÚprint_exceptionÚgetvalueÚstripÚ splitlinesÚ assertEqualÚlenÚassertIn)r rrrÚoutputÚctÚtbrrr Útest_print_exception_unhashables(   ÿ Pz2PrintExceptionTest.test_print_exception_unhashableN)r rrr(rrrr rsrc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚScCsdt|ƒjS)Nz%s:str©Útyper ©r rrr Ú__str__-sz S.__str__cCsdt|ƒjS)Nz %s:unicoder*r,rrr Ú __unicode__/sz S.__unicode__cCsdS©Nrrr,rrr Ú__len__1sz S.__len__cCstdƒS)NÚabc)Úiterr,rrr Ú__iter__3sz S.__iter__cGsdt|ƒjS)Nz%s:itemr*©r Úargsrrr Ú __getitem__5sz S.__getitem__cGsdt|ƒjS)Nz%s:slicer*r4rrr Ú __getslice__7szS.__getslice__N) r rrr-r.r0r3r6r7rrrr r),s r)c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)Ú MockShellcCs | ¡dSr)Úresetr,rrr Ú__init__<szMockShell.__init__cGs|j |¡dSr)ÚwrittenÚappendr4rrr Úwrite>szMockShell.writecCs |j ¡Sr)ÚlinesÚpopr,rrr Úreadline@szMockShell.readlinecCsdSrrr,rrr ÚcloseBszMockShell.closecCs g|_dSr)r;r,rrr r9DszMockShell.resetcCst|ƒddd…|_dS)Néÿÿÿÿ)Úlistr>)r r>rrr ÚpushFszMockShell.pushN) r rrr:r=r@rAr9rDrrrr r8;s r8c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚStdInputFilesTestcCsžtƒ}t |d¡}| |tj¡| |jd¡| |jd¡|  |j ¡| |j d¡|  |j ¡| | ¡¡| | ¡¡|  | ¡¡|  | ¡¡dS)NÚstdinúutf-8Ústrictz)r8rÚ StdInputFileÚassertIsInstanceÚioÚ TextIOBaser"ÚencodingÚerrorsÚ assertIsNoneÚnewlinesÚnameÚ assertFalseÚclosedÚ assertTrueÚisattyÚreadableÚwritableÚseekable©r ÚshellÚfrrr Ú test_miscLs   zStdInputFilesTest.test_misccCsdtƒ}t |d¡}| t|j¡| t|j¡| t|jd¡| t|jd¡| t|j dg¡dS)NrFrÚx) r8rrIÚ assertRaisesÚOSErrorÚfilenoÚtellÚseekr=Ú writelinesrYrrr Útest_unsupportedZs z"StdInputFilesTest.test_unsupportedcCs tƒ}t |d¡}| gd¢¡| | ¡d¡| gd¢¡| | d¡d¡| gd¢¡| | d¡d¡| gd¢¡| | d¡d¡| | d¡d ¡| | d ¡d ¡| d d g¡| | d¡d¡| t|jd¡| t|jd¡| t|jdd¡dS)NrF©úone útwo Úúone two rB)rfrgúthree rhéÚonrze trz wo three rfrgrrhçø?Ú1é)r8rrIrDr"Úreadr^Ú TypeErrorrYrrr Ú test_readcs" zStdInputFilesTest.test_readcCsZtƒ}t |d¡}| gd¢¡| | ¡d¡| | d¡d¡| | d¡d¡| dg¡| | ¡d¡| | ¡d¡| gd¢¡| | ¡d ¡| | ¡d ¡| gd ¢¡| | d ¡d ¡| | d¡d¡| | d¡d¡| | d¡d¡| ddg¡| | d¡d¡| t|jd¡| t|jd¡| t|jdd¡dS)NrF)rfrgrjzfour rfrBrgrjri)ÚoneÚtwoZthreersrt)rfrgrjrkrlrorÚ rrrhrmrn) r8rrIrDr"r@r^rqÚ readlinesrYrrr Ú test_readlinews,  zStdInputFilesTest.test_readlinecCs*tƒ}t |d¡}| gd¢¡| | ¡ddg¡| gd¢¡| | d¡ddg¡| gd¢¡| | d¡ddg¡| gd¢¡| | d¡ddg¡| gd¢¡| | d¡dg¡| gd¢¡| | d¡ddg¡| gd¢¡| t|jd ¡| t|jd ¡| t|jd d ¡dS) NrFrerfrgrBrrérmrnro)r8rrIrDr"rvr^rqrYrrr Útest_readliness$ z StdInputFilesTest.test_readlinescCsttƒ}t |d¡}| gd¢¡| |j¡| | ¡d¡| ¡| |j¡| | ¡d¡|  t |jd¡dS)NrFrerfrgro) r8rrIrDrRrSr"r@rAr^rqrYrrr Ú test_close¥s   zStdInputFilesTest.test_closeN) r rrr\rdrrrwryrzrrrr rEJs  rEc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚStdOutputFilesTestcCsžtƒ}t |d¡}| |tj¡| |jd¡| |jd¡|  |j ¡| |j d¡|  |j ¡| | ¡¡|  | ¡¡| | ¡¡|  | ¡¡dS)NÚstdoutrGrHz)r8rÚ StdOutputFilerJrKrLr"rMrNrOrPrQrRrSrTrUrVrWrXrYrrr r\³s   zStdOutputFilesTest.test_misccCsbtƒ}t |d¡}| t|j¡| t|j¡| t|jd¡| t|jd¡| t|j d¡dS)Nr|r) r8rr}r^r_r`rarbrpr@rYrrr rdÁs z#StdOutputFilesTest.test_unsupportedcCstƒ}t |d¡}| d¡| |jdg¡| ¡| d¡| |jdg¡| ¡| tdƒ¡| |jdg¡| t|jddƒt ¡| ¡|  t |j¡| |jg¡|  t |jd¡|  t |jd¡| |jg¡|  t |jdd ¡| |jg¡dS) Nr|Útest©r~r|õ tèśð–™)r€r|rótesté{Úspam© r8rr}r=r"r;r9r)r+Ústrr^rqrYrrr Ú test_writeÊs&   zStdOutputFilesTest.test_writecCsætƒ}t |ddd¡}| d¡| |jdg¡| ¡| tdƒ¡| |jdg¡| t|jddƒt ¡| ¡|  t |j¡| |jg¡|  t |jd¡|  t |jd¡| |jg¡|  t |jd d ¡| |jg¡dS) NÚstderrz iso-8859-15Úbackslashreplaceu tèśð–™Â¤)utè\u015b\U0001d599\xa4r‡rrr‚r~rƒr„rYrrr Útest_write_stderr_nonencodableás  z1StdOutputFilesTest.test_write_stderr_nonencodablecCsTtƒ}t |d¡}| g¡| |jg¡| ¡| ddg¡| |jddg¡| ¡| ddg¡| |jdd g¡| ¡| td ƒg¡| |jd g¡| t|jd d ƒt ¡| ¡|  t |j¡| |jg¡|  t |jd ¡| |jg¡|  t |jdg¡|  t |jd g¡| |jg¡|  t |jgg¡| |jg¡dS)Nr|rfrt)rfr|)rtr|õonè õtwò)rŠr|)r‹r|õtèst)rŒr|rr‚r) r8rr}rcr"r;r9r)r+r…r^rqrYrrr Útest_writelinesõs8  ÿÿz"StdOutputFilesTest.test_writelinescCsxtƒ}t |d¡}| |j¡| d¡| ¡| |j¡| t |jd¡|  |j dg¡| ¡| t |jd¡dS)Nr|r~r]rro) r8rr}rRrSr=rArTr^Ú ValueErrorr"r;rqrYrrr rzs    zStdOutputFilesTest.test_closeN) r rrr\rdr†r‰rrzrrrr r{±s  r{c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚRecursionLimitTestcCsLt ¡| tj¡tj}|jt|dd| t|dd¡| t|d¡dS)Néd)Úlimitièr) rÚinstall_recursionlimit_wrappersÚ addCleanupÚ!uninstall_recursionlimit_wrappersÚsysÚsetrecursionlimitr^rqrŽ)r r[rrr Ú test_bad_setrecursionlimit_calls#s  z3RecursionLimitTest.test_bad_setrecursionlimit_callscCsTt ¡| tj¡t ¡}| tj|¡t |d¡t ¡}| ||d¡dSr/)rr’r“r”r•Úgetrecursionlimitr–r"©r Z orig_reclimitZ new_reclimitrrr Útest_roundtrip+s z!RecursionLimitTest.test_roundtripcCs4t ¡}t ¡| tj¡t ¡}| ||¡dSr)r•r˜rr’r“r”r"r™rrr Ú&test_default_recursion_limit_preserved8s  z9RecursionLimitTest.test_default_recursion_limit_preservedcCsFdd„}t |d¡| |jd¡d|_t |d¡| |jd¡dS)NcSsdS)Z docstringNrrrrr ÚfuncArz,RecursionLimitTest.test_fixdoc..funcZmorezdocstring more)rZfixdocr"Ú__doc__)r rœrrr Ú test_fixdoc?s   zRecursionLimitTest.test_fixdocN)r rrr—ršr›ržrrrr r s rc@seZdZdd„ZdS)ÚHandleErrorTestc Cs&|j}tdƒ}tjdtdÒ}zt‚Wn"tyLtj ddd¡Yn0|tj dƒdt_ ||  ¡dƒzt ‚Wn"t y˜tj ddd¡Yn0|tj dƒdt_ |  ¡}|  d|¡|  d|¡|  d |¡||jd ƒWdƒn1sø0YWdƒn1s0YdS) NÚ __stderr__z!idlelib.run.thread.interrupt_main)Z new_callabler1Z123TFrhÚ IndexErrorrk)r"rrrrÚEOFErrorrZ MyRPCServerZ handle_errorZexit_nowrr¡Zquittingr$Zcalled)r ÚeqÚerrrœÚmsgrrr Útest_fatal_errorKs2 ÿÿ       z HandleErrorTest.test_fatal_errorN)r rrr¦rrrr rŸIsrŸc@s,eZdZedd„ƒZedd„ƒZdd„ZdS)ÚExecRuncodeTestcCsH| ttdtj¡tƒ|_|jt_t ¡}tdd|j_ t  |¡|_ dS)NrF)Úresult) ZaddClassCleanupÚsetattrrrrÚprtrZMockZconsoleZgetvarZ ExecutiveÚex)ÚclsZmockrpcrrr Ú setUpClassgs zExecRuncodeTest.setUpClasscCstjtjksJ‚dSr)r•Ú excepthookÚ__excepthook__)r¬rrr Ú tearDownClasspszExecRuncodeTest.tearDownClasscCsž|j}| d¡| |jdt¡| ttdtj¡dd„t_ | d¡| |j j dt¡dd„t_ | d¡|j\}}}| |t ¡|  t|jtƒ¡dS)Nz1/0rr®cSs t |¡Sr)rr)rrr'rrr rzrz1ExecRuncodeTest.test_exceptions..cSsdSrrrrrr r~r)r«ZruncodeZassertIsZ user_exc_infoÚZeroDivisionErrorr“r©r•r¯r®rªr5rqrTÚ isinstanceÚ __context__)r r«rrr'rrr Útest_exceptionsts       zExecRuncodeTest.test_exceptionsN)r rrÚ classmethodr­r°r´rrrr r§es   r§Ú__main__rk)Ú verbosity)rZidlelibrrKr•Z test.supportrrZunittestrZidlelib.idle_test.mock_idlerZtestingZTestCaserr…r)r8rEr{rrŸr§r Úmainrrrr Ús&   go)