B  f-@sdZddlmZddlZddlmZddlmZddlZddlZGdddej Z Gdd d e Z Gd d d Z Gd d d ej ZGdddej ZGdddej ZedkrejdddS)zTest run, coverage 42%.)runN)mock)captured_stderrc@seZdZddZdS)RunTestcCsGdddt}|d}|d}y ||Wnp|k ry|WnR|k rt2}tjtd}dd|_tWdQRXWdQRXYnXYnX| }| dt || d |d | d |d dS) Nc@seZdZddZdS)zDRunTest.test_print_exception_unhashable..UnhashableExceptioncSsdS)NT)selfotherrr?/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 UnhashableExceptionsrex1ex2Zcleanup_tracebackcSs|S)Nr)terrr z9RunTest.test_print_exception_unhashable.. zUnhashableException: ex2zUnhashableException: ex1 ) ExceptionrrZpatchobjectrZ side_effectprint_exceptiongetvaluestrip splitlines assertEquallenZassertIn)rrrroutputZcttbrrr test_print_exception_unhashables$  (z'RunTest.test_print_exception_unhashableN)r r r r"rrrr r src@s<eZdZddZddZddZddZd 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__cCstdS)Nabc)iter)rrrr __iter__0sz S.__iter__cGsdt|jS)Nz%s:item)r$r )rargsrrr __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<eZdZddZddZddZddZd d Zd d Zd S) MockShellcCs |dS)N)reset)rrrr __init__9szMockShell.__init__cGs|j|dS)N)writtenappend)rr+rrr write;szMockShell.writecCs |jS)N)linespop)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<eZdZddZddZddZddZd d Zd d Zd S)StdInputFilesTestcCst}t|d}||tj||jd||jd| |j ||j d| |j ||||| || |dS)Nstdinzutf-8strictz)r.r StdInputFileassertIsInstanceio TextIOBaserencodingerrors assertIsNonenewlinesname assertFalseclosed assertTrueisattyreadablewritableseekable)rshellfrrr test_miscIs   zStdInputFilesTest.test_misccCsdt}t|d}|t|j|t|j|t|jd|t|jd|t|j dgdS)Nr<rx) r.rr> assertRaisesOSErrorfilenotellseekr3 writelines)rrNrOrrr test_unsupportedWs z"StdInputFilesTest.test_unsupportedcCst}t|d}|dddg||d|dddg||dd|dddg||dd|ddddg||dd ||d d ||d d |ddg||dd|t|jd|t|jd|t|jdddS)Nr<zone ztwo zone two r8zthree onrze trz wo three rg?1)r.rr>r:rreadrR TypeError)rrNrOrrr test_read`s" zStdInputFilesTest.test_readcCsbt}t|d}|ddddg||d||dd||dd|dg||d||d|dd d g||d||d |dddg||d d ||d d||d d||dd|ddg||dd|t|jd|t|jd|t|jd d dS)Nr<zone ztwo zthree zfour r8zone two ZonetwoZthreerZr[r]r rrrYg?r\) r.rr>r:rr6rRr_ readlines)rrNrOrrr test_readlinets,  zStdInputFilesTest.test_readlinecCs8t}t|d}|dddg||ddg|dddg||dddg|dddg||dddg|dddg||dddg|dddg||ddg|dddg||dddg|dddg|t|jd |t|jd |t|jd d dS) Nr<zone ztwo rYr8rrg?r\r])r.rr>r:rrcrRr_)rrNrOrrr test_readliness$ z StdInputFilesTest.test_readlinescCsvt}t|d}|dddg||j||d|||j||d| t |jddS)Nr<zone ztwo rYr]) r.rr>r:rGrHrr6r7rRr_)rrNrOrrr test_closes   zStdInputFilesTest.test_closeN) r r r rPrXr`rdrfrgrrrr r;Gs  r;c@s<eZdZddZddZddZddZd d Zd d Zd S)StdOutputFilesTestcCst}t|d}||tj||jd||jd| |j ||j d| |j ||| |||| |dS)Nstdoutzutf-8r=z)r.r StdOutputFiler?r@rArrBrCrDrErFrGrHrIrJrKrLrM)rrNrOrrr rPs   zStdOutputFilesTest.test_misccCsbt}t|d}|t|j|t|j|t|jd|t|jd|t|j ddS)Nrir) r.rrjrRrSrTrUrVr^r6)rrNrOrrr rXs z#StdOutputFilesTest.test_unsupportedcCst}t|d}|d||jdg||d||jdg||td||jdg|t|jddt || t |j||jg| t |jd| t |jd||jg| t |jdd ||jgdS) Nritest)rkriu tèś𝖙)u tèś𝖙rirstest{spam) r.rrjr3rr1r/r#r$strrRr_)rrNrOrrr test_writes&   zStdOutputFilesTest.test_writecCst}t|ddd}|d||jdg||td||jdg|t|jddt || t |j||jg| t |jd| t |jd||jg| t |jd d ||jgdS) Nstderrz iso-8859-15backslashreplaceu tèś𝖙¤)utè\u015b\U0001d599\xa4rprstestrlrkrm) r.rrjr3rr1r/r#r$rnrRr_)rrNrOrrr test_write_stderr_nonencodables  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||jgdS)Nrizone ra)zone ri)rariuonè utwò)uonè ri)utwòriutèst)utèstrirrlstest) r.rrjrWrr1r/r#r$rnrRr_)rrNrOrrr test_writeliness4    z"StdOutputFilesTest.test_writelinescCsxt}t|d}||j|d|||j|t |jd| |j dg||t |jddS)NrirkrQ)rkrir]) r.rrjrGrHr3r7rIrR ValueErrorrr1r_)rrNrOrrr rgs    zStdOutputFilesTest.test_closeN) r r r rPrXrorrrsrgrrrr rhs  rhc@s,eZdZddZddZddZddZd S) TestSysRecursionLimitWrapperscCsLt|tjtj}|jt|dd|t|dd|t|ddS)Nd)limitir) rinstall_recursionlimit_wrappers addCleanup!uninstall_recursionlimit_wrapperssyssetrecursionlimitrRr_rt)rrOrrr test_bad_setrecursionlimit_callss  z>TestSysRecursionLimitWrappers.test_bad_setrecursionlimit_callscCsTt|tjt}|tj|t|dt}|||ddS)Nr)rrxryrzr{getrecursionlimitr|r)r orig_reclimit new_reclimitrrr test_roundtrip's z,TestSysRecursionLimitWrappers.test_roundtripcCs4t}t|tjt}|||dS)N)r{r~rrxryrzr)rrrrrr &test_default_recursion_limit_preserved4s  zDTestSysRecursionLimitWrappers.test_default_recursion_limit_preservedcCsFdd}t|d||jdd|_t|d||jddS)NcSsdS)Z docstringNrrrrr func<rz7TestSysRecursionLimitWrappers.test_fixdoc..funcZmorezdocstring more)rZfixdocr__doc__)rrrrr test_fixdoc;s   z)TestSysRecursionLimitWrappers.test_fixdocN)r r r r}rrrrrrr rus ru__main__rZ) verbosity)rZidlelibrZunittestrZ test.supportrr@r{ZTestCaserrnr#r.r;rhrur mainrrrr s   go'