B 0‘cÙ-ã@sºddlmZddlZddlmZddlmZddlZddlZGdd„dejƒZ Gdd„de ƒZ Gd d „d ƒZ Gd d „d ejƒZ Gd d„dejƒZGdd„dejƒZedkr¶ejdddS)é)ÚrunN)Úmock)Úcaptured_stderrc@seZdZdd„ZdS)ÚRunTestcCsàGdd„dtƒ}|dƒ}|dƒ}y ||‚Wnp|k ršy|‚WnR|k r”tƒ2}tj td¡}dd„|_t ¡WdQRXWdQRXYnXYnX| ¡  ¡  ¡}|  dt |ƒ¡|  d |d ¡|  d |d ¡dS) Nc@seZdZdd„ZdS)zDRunTest.test_print_exception_unhashable..UnhashableExceptioncSsdS)NT©)ÚselfÚotherrrú?/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_run.pyÚ__eq__szKRunTest.test_print_exception_unhashable..UnhashableException.__eq__N)Ú__name__Ú __module__Ú __qualname__r rrrr ÚUnhashableExceptionsrÚex1Úex2Zcleanup_tracebackcSs|S)Nr)ÚtÚerrr Úóz9RunTest.test_print_exception_unhashable..é zUnhashableException: ex2ézUnhashableException: ex1é )Ú ExceptionrrZpatchÚobjectrZ side_effectÚprint_exceptionÚgetvalueÚstripÚ splitlinesÚ assertEqualÚlenZassertIn)rrrrÚoutputZctÚtbrrr Útest_print_exception_unhashables$  (z'RunTest.test_print_exception_unhashableN)r r r r"rrrr r src@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚScCsdt|ƒjS)Nz%s:str)Útyper )rrrr Ú__str__*sz S.__str__cCsdt|ƒjS)Nz %s:unicode)r$r )rrrr Ú __unicode__,sz S.__unicode__cCsdS)Nrr)rrrr Ú__len__.sz S.__len__cCstdƒS)NÚabc)Úiter)rrrr Ú__iter__0sz S.__iter__cGsdt|ƒjS)Nz%s:item)r$r )rÚargsrrr Ú __getitem__2sz S.__getitem__cGsdt|ƒjS)Nz%s:slice)r$r )rr+rrr Ú __getslice__4szS.__getslice__N) r r r r%r&r'r*r,r-rrrr r#)s r#c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)Ú MockShellcCs | ¡dS)N)Úreset)rrrr Ú__init__9szMockShell.__init__cGs|j |¡dS)N)ÚwrittenÚappend)rr+rrr Úwrite;szMockShell.writecCs |j ¡S)N)ÚlinesÚpop)rrrr Úreadline=szMockShell.readlinecCsdS)Nr)rrrr Úclose?szMockShell.closecCs g|_dS)N)r1)rrrr r/AszMockShell.resetcCst|ƒddd…|_dS)Néÿÿÿÿ)Úlistr4)rr4rrr ÚpushCszMockShell.pushN) r r r r0r3r6r7r/r:rrrr r.8s r.c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚStdInputFilesTestcCsžtƒ}t |d¡}| |tj¡| |jd¡| |jd¡|  |j ¡| |j d¡|  |j ¡| | ¡¡| | ¡¡|  | ¡¡|  | ¡¡dS)NÚstdinzutf-8Ústrictz)r.rÚ StdInputFileÚassertIsInstanceÚioÚ TextIOBaserÚencodingÚerrorsÚ assertIsNoneÚnewlinesÚnameÚ assertFalseÚclosedÚ assertTrueÚisattyÚreadableÚwritableÚseekable)rÚshellÚfrrr Ú test_miscIs   zStdInputFilesTest.test_misccCsdtƒ}t |d¡}| t|j¡| t|j¡| t|jd¡| t|jd¡| t|j dg¡dS)Nr<rÚx) r.rr>Ú assertRaisesÚOSErrorÚfilenoÚtellÚseekr3Ú writelines)rrNrOrrr Útest_unsupportedWs 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)Nr<zone ztwo Úzone two r8zthree éÚonrze trz wo three rgø?Ú1é)r.rr>r:rÚreadrRÚ TypeError)rrNrOrrr Ú test_read`s" 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)Nr<zone ztwo zthree zfour r8zone two ZoneÚtwoZthreerZr[r]rÚ rrrYgø?r\) r.rr>r:rr6rRr_Ú readlines)rrNrOrrr Ú test_readlinets,  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) Nr<zone ztwo rYr8rrégø?r\r])r.rr>r:rrcrRr_)rrNrOrrr Útest_readliness$ z StdInputFilesTest.test_readlinescCsvtƒ}t |d¡}| dddg¡| |j¡| | ¡d¡| ¡| |j¡| | ¡d¡|  t |jd¡dS)Nr<zone ztwo rYr]) r.rr>r:rGrHrr6r7rRr_)rrNrOrrr Ú test_close¢s   zStdInputFilesTest.test_closeN) r r r rPrXr`rdrfrgrrrr r;Gs  r;c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚStdOutputFilesTestcCsžtƒ}t |d¡}| |tj¡| |jd¡| |jd¡|  |j ¡| |j d¡|  |j ¡| | ¡¡|  | ¡¡| | ¡¡|  | ¡¡dS)NÚstdoutzutf-8r=z)r.rÚ StdOutputFiler?r@rArrBrCrDrErFrGrHrIrJrKrLrM)rrNrOrrr rP°s   zStdOutputFilesTest.test_misccCsbtƒ}t |d¡}| t|j¡| t|j¡| t|jd¡| t|jd¡| t|j d¡dS)Nrir) r.rrjrRrSrTrUrVr^r6)rrNrOrrr rX¾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) NriÚtest)rkriu tèśð–™)u tèśð–™rirstesté{Úspam) r.rrjr3rr1r/r#r$ÚstrrRr_)rrNrOrrr Ú 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\xa4rprstestrlrkrm) r.rrjr3rr1r/r#r$rnrRr_)rrNrOrrr Ú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)Nrizone ra)zone ri)rariuonè utwò)uonè ri)utwòriutèst)utèstrirrlstest) r.rrjrWrr1r/r#r$rnrRr_)rrNrOrrr Útest_writelinesòs4    z"StdOutputFilesTest.test_writelinescCsxtƒ}t |d¡}| |j¡| d¡| ¡| |j¡| t |jd¡|  |j dg¡| ¡| t |jd¡dS)NrirkrQ)rkrir]) r.rrjrGrHr3r7rIrRÚ ValueErrorrr1r_)rrNrOrrr rgs    zStdOutputFilesTest.test_closeN) r r r rPrXrorrrsrgrrrr rh®s  rhc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚTestSysRecursionLimitWrapperscCsLt ¡| tj¡tj}|jt|dd| t|dd¡| t|d¡dS)Néd)Úlimitièr) rÚinstall_recursionlimit_wrappersÚ addCleanupÚ!uninstall_recursionlimit_wrappersÚsysÚsetrecursionlimitrRr_rt)rrOrrr Ú test_bad_setrecursionlimit_callss  z>TestSysRecursionLimitWrappers.test_bad_setrecursionlimit_callscCsTt ¡| tj¡t ¡}| tj|¡t |d¡t ¡}| ||d¡dS)Nr)rrxryrzr{Úgetrecursionlimitr|r)rÚ orig_reclimitÚ new_reclimitrrr Útest_roundtrip's z,TestSysRecursionLimitWrappers.test_roundtripcCs4t ¡}t ¡| tj¡t ¡}| ||¡dS)N)r{r~rrxryrzr)rrr€rrr Ú&test_default_recursion_limit_preserved4s  zDTestSysRecursionLimitWrappers.test_default_recursion_limit_preservedcCsFdd„}t |d¡| |jd¡d|_t |d¡| |jd¡dS)NcSsdS)Nrrrrr Úfunc<rz7TestSysRecursionLimitWrappers.test_fixdoc..funcZmorezdocstring more)rZfixdocrÚ__doc__)rrƒrrr Ú test_fixdoc;s   z)TestSysRecursionLimitWrappers.test_fixdocN)r r r r}rr‚r…rrrr rus ruÚ__main__rZ)Ú verbosity)ZidlelibrZunittestrZ test.supportrr@r{ZTestCaserrnr#r.r;rhrur Úmainrrrr Ús   go'