B
    v9a  ã               @   sˆ   d Z ddlZddlmZ ddlmZmZ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)ÚTextÚTkÚToplevel)Ú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   ú%/usr/lib/python3.7/test_searchbase.pyÚ
setUpClass   s    zSearchDialogBaseTest.setUpClassc             C   s   | j  ¡  | j  ¡  | ` d S )N)r   Úupdate_idletasksÚ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   s   d | j _t| jƒ}t|ƒ}| j  |¡ |  | j j ¡ d¡ | j  	¡  |  | j j ¡ d¡ | j j|dd |  | j j
 ¡ d¡ | ¡  | ¡  d S )NZnormalZ	withdrawnÚhello)Zsearchphrase)r   Údefault_commandr   r   r   ÚopenÚassertEqualÚtopÚstater   ÚentÚgetr   r   )r   ZtoplevelÚtextr   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_entryL   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_entries[   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   Úframer0   r   r   r   Útest_make_frameb   s    
z$SearchDialogBaseTest.test_make_framec             C   s   | j | j_d| j_|ƒ S )Nr   )r   r   r   r*   )r   Zmethr   r   r   Úbtn_test_setupn   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Úsetr8   r   r&   ÚzipÚpack_slavesr   r"   )	r   Úer    Úvarr6   ÚoptionsÚspecÚbuttonr0   r   r   r   Útest_create_option_buttonss   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backvarr9   r8   r   r'   r;   r:   r   r"   )
r   r    r=   r6   ZothersZbuttonsr?   r@   Úvalr0   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 )Nr3   r#   ZCloseZcommandr   )r   r   r   r(   rD   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)   r1   r2   r7   r8   rA   rC   rE   rF   r   r   r   r   r
      s   r
   Ú__main__é   )Ú	verbosityÚexit)Ú__doc__ZunittestZtest.supportr   Ztkinterr   r   r   Ztkinter.ttkr   Zidlelibr   r   r   r   Zidlelib.idle_test.mock_idler	   ZTestCaser
   rG   Úmainr   r   r   r   Ú<module>   s    