Ë
    #´˜j  ã                   óz  — d Z ddlmZ ddlZddlmZmZ ddlmZm	Z	 ddl
mZ ddlmZ ddlmZ ddlZdd	lmZ ej&                  Z G d
„ dej*                  «      Z G d„ dej*                  «      Z G d„ dej*                  «      Z G d„ d«      Z G d„ dej*                  «      Zedk(  r ej8                  d¬«       yy)z„Test help_about, coverage 100%.
help_about.build_bits branches on sys.platform='darwin'.
'100% combines coverage on Mac and others.
é    )Ú
help_aboutN)ÚrequiresÚfindfile)ÚTkÚTclError)ÚFunc)Ú	Mbox_func)Útextview)Úpython_versionc                   óN   — e Zd ZdZed„ «       Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zy	)
ÚLiveDialogTestzmSimulate user clicking buttons other than [Close].

    Test that invoked textview has text from source.
    c                 ó¦   — t        d«       t        «       | _        | j                  j                  «        t	        | j                  dd¬«      | _        y ©NÚguiú
About IDLET©Ú_utest©r   r   ÚrootÚwithdrawÚAboutÚdialog©Úclss    ú3lib/python3.12/idlelib/idle_test/test_help_about.pyÚ
setUpClasszLiveDialogTest.setUpClass   ó6   € ä�ŒÜ“4ˆŒØ�‰×ÑÔÜ˜3Ÿ8™8 \¸$Ô?ˆ�
ó    c                 ót   — | ` | j                  j                  «        | j                  j                  «        | `y ©N©r   r   Úupdate_idletasksÚdestroyr   s    r   ÚtearDownClasszLiveDialogTest.tearDownClass   ó,   € àˆJØ�‰×!Ñ!Ô#Ø�‰×ÑÔØ‰Hr   c                 óD   — | j                  t        j                  d«       y )N)Ú32Ú64)ÚassertInr   Úbits©Úselfs    r   Útest_build_bitszLiveDialogTest.test_build_bits&   s   € Ø�‰”j—o‘o |Õ4r   c                 óX   — | j                  | j                  j                  «       d«       y)úTest about dialog titler   N)ÚassertEqualr   Útitler+   s    r   Útest_dialog_titlez LiveDialogTest.test_dialog_title)   s   € à×Ñ˜Ÿ™×*Ñ*Ó,¨lÕ;r   c                 óÞ   — t         j                  j                  | j                  j                  d   «      \  }}t         j                  j                  |«      \  }}| j                  |d«       y)zTest about dialog logo.ÚfileÚidle_48N)ÚosÚpathÚsplitr   Ú
icon_imageÚsplitextr0   )r,   r7   r4   ÚfnÚexts        r   Útest_dialog_logozLiveDialogTest.test_dialog_logo-   sO   € ä—W‘W—]‘] 4§;¡;×#9Ñ#9¸&Ñ#AÓB‰
ˆˆdÜ—'‘'×"Ñ" 4Ó(‰ˆˆCØ×Ñ˜˜YÕ'r   c           	      óš  — | j                   }|j                  t        df|j                  t        df|j
                  t        dfg}|D ]õ  \  }}}| j                  |¬«      5  |j                  «        |j                  «        |j                  j                  j                  j                  j                  }|j                  }t!        |«      dk  r| j#                  |dz   «       | j%                  |d    |dd	«      «       | j%                  |d
    |dd«      «       |j                  j'                  «        ddd«       Œ÷ y# 1 sw Y   �ŒxY w)z1Test buttons whose commands use printer function.ÚlicenseÚ	copyrightÚcredits©Únameé   z full text was not foundr   ú1.0ú1.endé   z2.0z2.endN)r   Ú
py_licenser?   Úpy_copyrightr@   Ú
py_creditsrA   ÚsubTestÚ_Printer__setupÚinvokeÚ_current_textviewÚ	viewframeÚ	textframeÚtextÚgetÚ_Printer__linesÚlenÚfailr0   r#   )r,   r   Úbutton_sourcesÚbuttonÚprinterrC   rR   Úliness           r   Útest_printer_buttonsz#LiveDialogTest.test_printer_buttons3   s  € à—‘ˆØ!×,Ñ,¬g°yÐAØ!×.Ñ.´	¸;ÐGØ!×,Ñ,¬g°yÐAðCˆó &4Ñ!ˆF�G˜TØ—‘ 4�Õ(Ø×'Ñ'Ô)Ø—‘”Ø×.Ñ.×8Ñ8×BÑB×GÑG×KÑK�Ø×/Ñ/�Ü�u“: ’>Ø—I‘I˜dÐ%?Ñ?Ô@Ø× Ñ   q¡©3¨u°gÓ+>Ô?Ø× Ñ   q¡©3¨u°gÓ+>Ô?Ø×(Ñ(×0Ñ0Ô2÷ )Ð(ñ &4ß(Ñ(ús   Á CE Å E
	c           
      ó(  — | j                   }| j                   j                  ddf| j                   j                  ddf| j                   j                  ddfg}|D �]  \  }}}| j	                  |¬«      5  |j                  «        t        |d¬	«      }|j                  j                  j                  j                  j                  }t        |d
¬«      5 }| j                  |j                  «       j                  «        |dd«      «       |j                  «        | j                  |j                  «       j                  «        |dd«      «       ddd«       |j                  j!                  «        ddd«       �Œ  y# 1 sw Y   Œ/xY w# 1 sw Y   �Œ8xY w)z Test buttons that display files.z
README.txtÚreadmez	News3.txtÚnewszCREDITS.txtrA   rB   Úidlelib)Úsubdirzutf-8)ÚencodingrE   rF   z3.0z3.endN)r   r\   Ú	idle_newsÚidle_creditsrK   rM   r   rN   rO   rP   rQ   rR   Úopenr0   ÚreadlineÚstripr#   )	r,   r   rV   rW   ÚfilenamerC   r;   rR   Úfs	            r   Útest_file_buttonsz LiveDialogTest.test_file_buttonsF   s<  € à—‘ˆØŸ;™;×-Ñ-¨|¸XÐFØŸ;™;×0Ñ0°+¸vÐFØŸ;™;×3Ñ3°]ÀIÐNðPˆô '5Ñ"ˆF�H˜dØ—,‘, D�,Õ)Ø—‘”Ü˜h¨yÔ9�Ø×.Ñ.×8Ñ8×BÑB×GÑG×KÑK�Ü˜" wÕ/°1Ø×$Ñ$ Q§Z¡Z£\×%7Ñ%7Ó%9¹3¸uÀgÓ;NÔOØ—J‘J”LØ×$Ñ$ Q§Z¡Z£\×%7Ñ%7Ó%9¹3¸uÀgÓ;NÔO÷ 0ð ×(Ñ(×0Ñ0Ô2÷ *Ñ)ñ '5÷
 0Ð/ú÷	 *Ñ)ús&   Á3AFÃA;E;Å"FÅ;FÆ FÆF	N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr   r$   r-   r2   r=   rZ   rh   © r   r   r   r      sJ   „ ñð ñ@ó ð@ð ñó ðò5ò<ò(ò3ó&3r   r   c                   ó6   — e Zd ZdZed„ «       Zed„ «       Zd„ Zy)ÚDefaultTitleTestzTest default title.c                 ó¤   — t        d«       t        «       | _        | j                  j                  «        t	        | j                  d¬«      | _        y )Nr   Tr   r   r   s    r   r   zDefaultTitleTest.setUpClass\   s4   € ä�ŒÜ“4ˆŒØ�‰×ÑÔÜ˜3Ÿ8™8¨DÔ1ˆ�
r   c                 ót   — | ` | j                  j                  «        | j                  j                  «        | `y r    r!   r   s    r   r$   zDefaultTitleTest.tearDownClassc   r%   r   c                 ó’   — | j                  | j                  j                  «       dt        «       › dt        j
                  › d�«       y)r/   zAbout IDLE z (z bit)N)r0   r   r1   r   r   r*   r+   s    r   r2   z"DefaultTitleTest.test_dialog_titlej   s=   € à×Ñ˜Ÿ™×*Ñ*Ó,Ø&¤~Ó'7Ð&8ØœjŸo™oÐ.¨eð5õ	6r   N)ri   rj   rk   rl   rm   r   r$   r2   rn   r   r   rp   rp   Y   s0   „ Ùàñ2ó ð2ð ñó ðó6r   rp   c                   ó6   — e Zd ZdZed„ «       Zed„ «       Zd„ Zy)Ú	CloseTestz%Simulate user clicking [Close] buttonc                 ó¦   — t        d«       t        «       | _        | j                  j                  «        t	        | j                  dd¬«      | _        y r   r   r   s    r   r   zCloseTest.setUpClasst   r   r   c                 ót   — | ` | j                  j                  «        | j                  j                  «        | `y r    r!   r   s    r   r$   zCloseTest.tearDownClass{   r%   r   c                 ó(  — | j                  | j                  j                  «       d«       | j                  j                  j	                  «        | j                  t        «      5  | j                  j                  «        d d d «       y # 1 sw Y   y xY w)NÚToplevel)r0   r   Úwinfo_classÚ	button_okrM   ÚassertRaisesr   r+   s    r   Ú
test_closezCloseTest.test_close‚   s_   € Ø×Ñ˜Ÿ™×0Ñ0Ó2°JÔ?Ø�‰×Ñ×$Ñ$Ô&Ø×ÑœxÕ(Ø�K‰K×#Ñ#Ô%÷ )×(Ñ(ús   Á$BÂBN)ri   rj   rk   rl   rm   r   r$   r}   rn   r   r   ru   ru   q   s2   „ Ù/àñ@ó ð@ð ñó ðó&r   ru   c                   óp   — e Zd Zej                  Zej                  Zej                  Z	ej                  Z
dZy)ÚDummy_about_dialogTN)ri   rj   rk   r   Úshow_idle_creditsrb   Úshow_readmeÚidle_readmeÚshow_idle_newsra   Údisplay_file_textr   rn   r   r   r   r   ‰   s4   „ à×*Ñ*€LØ×#Ñ#€KØ×$Ñ$€Ià×/Ñ/ÐØ�Fr   r   c                   óD   — e Zd ZdZ e«       Zed„ «       Zed„ «       Zd„ Z	y)ÚDisplayFileTestz¡Test functions that display files.

    While somewhat redundant with gui-based test_file_dialog,
    these unit tests run on all buildbots, not just a few.
    c                 óè   — t         j                  | _        t         j                  | _        t        «       | _        t        «       | _        | j                  t         _        | j                  t         _        y r    )	r
   Ú	showerrorÚ
orig_errorÚ	view_textÚ	orig_viewr	   Úerrorr   Úviewr   s    r   r   zDisplayFileTest.setUpClass›   sF   € ä!×+Ñ+ˆŒÜ ×*Ñ*ˆŒÜ“KˆŒ	Ü“6ˆŒØ ŸY™YŒÔØ ŸX™XŒÕr   c                 óX   — | j                   t        _        | j                  t        _        y r    )r‰   r
   rˆ   r‹   rŠ   r   s    r   r$   zDisplayFileTest.tearDownClass¤   s   € à Ÿ^™^ŒÔØ Ÿ]™]ŒÕr   c                 óÈ  — | j                   j                  | j                   j                  | j                   j                  fD ]’  }d| j                  _        d| j                  _        | j                  |¬«      5   |«        | j                  | j                  j
                  d«       | j                  | j                  j                  d«       d d d «       Œ” y # 1 sw Y   ŒŸxY w)NÚ F)ÚhandlerT)
r   rb   r‚   ra   rŒ   Úmessager�   ÚcalledrK   r0   )r,   r‘   s     r   Útest_file_displayz!DisplayFileTest.test_file_display©   s§   € ØŸ™×0Ñ0ØŸ™×/Ñ/ØŸ™×-Ñ-ó/ˆGð "$ˆD�J‰JÔØ$ˆD�I‰IÔØ—‘ g�Õ.Ù”	Ø× Ñ  §¡×!3Ñ!3°RÔ8Ø× Ñ  §¡×!1Ñ!1°4Ô8÷ /Ð.ñ/÷
 /Ð.ús   Á9ACÃC!	N)
ri   rj   rk   rl   r   r   rm   r   r$   r”   rn   r   r   r†   r†   “   s<   „ ññ
  Ó!€Fàñ&ó ð&ð ñ+ó ð+ó	9r   r†   Ú__main__rD   )Ú	verbosity)rl   r^   r   ÚunittestÚtest.supportr   r   Útkinterr   r   Úidlelib.idle_test.mock_idler   Úidlelib.idle_test.mock_tkr	   r
   Úos.pathr6   Úplatformr   ÚAboutDialogr   ÚTestCaser   rp   ru   r   r†   ri   Úmainrn   r   r   Ú<module>r¡      s¥   ðñõ
 Û ß +ß  Ý ,Ý /Ý Û Ý #à×Ñ€ôC3�X×&Ñ&ô C3ôL6�x×(Ñ(ô 6ô0&�×!Ñ!ô &÷0ñ ô9�h×'Ñ'ô 9ðD ˆzÒØ€H‡M�M˜AÖð r   