
    z%i                     x   	 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j6                  d       yy)    )
help_aboutN)requiresfindfile)TkTclError)Func)	Mbox_func)textview)python_versionc                   L    e Zd Z	 ed        Zed        Zd Zd Zd Zd Z	d Z
y)	LiveDialogTestc                     t        d       t               | _        | j                  j                          t	        | j                  dd      | _        y Ngui
About IDLET_utestr   r   rootwithdrawAboutdialogclss    U/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/idle_test/test_help_about.py
setUpClasszLiveDialogTest.setUpClass   6    4388\$?
    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    joo|4r   c                 Z    	 | j                  | j                  j                         d       y )Nr   )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 )Nfileidle_48)ospathsplitr   
icon_imagesplitextr/   )r,   r6   r3   fnexts        r   test_dialog_logozLiveDialogTest.test_dialog_logo-   sR    %WW]]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)Nlicense	copyrightcreditsname   z full text was not foundr   1.01.end   z2.0z2.end)r   
py_licenser>   py_copyrightr?   
py_creditsr@   subTest_Printer__setupinvoke_current_textview	viewframe	textframetextget_Printer__lineslenfailr/   r#   )r,   r   button_sourcesbuttonprinterrB   rQ   liness           r   test_printer_buttonsz#LiveDialogTest.test_printer_buttons3   s.   ?!,,gyA!..	;G!,,gyAC &4 
	3!FGT4( 	3'')..88BBGGKK//u:>IId%??@  q3ug+>?  q3ug+>?((002	3 	3
	3	3 	3s   !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)Nz
README.txtreadmezNEWS.txtnewszCREDITS.txtr@   rA   idlelib)subdirzutf-8)encodingrD   rE   z3.0z3.end)r   r[   	idle_newsidle_creditsrJ   rL   r   rM   rN   rO   rP   rQ   openr/   readlinestripr#   )	r,   r   rU   rV   filenamerB   r:   rQ   fs	            r   test_file_buttonsz LiveDialogTest.test_file_buttonsF   sX   .;;--|XF;;00*fE;;33]INP '5 		3"FHd,,D,) 3hy9..88BBGGKK"w/ P1$$QZZ\%7%7%93ug;NOJJL$$QZZ\%7%7%93ug;NOP ((0023 3		3
P P	3 3s&   4AFA;E<"F<FFF	N)__name__
__module____qualname__classmethodr   r$   r-   r1   r<   rY   rg    r   r   r   r      sJ     @ @  5<(3&3r   r   c                   4    e Zd Z	 ed        Zed        Zd Zy)DefaultTitleTestc                     t        d       t               | _        | j                  j                          t	        | j                  d      | _        y )Nr   Tr   r   r   s    r   r   zDefaultTitleTest.setUpClass\   s4    4388D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 )NzAbout IDLE z (z bit))r/   r   r0   r   r   r*   r+   s    r   r1   z"DefaultTitleTest.test_dialog_titlej   s@    %**,&~'7&8joo.e5	6r   N)rh   ri   rj   rk   r   r$   r1   rl   r   r   rn   rn   Y   s0    2 2  6r   rn   c                   4    e Zd Z	 ed        Zed        Zd Zy)	CloseTestc                     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)r/   r   winfo_class	button_okrL   assertRaisesr   r+   s    r   
test_closezCloseTest.test_close   sh    002J?$$&x( 	&KK##%	& 	& 	&s   $BBN)rh   ri   rj   rk   r   r$   r{   rl   r   r   rs   rs   q   s2    /@ @  &r   rs   c                   p    e Zd Zej                  Zej                  Zej                  Z	ej                  Z
dZy)Dummy_about_dialogTN)rh   ri   rj   r   show_idle_creditsra   show_readmeidle_readmeshow_idle_newsr`   display_file_textr   rl   r   r   r}   r}      s4    **L##K$$I//Fr   r}   c                   B    e Zd Z	  e       Zed        Zed        Zd Zy)DisplayFileTestc                     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 YY XX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   ra   r   r`   r   messager   calledrJ   r/   )r,   r   s     r   test_file_displayz!DisplayFileTest.test_file_display   s    00//--/ 	9G "$DJJ$DIIg. 9	  !3!3R8  !1!1489 9	9
9 9s   9ACC!	N)	rh   ri   rj   r}   r   rk   r   r$   r   rl   r   r   r   r      s<    
  !F& & + +	9r   r   __main__rC   )	verbosity)r]   r   unittesttest.supportr   r   tkinterr   r   idlelib.idle_test.mock_idler   idlelib.idle_test.mock_tkr	   r
   os.pathr5   platformr   AboutDialogr   TestCaser   rn   rs   r}   r   rh   mainrl   r   r   <module>r      s   
   +   , /   #C3X&& C3L6x(( 60&!! &0 9h'' 9D zHMMA r   