£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~d-                 @   s   d dl mZ d dlZd dlmZ d dlmZ d dlZd dlZG dd dejZ	G dd de
ZG d	d
 d
ZG dd dejZG dd dejZG dd dejZedkrejdd dS )    )runN)mock)captured_stderrc               @   s   e Zd Zdd ZdS )RunTestc             C   s   G dd dt }|d}|d}y
||W np |k
r   y|W nR |k
r   t 2}tjtd}dd |_t  W d Q R X W d Q R X Y nX Y nX | 	 
 }| dt| | d	|d
  | d|d  d S )Nc               @   s   e Zd Zdd ZdS )zDRunTest.test_print_exception_unhashable.<locals>.UnhashableExceptionc             S   s   dS )NT )selfotherr   r   ?/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_run.py__eq__   s    zKRunTest.test_print_exception_unhashable.<locals>.UnhashableException.__eq__N)__name__
__module____qualname__r
   r   r   r   r	   UnhashableException   s   r   ex1ex2Zcleanup_tracebackc             S   s   | S )Nr   )ter   r   r	   <lambda>       z9RunTest.test_print_exception_unhashable.<locals>.<lambda>   zUnhashableException: ex2   zUnhashableException: ex1
   )	Exceptionr   r   Zpatchobjectr   Zside_effectprint_exceptiongetvaluestrip
splitlinesassertEquallenZassertIn)r   r   r   r   outputZcttbr   r   r	   test_print_exception_unhashable   s$    

(z'RunTest.test_print_exception_unhashableN)r   r   r   r"   r   r   r   r	   r      s   r   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )Sc             C   s   dt | j S )Nz%s:str)typer   )r   r   r   r	   __str__*   s    z	S.__str__c             C   s   dt | j S )Nz
%s:unicode)r$   r   )r   r   r   r	   __unicode__,   s    zS.__unicode__c             C   s   dS )Nr   r   )r   r   r   r	   __len__.   s    z	S.__len__c             C   s   t dS )Nabc)iter)r   r   r   r	   __iter__0   s    z
S.__iter__c             G   s   dt | j S )Nz%s:item)r$   r   )r   argsr   r   r	   __getitem__2   s    zS.__getitem__c             G   s   dt | j S )Nz%s:slice)r$   r   )r   r+   r   r   r	   __getslice__4   s    zS.__getslice__N)	r   r   r   r%   r&   r'   r*   r,   r-   r   r   r   r	   r#   )   s   r#   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )	MockShellc             C   s   |    d S )N)reset)r   r   r   r	   __init__9   s    zMockShell.__init__c             G   s   | j | d S )N)writtenappend)r   r+   r   r   r	   write;   s    zMockShell.writec             C   s
   | j  S )N)linespop)r   r   r   r	   readline=   s    zMockShell.readlinec             C   s   d S )Nr   )r   r   r   r	   close?   s    zMockShell.closec             C   s
   g | _ d S )N)r1   )r   r   r   r	   r/   A   s    zMockShell.resetc             C   s   t |d d d | _d S )N)listr4   )r   r4   r   r   r	   pushC   s    zMockShell.pushN)	r   r   r   r0   r3   r6   r7   r/   r:   r   r   r   r	   r.   8   s   r.   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )StdInputFilesTestc             C   s   t  }t|d}| |tj | |jd | |jd | 	|j
 | |jd | |j | |  | |  | |  | |  d S )Nstdinzutf-8strictz<stdin>)r.   r   StdInputFileassertIsInstanceio
TextIOBaser   encodingerrorsassertIsNonenewlinesnameassertFalseclosed
assertTrueisattyreadablewritableseekable)r   shellfr   r   r	   	test_miscI   s    zStdInputFilesTest.test_miscc             C   sd   t  }t|d}| t|j | t|j | t|jd | t|jd | t|j	dg d S )Nr<   r   x)
r.   r   r>   assertRaisesOSErrorfilenotellseekr3   
writelines)r   rN   rO   r   r   r	   test_unsupportedW   s    z"StdInputFilesTest.test_unsupportedc             C   s  t  }t|d}|dddg | | d |dddg | |dd |dddg | |d d |ddddg | |dd	 | |d
d | |dd |ddg | |dd | t|jd | t|jd | t|jdd d S )Nr<   zone
ztwo
 zone
two
r8   zthree
   onr   ze
tr   z	wo
three
r   g      ?1   )r.   r   r>   r:   r   readrR   	TypeError)r   rN   rO   r   r   r	   	test_read`   s"    zStdInputFilesTest.test_readc             C   sb  t  }t|d}|ddddg | | d | |dd | |d d |dg | | d | | d |dd	d
g | | d | | d	 |dddg | |dd | |dd | |dd | |dd |ddg | |dd | t|jd | t|jd | t|jdd d S )Nr<   zone
ztwo
zthree
zfour
r8   zone
two
ZonetwoZthreerZ   r[   r]   r   
r   r   rY   g      ?r\   )	r.   r   r>   r:   r   r6   rR   r_   	readlines)r   rN   rO   r   r   r	   test_readlinet   s,    zStdInputFilesTest.test_readlinec             C   s8  t  }t|d}|dddg | | ddg |dddg | |dddg |dddg | |d ddg |dddg | |dddg |dddg | |ddg |dddg | |dddg |dddg | t|jd	 | t|jd
 | t|jdd d S )Nr<   zone
ztwo
rY   r8   r   r      g      ?r\   r]   )r.   r   r>   r:   r   rc   rR   r_   )r   rN   rO   r   r   r	   test_readlines   s$    z StdInputFilesTest.test_readlinesc             C   sv   t  }t|d}|dddg | |j | | d |  | |j | | d | 	t
|jd d S )Nr<   zone
ztwo
rY   r]   )r.   r   r>   r:   rG   rH   r   r6   r7   rR   r_   )r   rN   rO   r   r   r	   
test_close   s    zStdInputFilesTest.test_closeN)	r   r   r   rP   rX   r`   rd   rf   rg   r   r   r   r	   r;   G   s   	r;   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )StdOutputFilesTestc             C   s   t  }t|d}| |tj | |jd | |jd | 	|j
 | |jd | |j | |  | |  | |  | |  d S )Nstdoutzutf-8r=   z<stdout>)r.   r   StdOutputFiler?   r@   rA   r   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   )r   rN   rO   r   r   r	   rP      s    zStdOutputFilesTest.test_miscc             C   sb   t  }t|d}| t|j | t|j | t|jd | t|jd | t|j	d d S )Nri   r   )
r.   r   rj   rR   rS   rT   rU   rV   r^   r6   )r   rN   rO   r   r   r	   rX      s    z#StdOutputFilesTest.test_unsupportedc             C   s  t  }t|d}|d | |jdg |  |d | |jdg |  |td | |jdg | t|jd d t	 |  | 
t|j | |jg  | 
t|jd | 
t|jd | |jg  | 
t|jdd	 | |jg  d S )
Nri   test)rk   ri   u	   tèś𝖙)u	   tèś𝖙ri   r   s   test{   spam)r.   r   rj   r3   r   r1   r/   r#   r$   strrR   r_   )r   rN   rO   r   r   r	   
test_write   s&    

zStdOutputFilesTest.test_writec             C   s   t  }t|ddd}|d | |jdg |  |td | |jdg | t|jd d t	 |  | 
t|j | |jg  | 
t|jd | 
t|jd | |jg  | 
t|jd	d
 | |jg  d S )Nstderrziso-8859-15backslashreplaceu   tèś𝖙¤)u   tè\u015b\U0001d599\xa4rp   r   s   testrl   rk   rm   )r.   r   rj   r3   r   r1   r/   r#   r$   rn   rR   r_   )r   rN   rO   r   r   r	   test_write_stderr_nonencodable   s     
z1StdOutputFilesTest.test_write_stderr_nonencodablec             C   sT  t  }t|d}|g  | |jg  |  |ddg | |jddg |  |ddg | |jdd	g |  |td
g | |jdg | t|jd d t	 |  | 
t|j | |jg  | 
t|jd | |jg  | 
t|jdg | 
t|jdg | |jg  | 
t|jg g  | |jg  d S )Nri   zone
ra   )zone
ri   )ra   ri   u   onè
u   twò)u   onè
ri   )u   twòri   u   tèst)u   tèstri   r   rl   s   test)r.   r   rj   rW   r   r1   r/   r#   r$   rn   rR   r_   )r   rN   rO   r   r   r	   test_writelines   s4    


z"StdOutputFilesTest.test_writelinesc             C   sx   t  }t|d}| |j |d |  | |j | t	|jd | 
|jdg |  | t|jd d S )Nri   rk   rQ   )rk   ri   r]   )r.   r   rj   rG   rH   r3   r7   rI   rR   
ValueErrorr   r1   r_   )r   rN   rO   r   r   r	   rg     s    
zStdOutputFilesTest.test_closeN)	r   r   r   rP   rX   ro   rr   rs   rg   r   r   r   r	   rh      s   	rh   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestSysRecursionLimitWrappersc             C   sL   t   | t j tj}| jt|dd | t|dd | t|d d S )Nd   )limiti  r   )	r   install_recursionlimit_wrappers
addCleanup!uninstall_recursionlimit_wrapperssyssetrecursionlimitrR   r_   rt   )r   rO   r   r   r	    test_bad_setrecursionlimit_calls  s    z>TestSysRecursionLimitWrappers.test_bad_setrecursionlimit_callsc             C   sT   t   | t j t }| tj| t|d  t }| ||d  d S )Nr   )r   rx   ry   rz   r{   getrecursionlimitr|   r   )r   orig_reclimitnew_reclimitr   r   r	   test_roundtrip'  s    z,TestSysRecursionLimitWrappers.test_roundtripc             C   s4   t  }t  | tj t  }| || d S )N)r{   r~   r   rx   ry   rz   r   )r   r   r   r   r   r	   &test_default_recursion_limit_preserved4  s
    zDTestSysRecursionLimitWrappers.test_default_recursion_limit_preservedc             C   sF   dd }t |d | |jd d |_t |d | |jd d S )Nc               S   s   d S )Nr   r   r   r   r	   func<  r   z7TestSysRecursionLimitWrappers.test_fixdoc.<locals>.funcZmorezdocstring

more)r   Zfixdocr   __doc__)r   r   r   r   r	   test_fixdoc;  s    z)TestSysRecursionLimitWrappers.test_fixdocN)r   r   r   r}   r   r   r   r   r   r   r	   ru     s   ru   __main__rZ   )	verbosity)Zidlelibr   Zunittestr   Ztest.supportr   r@   r{   ZTestCaser   rn   r#   r.   r;   rh   ru   r   mainr   r   r   r	   <module>   s   go'