£Á°è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
     f                 @   s  d Z ddlmZ ddlmZ ddlZddlmZ ddlmZ ddl	m
Z
 ddlZddlZddlmZ dd	lmZ G d
d dejZeZd\ZZeeddgedZeeddZeedddgZeeddZeeddZeededZ ee ddZ!ee!ddZ"ee dd Z#ee d!Z$e%e$d" e%ej& G d#d$ d$ej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 ).zTest browser, coverage 90%.    )browser)requiresN)mock)Func)deque)Tk)TreeNodec               @   sD   e Zd Zedd Zedd Zdd Zdd Zd	d
 Zdd Z	dS )ModuleBrowserTestc             C   s2   t d t | _| j  tj| jtdd| _d S )NZguiT)Z_utest)r   r   rootZwithdrawr   ZModuleBrowser__file__mb)cls r   C/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_browser.py
setUpClass   s    
zModuleBrowserTest.setUpClassc             C   s*   | j   | j  | j  | `| ` d S )N)r   closer
   Zupdate_idletasksdestroy)r   r   r   r   tearDownClass   s    


zModuleBrowserTest.tearDownClassc             C   sB   | j }| j}||jt |tji  | |jt | 	t
j d S )N)r   assertEqualpathr   pyclbrZ_modulesassertIsInstancenoder   ZassertIsNotNoner   Z	file_open)selfr   eqr   r   r   	test_init!   s    zModuleBrowserTest.test_initc             C   s6   | j }| tjt|j  | |j	 d d S )NzModule Browser)
r   assertInosr   basenamer   toptitler   Ziconname)r   r   r   r   r   test_settitle)   s    zModuleBrowserTest.test_settitlec             C   s    | j }| }| |tj d S )N)r   Zrootnoder   r   ModuleBrowserTreeItem)r   r   Zrnr   r   r   test_rootnode.   s    zModuleBrowserTest.test_rootnodec             C   sR   | j }t |j_t |j_|  | |jjj | |jjj |j`|j`d S )N)r   r   r   r   r   r   
assertTrueZcalled)r   r   r   r   r   
test_close3   s    

zModuleBrowserTest.test_closeN)
__name__
__module____qualname__classmethodr   r   r   r!   r#   r%   r   r   r   r   r	      s   r	   )testztest.pyC0base   F1   C1    C2   F3	   f0   f1   f2   c1   )r+   r7   r*   c               @   s   e Zd Zdd Zdd ZdS )TransformChildrenTestc             C   s   | j }tj}t|td}||ttg ||d jd ||d jd t|td}||d jd t|td}||g  d S )Nr*   r   zC0(base)r-   r7   zdifferent name)r   r   transform_childrenlistmock_pyclbr_treer+   r7   name)r   r   	transformtclr   r   r   test_transform_module_childrenU   s    z4TransformChildrenTest.test_transform_module_childrenc             C   s   | j }tj}t|tj}||ttg ||d jd ||d jd t|tj}||d jd |t|t	jt
tg d S )Nr   r.   r-   zC1())r   r   r@   rA   r+   childrenr.   r0   rC   r7   r9   r=   )r   r   rD   rE   r   r   r   test_transform_node_childrend   s    z2TransformChildrenTest.test_transform_node_childrenN)r&   r'   r(   rF   rH   r   r   r   r   r?   S   s   r?   c               @   sZ   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
eddd ZdS )ModuleBrowserTreeItemTestc             C   s   t t| _d S )N)r   r"   fnamembt)r   r   r   r   r   t   s    z$ModuleBrowserTreeItemTest.setUpClassc             C   s   |  | jjt d S )N)r   rK   filerJ   )r   r   r   r   r   x   s    z#ModuleBrowserTreeItemTest.test_initc             C   s   |  | j t d S )N)r   rK   GetTextrJ   )r   r   r   r   test_gettext{   s    z&ModuleBrowserTreeItemTest.test_gettextc             C   s   |  | j d d S )Npython)r   rK   GetIconName)r   r   r   r   test_geticonname~   s    z*ModuleBrowserTreeItemTest.test_geticonnamec             C   s   |  | j  d S )N)r$   rK   IsExpandable)r   r   r   r   test_isexpandable   s    z+ModuleBrowserTreeItemTest.test_isexpandablec             C   s\   t jj}t j}ttdt j_tttgdt _z| | j	
 ttg W d |t j_|t _X d S )N)result)r   r   Zreadmodule_exr@   r   rB   r7   r+   r   rK   listchildren)r   Zsave_rexZsave_tcr   r   r   test_listchildren   s    z+ModuleBrowserTreeItemTest.test_listchildrenc             C   sb   | j }tttgd|_| \}}|`| |tj | |tj | 	|j
d | 	|j
d d S )N)rT   r7   zC0(base))rK   r   r7   r+   rU   
GetSubListr   r   ChildBrowserTreeItemr   rC   )r   rK   Zsub0Zsub1r   r   r   test_getsublist   s    z)ModuleBrowserTreeItemTest.test_getsublistzidlelib.browser.file_openc          	   C   sh   | j }tjddd |  |  W d Q R X tjddd  |  |  |t W d Q R X d S )Nzos.path.existsF)return_valueT)rK   r   patchOnDoubleClickZassert_not_calledassert_calledZcalled_withrJ   )r   fopenrK   r   r   r   test_ondoubleclick   s    z,ModuleBrowserTreeItemTest.test_ondoubleclickN)r&   r'   r(   r)   r   r   rN   rQ   rS   rV   rY   r   r[   r_   r   r   r   r   rI   r   s   
rI   c               @   s^   e Zd Zedd Zedd Zdd Zdd Zd	d
 Zdd Z	dd Z
eddd ZdS )ChildBrowserTreeItemTestc             C   s(   t j}|t| _|t| _|t| _d S )N)r   rX   r9   cbt_f1r0   cbt_C1r.   cbt_F1)r   CBTr   r   r   r      s    

z#ChildBrowserTreeItemTest.setUpClassc             C   s   | ` | `| `d S )N)rb   ra   rc   )r   r   r   r   r      s    z&ChildBrowserTreeItemTest.tearDownClassc             C   sB   | j }|| jjd | | jj || jjd | | jj d S )NzC1()r9   )r   rb   rC   assertFalseZ
isfunctionra   r$   )r   r   r   r   r   r      s
    z"ChildBrowserTreeItemTest.test_initc             C   s(   |  | j d |  | j d d S )Nz
class C1()zdef f1(...))r   rb   rM   ra   )r   r   r   r   rN      s    z%ChildBrowserTreeItemTest.test_gettextc             C   s(   |  | j d |  | j d d S )NfolderrO   )r   rb   rP   ra   )r   r   r   r   rQ      s    z)ChildBrowserTreeItemTest.test_geticonnamec             C   s4   |  | j  |  | j  | | j  d S )N)r$   rb   rR   ra   re   rc   )r   r   r   r   rS      s    z*ChildBrowserTreeItemTest.test_isexpandablec             C   sX   | j }tj}| j }| |d | |t|d ||d jd || j g  d S )Nr   r-   r;   )	r   r   rX   ra   rW   r   lenrC   rc   )r   r   rd   Z	f1sublistr   r   r   rY      s    
z(ChildBrowserTreeItemTest.test_getsublistzidlelib.browser.file_openc             C   s>   t   }|j_| j  |  |  || jjj	 d S )N)
r   ZMockrZ   Zgotolinerc   r\   r]   Zassert_called_withobjlineno)r   r^   Zgotor   r   r   r_      s
    
z+ChildBrowserTreeItemTest.test_ondoubleclickN)r&   r'   r(   r)   r   r   r   rN   rQ   rS   rY   r   r[   r_   r   r   r   r   r`      s   r`   c               @   s   e Zd ZdZdd ZdS )NestedChildrenTestzFTest that all the nodes in a nested tree are added to the BrowserTree.c          	   C   s   t  }g }ddddddddd	g	}tj}||t|tf xd|r| }| }|| | |j	|
  | | d
 | | |g k ||j	 q>W | || d S )Nr7   zC0(base)r9   r=   r.   zC1()r;   r3   r5   )rO   rf   )r   r   rX   extendr7   r+   popleftrW   r   rC   rM   rP   ZassertIsrR   appendr   )r   ZqueueZactual_namesZexpected_namesrd   cbZsublistr   r   r   test_nested   s"    
zNestedChildrenTest.test_nestedN)r&   r'   r(   __doc__ro   r   r   r   r   rj      s   rj   __main__   )	verbosity)-rp   Zidlelibr   Ztest.supportr   Zunittestr   Zidlelib.idle_test.mock_idler   collectionsr   Zos.pathr   r   Ztkinterr   Zidlelib.treer   ZTestCaser	   r   modulerJ   ZClassr+   Z_nest_functionr.   Z_nest_classr0   r3   r5   ZFunctionr7   r9   r;   r=   rB   r@   rG   r?   rI   r`   rj   r&   mainr   r   r   r   <module>   s>   -
56
