
    z%i;                         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
ej"                        Zedk(  r ej(                  dd       yy)zTest searchbase, coverage 98%.    N)requires)TextTkToplevel)Frame)searchengine)
searchbase)Funcc                   t    e Zd Zed        Zed        Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zy)SearchDialogBaseTestc                 8    t        d       t               | _        y )Ngui)r   r   rootclss    U/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/idle_test/test_searchbase.py
setUpClasszSearchDialogBaseTest.setUpClass   s    4    c                 p    | j                   j                          | j                   j                          | ` y N)r   update_idletasksdestroyr   s    r   tearDownClassz"SearchDialogBaseTest.tearDownClass!   s'    !!#Hr   c                     t        j                  | j                        | _        t	        j
                  | j                  | j                        | _        y )N)r   engine)seSearchEnginer   r   sdbSearchDialogBasedialogselfs    r   setUpzSearchDialogBaseTest.setUp'   s2    oodii0**		$++Nr   c                 8    | j                   j                          y r   )r    closer!   s    r   tearDownzSearchDialogBaseTest.tearDown+   s    r   c                    d | j                   _        t        | j                        }t	        |      }| j                   j                  |       | j                  | j                   j                  j                         d       | j                   j                          | j                  | j                   j                  j                         d       | j                   j                  |d       | j                  | j                   j                  j                         d       |j                          |j                          y )Nnormal	withdrawnhello)searchphrase)r    default_commandr   r   r   openassertEqualtopstater%   entgetr   r   )r"   topleveltexts      r   test_open_and_closez(SearchDialogBaseTest.test_open_and_close.   s    &*#DII&H~..0(;..0+>G4,,.8!!#r   c                    t               | j                  _        t               | j                  _        t               | j                  _        t               | j                  _        d | j                  _        | j                  j                          | j                  | j                  j                  j                         | j                  | j                  j                  j                         | j                  | j                  j                  j                         | j                  | j                  j
                  j                         y r   )
r
   r    create_entriescreate_option_buttonscreate_other_buttonscreate_command_buttonsr,   create_widgets
assertTruecalledr!   s    r   test_create_widgetsz(SearchDialogBaseTest.test_create_widgets>   s    %)V",0F)+/6(-1V*&*#""$2299:99@@A88??@::AABr   c                    | j                   }d| j                  _        t        | j                        | j                  _        | j                  j                  dd      \  }} ||d   d       | j                  |j                         d       |j                         } |t        |d         d        |t        |d         d        |t        |d         d        |t        |d	         d        || j                  j                  d       y )
Nr   zTest:r*   r4   rowcolumn   rowspan
columnspan)r.   r    r@   r   r   frame
make_entryassertInr2   	grid_infoint)r"   equalentrylabelegis        r   test_make_entryz$SearchDialogBaseTest.test_make_entryL   s      !$)),{{--gw?ueFmW%eiik7+ooc#e*oq!c#h- !$c#i.!1%c#l#$a(dkkooq!r   c                 @   t        | j                        | j                  _        d| j                  _        | j
                  j                  d       | j                  j                          | j                  | j                  j                  j                         d       y )Nr   r*   )r   r   r    rE   r@   r   setpatr7   rG   r1   r2   r!   s    r   test_create_entriesz(SearchDialogBaseTest.test_create_entries[   sc    !$)),7#""$dkkoo))+W5r   c                 z   d| j                   _        t        | j                        | j                   _        | j                   j                         \  }}| j                  |d       | j                  t        t        |            d       | j                   j                  d      \  }}| j                  |d   d       y )Nr    z<class 'tkinter.ttk.Frame'>	testlabelr4   )	r    r@   r   r   rE   
make_framer.   strtype)r"   rE   rL   s      r   test_make_framez$SearchDialogBaseTest.test_make_frameb   s    !$)),{{--/u#T%[)+HI {{--k:uv4r   c                 z    t        | j                        | j                  _        d| j                  _         |       S )Nr   )r   r   r    rE   r@   )r"   meths     r   btn_test_setupz#SearchDialogBaseTest.btn_test_setupn   s)    !$)),vr   c                    | j                   }dD ]  }|j                  |j                  |j                  |j                  fD ]  }|j                  |        | j                  | j                  j                        \  }}t        ||j                               D ]?  \  }}|\  }}| j                  |d   |       | j                  |j                         |       A  y )N)r   rB   r4   )r   revarcasevarwordvarwrapvarsetr[   r    r8   zippack_slavesr.   r2   )	r"   er0   varrE   optionsspecbuttonrL   s	            r   test_create_option_buttonsz/SearchDialogBaseTest.test_create_option_buttonss   s    KK 	3EAIIqyyA !00KK557NE7 #We.?.?.A B 3f!
U  7  E23	3r   c                 x   dD ]  }| j                   j                  }|j                  |       | j                  | j                  j
                        \  }}|j                         }t        ||      D ]E  \  }}|\  }}	| j                  |d   |	       ||k(  s&| j                  |j                         |       G  y )N)FTr4   )
r   backvarra   r[   r    r9   rc   rb   r.   r2   )
r"   r0   re   rE   othersbuttonsrg   rh   valrL   s
             r   test_create_other_buttonsz.SearchDialogBaseTest.test_create_other_buttons   s    " 	7E++%%CGGEN //002ME6'')G #FG 4 7f!
U  7%< $$SWWY67	7r   c                 2   t        | j                        | j                  _        t        | j                  j                        | j                  _        | j                  j                  d| j                  j                        }| j                  |d   d       y )NTestr4   )r   r   r    rE   buttonframemake_buttonr%   r.   )r"   btns     r   test_make_buttonz%SearchDialogBaseTest.test_make_button   sf    !$)),"'(9(9":kk%%fdkk.?.?@Vf-r   c                    t        | j                        | j                  _        | j                  j	                          d}| j                  j
                  j                         D ]  }|d   dk(  s|d   } | j                  d|       y )NrS   r4   Closecommandr%   )r   r   r    rE   r:   rr   winfo_childrenrG   )r"   closebuttoncommandchilds      r   test_create_command_buttonsz0SearchDialogBaseTest.test_create_command_buttons   sw    !$)),**,[[,,;;= 	6EV}'%*9%5"	6 	g12r   N)__name__
__module____qualname__classmethodr   r   r#   r&   r5   r>   rN   rQ   rX   r[   ri   ro   ru   r|    r   r   r   r      sf       
O C"6
5

37.3r   r   __main__   )	verbosityexit)__doc__unittesttest.supportr   tkinterr   r   r   tkinter.ttkr   idlelibr   r   r	   r   idlelib.idle_test.mock_idler
   TestCaser   r}   mainr   r   r   <module>r      sV       ! & &  & % ,B38,, B3J zHMMAA& r   