3 Õì2aÆ$ã@s ddlmZddlZddlmZddlmZddlZGdd„dejƒZGdd„de ƒZ Gd d „d ƒZ Gd d „d ejƒZ Gd d„dejƒZ edkrœejdd�dS)é)ÚrunN)Úmock)Úcaptured_stderrc@seZdZdd„ZdS)ÚRunTestcCsàGdd„dtƒ}|dƒ}|dƒ}y ||‚Wnp|k ršy|‚WnR|k r”tƒ�2}tjjtdƒ�}dd„|_tjƒWdQRXWdQRXYnXYnX|jƒj ƒj ƒ}|j dt |ƒƒ|j d |d ƒ|j d |d ƒdS) Nc@seZdZdd„ZdS)zDRunTest.test_print_exception_unhashable..UnhashableExceptioncSsdS)NT©)ÚselfÚotherrrú-/opt/alt/python36/lib64/python3.6/test_run.pyÚ__eq__szKRunTest.test_print_exception_unhashable..UnhashableException.__eq__N)Ú__name__Ú __module__Ú __qualname__r rrrr ÚUnhashableException srÚex1Úex2Zcleanup_tracebackcSs|S)Nr)ÚtÚerrr Úsz9RunTest.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_unhashable s$  (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__.sz S.__iter__cGsdt|ƒjS)Nz%s:item)r#r )rÚargsrrr Ú __getitem__0sz S.__getitem__cGsdt|ƒjS)Nz%s:slice)r#r )rr*rrr Ú __getslice__2szS.__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 |jƒdS)N)Úreset)rrrr Ú__init__7szMockShell.__init__cGs|jj|ƒdS)N)ÚwrittenÚappend)rr*rrr Úwrite9szMockShell.writecCs |jjƒS)N)ÚlinesÚpop)rrrr Úreadline;szMockShell.readlinecCsdS)Nr)rrrr Úclose=szMockShell.closecCs g|_dS)N)r0)rrrr r.?szMockShell.resetcCst|ƒddd…|_dS)Nééÿÿÿÿ)Úlistr3)rr3rrr ÚpushAszMockShell.pushN) r r r r/r2r5r6r.r:rrrr r-6s r-c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚPseudeInputFilesTestcCsžtƒ}tj|ddƒ}|j|tjƒ|j|jdƒ|j|j ƒ|j|j ƒ|j|j dƒ|j |j ƒ|j|jƒƒ|j|jƒƒ|j |jƒƒ|j |jƒƒdS)NÚstdinzutf-8z)r-rÚPseudoInputFileÚassertIsInstanceÚioÚ TextIOBaserÚencodingÚ assertIsNoneÚerrorsÚnewlinesÚnameÚ assertFalseÚclosedÚ assertTrueÚisattyÚreadableÚwritableÚseekable)rÚshellÚfrrr Ú test_miscGs   zPseudeInputFilesTest.test_misccCsftƒ}tj|ddƒ}|jt|jƒ|jt|jƒ|jt|jdƒ|jt|jdƒ|jt|j dgƒdS)Nr<zutf-8rÚx) r-rr=Ú assertRaisesÚOSErrorÚfilenoÚtellÚseekr2Ú writelines)rrMrNrrr Útest_unsupportedUsz%PseudeInputFilesTest.test_unsupportedcCstƒ}tj|ddƒ}|jdddgƒ|j|jƒdƒ|jdddgƒ|j|jdƒdƒ|jdddgƒ|j|jdƒdƒ|jddddgƒ|j|jd ƒd ƒ|j|jd ƒd ƒ|j|jd ƒdƒ|jddgƒ|j|jdƒdƒ|jt|jdƒ|jt|jdƒ|jt|jddƒdS)Nr<zutf-8zone ztwo Úzone two r7zthree éÚonrze trz wo three rgø?Ú1r8)r-rr=r:rÚreadrQÚ TypeError)rrMrNrrr Ú test_read^s"zPseudeInputFilesTest.test_readcCsdtƒ}tj|ddƒ}|jddddgƒ|j|jƒdƒ|j|jdƒdƒ|j|jdƒdƒ|jdgƒ|j|jƒdƒ|j|jƒdƒ|jd d d gƒ|j|jƒd ƒ|j|jƒd ƒ|jdddgƒ|j|jd ƒd ƒ|j|jdƒdƒ|j|jdƒdƒ|j|jdƒdƒ|jddgƒ|j|jdƒdƒ|jt|jdƒ|jt|jdƒ|jt|jddƒdS)Nr<zutf-8zone ztwo zthree zfour r7zone two ZoneÚtwoZthreerYrZrÚ rrrXgø?r[r8) r-rr=r:rr5rQr]Ú readlines)rrMrNrrr Ú test_readliners, z"PseudeInputFilesTest.test_readlinecCs:tƒ}tj|ddƒ}|jdddgƒ|j|jƒddgƒ|jdddgƒ|j|jd ƒddgƒ|jdddgƒ|j|jdƒddgƒ|jdddgƒ|j|jdƒddgƒ|jdddgƒ|j|jdƒdgƒ|jdddgƒ|j|jd ƒddgƒ|jdddgƒ|jt|jd ƒ|jt|jd ƒ|jt|jddƒdS) Nr<zutf-8zone ztwo rXr7rrégø?r[r8)r-rr=r:rrarQr])rrMrNrrr Útest_readlines‹s$z#PseudeInputFilesTest.test_readlinescCsxtƒ}tj|ddƒ}|jdddgƒ|j|jƒ|j|jƒdƒ|jƒ|j|jƒ|j|jƒdƒ|j t |jdƒdS)Nr<zutf-8zone ztwo rXr7) r-rr=r:rFrGrr5r6rQr])rrMrNrrr Ú test_close s  zPseudeInputFilesTest.test_closeN) r r r rOrWr^rbrdrerrrr r;Es  r;c@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚPseudeOutputFilesTestcCsžtƒ}tj|ddƒ}|j|tjƒ|j|jdƒ|j|j ƒ|j|j ƒ|j|j dƒ|j |j ƒ|j|jƒƒ|j |jƒƒ|j|jƒƒ|j |jƒƒdS)NÚstdoutzutf-8z)r-rÚPseudoOutputFiler>r?r@rrArBrCrDrErFrGrHrIrJrKrL)rrMrNrrr rO®s   zPseudeOutputFilesTest.test_misccCsdtƒ}tj|ddƒ}|jt|jƒ|jt|jƒ|jt|jdƒ|jt|jdƒ|jt|j dƒdS)Nrgzutf-8r) r-rrhrQrRrSrTrUr\r5)rrMrNrrr rW¼sz&PseudeOutputFilesTest.test_unsupportedcCstƒ}tj|ddƒ}|jdƒ|j|jd gƒ|jƒ|jdƒ|j|jd gƒ|jƒ|jtdƒƒ|j|jd gƒ|jt|jddƒt ƒ|jƒ|j t |jƒ|j|jgƒ|j t |jdƒ|j t |jdƒ|j|jgƒ|j t |jddƒ|j|jgƒdS) Nrgzutf-8Útestõtèstrstesté{Zspam)rirg)rjrg)rjrg) r-rrhr2rr0r.r"r#ÚstrrQr])rrMrNrrr Ú test_writeÅs&  z PseudeOutputFilesTest.test_writecCsVtƒ}tj|ddƒ}|jgƒ|j|jgƒ|jƒ|jddgƒ|j|jd d gƒ|jƒ|jddgƒ|j|jd dgƒ|jƒ|jtdƒgƒ|j|jdgƒ|jt|jddƒt ƒ|jƒ|j t |jƒ|j|jgƒ|j t |jd ƒ|j|jgƒ|j t |jd gƒ|j t |jd gƒ|j|jgƒ|j t |jggƒ|j|jgƒdS)Nrgzutf-8úone r_õonè õtwòõtèstrrkstest)rnrg)r_rg)rorg)rprg)rqrg) r-rrhrVrr0r.r"r#rlrQr])rrMrNrrr Útest_writelinesÜs4   z%PseudeOutputFilesTest.test_writelinescCsztƒ}tj|ddƒ}|j|jƒ|jdƒ|jƒ|j|jƒ|jt |jdƒ|j |j dgƒ|jƒ|jt |jdƒdS)Nrgzutf-8rirPr7)rirg) r-rrhrFrGr2r6rHrQÚ ValueErrorrr0r])rrMrNrrr reús   z PseudeOutputFilesTest.test_closeN)r r r rOrWrmrrrerrrr rf¬s  rfÚ__main__rY)Ú verbosity)ZidlelibrZunittestrZ test.supportrr?ZTestCaserrlr"r-r;rfr Úmainrrrr Ús   g[