B
    Ûö›\à  ã               @   s€   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z
 ddlmZ ddlmZ G d	d
„ d
ejƒZedkr|ejddd dS )zTest searchbase, coverage 98%.é    N)Úrequires)ÚTk)ÚFrame)Úsearchengine)Ú
searchbase)ÚFuncc               @   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
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚSearchDialogBaseTestc             C   s   t dƒ tƒ | _d S )NZgui)r   r   Úroot)Úcls© r   ú2lib/python3.7/idlelib/idle_test/test_searchbase.pyÚ
setUpClass   s    zSearchDialogBaseTest.setUpClassc             C   s   | j  ¡  | ` d S )N)r	   Zdestroy)r
   r   r   r   ÚtearDownClass!   s    
z"SearchDialogBaseTest.tearDownClassc             C   s&   t  | j¡| _tj| j| jd| _d S )N)r	   Úengine)ÚseZSearchEnginer	   r   ÚsdbZSearchDialogBaseÚdialog)Úselfr   r   r   ÚsetUp&   s    zSearchDialogBaseTest.setUpc             C   s   | j  ¡  d S )N)r   Úclose)r   r   r   r   ÚtearDown*   s    zSearchDialogBaseTest.tearDownc             C   sx   d | j _| j  d¡ |  | j j ¡ d¡ | j  ¡  |  | j j ¡ d¡ | j jddd |  | j j ¡ d¡ | j  ¡  d S )NÚtextZnormalZ	withdrawnÚhello)Zsearchphrase)	r   Údefault_commandÚopenÚassertEqualÚtopÚstater   ÚentÚget)r   r   r   r   Útest_open_and_close-   s    
z(SearchDialogBaseTest.test_open_and_closec             C   s~   t ƒ | j_t ƒ | j_t ƒ | j_t ƒ | j_d | j_| j ¡  |  | jjj	¡ |  | jjj	¡ |  | jjj	¡ |  | jjj	¡ d S )N)
r   r   Úcreate_entriesÚcreate_option_buttonsÚcreate_other_buttonsÚcreate_command_buttonsr   Zcreate_widgetsZ
assertTrueZcalled)r   r   r   r   Útest_create_widgets<   s    




z(SearchDialogBaseTest.test_create_widgetsc             C   sª   | j }d| j_| j| j_| j dd¡\}}||d dƒ |  | ¡ d¡ | ¡ }|t	|d ƒdƒ |t	|d ƒdƒ |t	|d ƒdƒ |t	|d	 ƒdƒ || jjdƒ d S )
Nr   zTest:r   r   ÚrowÚcolumné   ZrowspanZ
columnspan)
r   r   r&   r	   r   Z
make_entryÚassertInr   Z	grid_infoÚint)r   ZequalÚentryÚlabelZegir   r   r   Útest_make_entryJ   s    
z$SearchDialogBaseTest.test_make_entryc             C   s@   | j | j_d| j_| j d¡ | j ¡  |  | jj 	¡ d¡ d S )Nr   r   )
r	   r   r   r&   r   Zsetpatr!   r)   r   r   )r   r   r   r   Útest_create_entriesY   s
    

z(SearchDialogBaseTest.test_create_entriesc             C   sd   d| j _| j| j _| j  ¡ \}}|  |d¡ |  tt|ƒƒd¡ | j  d¡\}}|  |d d¡ d S )Nr   Ú z<class 'tkinter.ttk.Frame'>Z	testlabelr   )r   r&   r	   r   Z
make_framer   ÚstrÚtype)r   Úframer,   r   r   r   Útest_make_frame`   s    
z$SearchDialogBaseTest.test_make_framec             C   s   | j | j_d| j_|ƒ S )Nr   )r	   r   r   r&   )r   Úmethr   r   r   Úbtn_test_setupl   s    
z#SearchDialogBaseTest.btn_test_setupc       	      C   s–   | j }xŠdD ]‚}x&|j|j|j|jfD ]}| |¡ q&W |  | jj¡\}}xBt	|| 
¡ ƒD ]0\}}|\}}|  |d |¡ |  | ¡ |¡ qZW qW d S )N)r   r(   r   )r   ZrevarZcasevarZwordvarZwrapvarÚsetr5   r   r"   ÚzipÚpack_slavesr   r   )	r   Úer   Úvarr2   ZoptionsÚspecÚbuttonr,   r   r   r   Útest_create_option_buttonsq   s    
z/SearchDialogBaseTest.test_create_option_buttonsc       
      C   s†   x€dD ]x}| j j}| |¡ |  | jj¡\}}| ¡ }xFt||ƒD ]8\}}|\}}	|  |d |	¡ ||krB|  | 	¡ |¡ qBW qW d S )N)FTr   )
r   Zbackvarr6   r5   r   r#   r8   r7   r   r   )
r   r   r:   r2   ZothersZbuttonsr;   r<   Úvalr,   r   r   r   Útest_create_other_buttons}   s    

z.SearchDialogBaseTest.test_create_other_buttonsc             C   s@   | j | j_t| jjƒ| j_| j d| jj¡}|  |d d¡ d S )NZTestr   )r	   r   r   r   ÚbuttonframeZmake_buttonr   r   )r   Zbtnr   r   r   Útest_make_buttonŒ   s    
z%SearchDialogBaseTest.test_make_buttonc             C   sR   | j | j_| j ¡  d}x(| jj ¡ D ]}|d dkr&|d }q&W |  d|¡ d S )Nr/   r   r   Zcommand)r	   r   r   r$   r@   Zwinfo_childrenr)   )r   ZclosebuttoncommandZchildr   r   r   Útest_create_command_buttons’   s    

z0SearchDialogBaseTest.test_create_command_buttonsN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r   r   r   r    r%   r-   r.   r3   r5   r=   r?   rA   rB   r   r   r   r   r      s   r   Ú__main__é   )Ú	verbosityÚexit)Ú__doc__ZunittestZtest.supportr   Ztkinterr   Ztkinter.ttkr   Zidlelibr   r   r   r   Zidlelib.idle_test.mock_idler   ZTestCaser   rC   Úmainr   r   r   r   Ú<module>   s    