Ë
    #´˜j;  ã                   ó¾   — 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    ú3lib/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   € Ü—o‘o d§i¡iÓ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Ù   € à&*ˆ�‰Ô#ä˜DŸI™IÓ&ˆÜ�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ˆ�‰Ô"Ü,0«Fˆ�‰Ô)Ü+/«6ˆ�‰Ô(Ü-1«Vˆ�‰Ô*à&*ˆ�‰Ô#Ø�‰×"Ñ"Ô$à�‰˜Ÿ™×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Ó   € Ø× Ñ ˆØˆ�‰ŒÜ! $§)¡)Ó,ˆ�‰ÔØ—{‘{×-Ñ-¨g°wÓ?‰ˆˆuÙˆe�F‰m˜WÔ%à�‰�e—i‘i“k 7Ô+Ø�o‰oÓˆÙŒc�#�e‘*‹o˜qÔ!ÙŒc�#�h‘-Ó  !Ô$ÙŒc�#�i‘.Ó! 1Ô%ÙŒc�#�lÑ#Ó$ aÔ(Ùˆd�k‰k�o‰o˜qÕ!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Ô#Ø�‰×"Ñ"Ô$Ø�‰�d—k‘k—o‘o×)Ñ)Ó+¨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·   € Ø�K‰KˆÛˆEØŸ™ §¡¨A¯I©I°q·y±yÓA�Ø—‘˜•ð Bà!×0Ñ0Ø—K‘K×5Ñ5ó7‰NˆE�7ä # W¨e×.?Ñ.?Ó.AÖ B‘��fØ!‘
��UØ× Ñ  ¨¡°Ô7Ø× Ñ  §¡£¨EÕ2ñ !Cñ r   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¦   € Û"ˆEØ—+‘+×%Ñ%ˆCØ�G‰G�EŒNØ ×/Ñ/Ø—‘×0Ñ0ó2‰MˆE�6à×'Ñ'Ó)ˆGÜ # F¨GÖ 4‘��fØ!‘
��UØ× Ñ  ¨¡°Ô7Ø˜%“<ð ×$Ñ$ S§W¡W£Y°Õ6ñ !5ñ #r   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Ó":ˆ�‰ÔØ�k‰k×%Ñ% f¨d¯k©k×.?Ñ.?Ó@ˆØ×Ñ˜˜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”   sr   € Ü! $§)¡)Ó,ˆ�‰ÔØ�‰×*Ñ*Ô,àÐØ—[‘[×,Ñ,×;Ñ;Ö=ˆEØ�V‰} Ó'Ø%*¨9Ñ%5Ñ"ð >ð 	�‰�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3˜8×,Ñ,ô B3ðJ ˆzÒØ€H‡M�M˜A AÖ&ð r   