U Å:âeŸ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)ÚPrintExceptionTestcCsàGdd„dtƒ}|dƒ}|dƒ}z ||‚Wnp|k ršz|‚WnR|k r”tƒ2}tj td¡}dd„|_t ¡W5QRXW5QRXYnXYnX| ¡  ¡  ¡}|  dt |ƒ¡|  d |d ¡|  d |d ¡dS) Nc@seZdZdd„ZdS)zOPrintExceptionTest.test_print_exception_unhashable..UnhashableExceptioncSsdS)NT©)ÚselfÚotherrrú?/usr/local/python38/lib/python3.8/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( ÿ (z2PrintExceptionTest.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_unsupportedcCstƒ}t |d¡}| dddg¡| | ¡d¡| dddg¡| | d¡d¡| dddg¡| | d¡d¡| ddddg¡| | d¡d ¡| | d ¡d ¡| | d ¡d ¡| ddg¡| | d¡d¡| t|jd¡| t|jd¡| t|jdd¡dS)NrFúone útwo Úúone two rBúthree éÚonrze trz wo three rçø?Ú1é)r8rrIrDr"Úreadr^Ú TypeErrorrYrrr Ú test_readcs" zStdInputFilesTest.test_readcCsbtƒ}t |d¡}| ddddg¡| | ¡d¡| | d¡d¡| | d¡d¡| dg¡| | ¡d¡| | ¡d¡| dd d g¡| | ¡d¡| | ¡d ¡| dddg¡| | d ¡d ¡| | d ¡d¡| | d ¡d¡| | d¡d¡| ddg¡| | d¡d¡| t|jd¡| t|jd¡| t|jd d ¡dS)NrFrerfrizfour rBrhZoneÚtwoZthreerjrkrnrÚ rrrgrlrm) r8rrIrDr"r@r^rpÚ readlinesrYrrr Ú test_readlinews,  zStdInputFilesTest.test_readlinecCs8tƒ}t |d¡}| dddg¡| | ¡ddg¡| dddg¡| | d¡ddg¡| dddg¡| | d¡ddg¡| dddg¡| | d¡ddg¡| dddg¡| | d¡dg¡| dddg¡| | d¡ddg¡| dddg¡| t|jd ¡| t|jd ¡| t|jd d ¡dS) NrFrerfrgrBrrérlrmrn)r8rrIrDr"rtr^rprYrrr Útest_readliness$ z StdInputFilesTest.test_readlinescCsvtƒ}t |d¡}| dddg¡| |j¡| | ¡d¡| ¡| |j¡| | ¡d¡|  t |jd¡dS)NrFrerfrgrn) r8rrIrDrRrSr"r@rAr^rprYrrr Ú test_close¥s   zStdInputFilesTest.test_closeN) r rrr\rdrqrurwrxrrrr 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)Nrzr) r8rr{r^r_r`rarbror@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) NrzÚtest©r|rzõ tèśð–™)r~rzrótesté{Úspam© r8rr{r=r"r;r9r)r+Ústrr^rprYrrr Ú 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|rr‚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)Nrzrerr)rerz)rrrzõonè õtwò)rˆrz)r‰rzõtèst)rŠrzrr€r) r8rr{rcr"r;r9r)r+rƒr^rprYrrr Útest_writelinesõs8  ÿÿz"StdOutputFilesTest.test_writelinescCsxtƒ}t |d¡}| |j¡| d¡| ¡| |j¡| t |jd¡|  |j dg¡| ¡| t |jd¡dS)Nrzr|r]r}rn) r8rr{rRrSr=rArTr^Ú ValueErrorr"r;rprYrrr rxs    zStdOutputFilesTest.test_closeN) r rrr\rdr„r‡r‹rxrrrr ry±s  ryc@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^rprŒ)r r[rrr Ú test_bad_setrecursionlimit_calls#s  z3RecursionLimitTest.test_bad_setrecursionlimit_callscCsTt ¡| tj¡t ¡}| tj|¡t |d¡t ¡}| ||d¡dSr/)rrr‘r’r“Úgetrecursionlimitr”r"©r Z orig_reclimitZ new_reclimitrrr Útest_roundtrip+s z!RecursionLimitTest.test_roundtripcCs4t ¡}t ¡| tj¡t ¡}| ||¡dSr)r“r–rrr‘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$tk rLtj ddd¡YnX|tj dƒdt_ ||  ¡dƒzt ‚Wn$t k rštj ddd¡YnX|tj dƒdt_ |  ¡}|  d|¡|  d|¡|  d |¡||jd ƒW5QRXW5QRXdS) NÚ __stderr__z!idlelib.run.thread.interrupt_main)Z new_callabler1Z123TFrgÚ IndexErrorrj)r"rrrrÚEOFErrorrZ MyRPCServerZ handle_errorZexit_nowrrŸZquittingr$Zcalled)r ÚeqÚerrršÚmsgrrr Útest_fatal_errorKs2 ÿÿ     z HandleErrorTest.test_fatal_errorN)r rrr¤rrrr rIsrc@s,eZdZedd„ƒZedd„ƒZdd„ZdS)ÚExecRuncodeTestcCsH| ttdtj¡tƒ|_|jt_t ¡}tdd|j_ t  |¡|_ dS)NrF)Úresult) ZaddClassCleanupÚsetattrrrrÚprtrZMockZconsoleZgetvarZ ExecutiveÚex)ÚclsZmockrpcrrr Ú setUpClassgs zExecRuncodeTest.setUpClasscCsdSrr)rªrrr Ú tearDownClasspszExecRuncodeTest.tearDownClasscCsž|j}| d¡| |jdt¡| ttdtj¡dd„t_ | d¡| |j j dt¡dd„t_ | d¡|j\}}}| |t ¡|  t|jtƒ¡dS)Nz1/0rÚ excepthookcSs t |¡Sr)rr)rrr'rrr rzrz1ExecRuncodeTest.test_exceptions..cSsdSrrrrrr r~r)r©ZruncodeZassertIsZ user_exc_infoÚZeroDivisionErrorr‘r§r“Ú__excepthook__r­r¨r5rprTÚ isinstanceÚ __context__)r r©rrr'rrr Útest_exceptionsts       zExecRuncodeTest.test_exceptionsN)r rrÚ classmethodr«r¬r²rrrr r¥es   r¥Ú__main__rj)Ú verbosity)r›ZidlelibrrKr“Z test.supportrrZunittestrZidlelib.idle_test.mock_idlerZtestingZTestCaserrƒr)r8rEryrrr¥r Úmainrrrr Ús&   go)