<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</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r¶e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 )Néd   )Ú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'