B � f�-�@s�dZddlmZddlZddlmZddlmZddlZddlZGdd�dej �Z Gdd �d e �Z Gd d �d �Z Gd d �d ej �ZGdd�dej �ZGdd�dej �Zedkr�ejdd�dS)zTest run, coverage 42%.�)�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_readlines�s$ 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)Z docstringNrrrrr �func<rz7TestSysRecursionLimitWrappers.test_fixdoc..funcZmorezdocstring more)rZfixdocr�__doc__)rr�rrr � test_fixdoc;s   z)TestSysRecursionLimitWrappers.test_fixdocN)r r r r}r�r�r�rrrr rus ru�__main__rZ)� verbosity)r�ZidlelibrZunittestrZ test.supportrr@r{ZTestCaserrnr#r.r;rhrur �mainrrrr �s   go'