a
    	3j                     @   s   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 dejZG dd dejZG dd dejZG dd dZG dd dejZedkrejdd dS )zTest 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                   @   sP   e Zd 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S )LiveDialogTestzmSimulate user clicking buttons other than [Close].

    Test that invoked textview has text from source.
    c                 C   s0   t d t | _| j  t| jddd| _d S Ngui
About IDLET_utestr   r   rootZwithdrawAboutdialogcls r   ]/www/server/python_manager/versions/3.9.10/lib/python3.9/idlelib/idle_test/test_help_about.py
setUpClass   s    
zLiveDialogTest.setUpClassc                 C   s    | ` | j  | j  | `d S Nr   r   Zupdate_idletasksdestroyr   r   r   r   tearDownClass   s    

zLiveDialogTest.tearDownClassc                 C   s   |  t d d S )N)Z32Z64)ZassertInr   
build_bitsselfr   r   r   test_build_bits&   s    zLiveDialogTest.test_build_bitsc                 C   s   |  | j d dS )Test about dialog titler   N)assertEqualr   titler   r   r   r   test_dialog_title)   s    z LiveDialogTest.test_dialog_titlec                 C   s8   t j| jjd \}}t j|\}}| |d dS )zTest about dialog logo.fileZidle_48N)ospathsplitr   Z
icon_imagesplitextr#   )r    r(   r&   fnextr   r   r   test_dialog_logo-   s    zLiveDialogTest.test_dialog_logoc              	   C   s   | j }|jtdf|jtdf|jtdfg}|D ]\}}}| j|d |  |	  |j
jjjj}|j}t|dk r| |d  | |d |dd	 | |d
 |dd |j
  W d   q,1 s0    Y  q,dS )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   Z
py_licenser.   Zpy_copyrightr/   Z
py_creditsr0   subTest_Printer__setupinvoke_current_textview	viewframe	textframetextget_Printer__lineslenZfailr#   r   )r    r   button_sourcesbuttonZprinterr2   r>   linesr   r   r   test_printer_buttons3   s     


z#LiveDialogTest.test_printer_buttonsc           	   
   C   s  | j }| j jddf| j jddf| j jddfg}|D ]\}}}| j|d |  t|dd	}|jjj	j
j}t|d
dL}| |  |dd |  | |  |dd W d   n1 s0    Y  |j  W d   q21 s0    Y  q2dS )z Test buttons that display files.z
README.txtreadmezNEWS.txtnewszCREDITS.txtr0   r1   idlelib)Zsubdirzutf-8)encodingr4   r5   z3.0z3.endN)r   rE   	idle_newsidle_creditsr7   r9   r   r:   r;   r<   r=   r>   openr#   readlinestripr   )	r    r   rA   rB   filenamer2   r+   r>   fr   r   r   test_file_buttonsF   s    8z LiveDialogTest.test_file_buttonsN)__name__
__module____qualname____doc__classmethodr   r   r!   r%   r-   rD   rP   r   r   r   r   r      s   

r   c                   @   s0   e Zd ZdZedd Zedd Zdd ZdS )	DefaultTitleTestzTest default title.c                 C   s.   t d t | _| j  t| jdd| _d S )Nr   Tr   r   r   r   r   r   r   \   s    
zDefaultTitleTest.setUpClassc                 C   s    | ` | j  | j  | `d S r   r   r   r   r   r   r   c   s    

zDefaultTitleTest.tearDownClassc                 C   s*   |  | j dt  dt  d dS )r"   zAbout IDLE z (z bit)N)r#   r   r$   r
   r   r   r   r   r   r   r%   j   s
    
z"DefaultTitleTest.test_dialog_titleN)rQ   rR   rS   rT   rU   r   r   r%   r   r   r   r   rV   Y   s   

rV   c                   @   s0   e Zd ZdZedd Zedd Zdd ZdS )		CloseTestz%Simulate user clicking [Close] buttonc                 C   s0   t d t | _| j  t| jddd| _d S r   r   r   r   r   r   r   t   s    
zCloseTest.setUpClassc                 C   s    | ` | j  | j  | `d S r   r   r   r   r   r   r   {   s    

zCloseTest.tearDownClassc                 C   sV   |  | j d | jj  | t | j  W d    n1 sH0    Y  d S )NZToplevel)r#   r   Zwinfo_classZ	button_okr9   ZassertRaisesr   r   r   r   r   
test_close   s    zCloseTest.test_closeN)rQ   rR   rS   rT   rU   r   r   rX   r   r   r   r   rW   q   s   

rW   c                   @   s(   e Zd ZejZejZejZ	ej
Z
dZdS )Dummy_about_dialogTN)rQ   rR   rS   r   Zshow_idle_creditsrJ   Zshow_readmeidle_readmeZshow_idle_newsrI   Zdisplay_file_textr   r   r   r   r   rY      s
   rY   c                   @   s6   e Zd ZdZe Zedd Zedd Zdd Z	dS )	DisplayFileTestzTest 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                 C   s4   t j| _t j| _t | _t | _| jt _| jt _d S r   )	r	   	showerror
orig_error	view_text	orig_viewr   errorr   viewr   r   r   r   r      s    zDisplayFileTest.setUpClassc                 C   s   | j t_| jt_d S r   )r]   r	   r\   r_   r^   r   r   r   r   r      s    zDisplayFileTest.tearDownClassc              	   C   s   | j j| j j| j jfD ]f}d| j_d| j_| j|d6 |  | 	| jjd | 	| jjd W d    q1 sr0    Y  qd S )N F)handlerT)
r   rJ   rZ   rI   r`   messagera   Zcalledr7   r#   )r    rc   r   r   r   test_file_display   s    z!DisplayFileTest.test_file_displayN)
rQ   rR   rS   rT   rY   r   rU   r   r   re   r   r   r   r   r[      s   

r[   __main__r3   )	verbosity)rT   rG   r   ZunittestZtest.supportr   r   tkinterr   r   Zidlelib.idle_test.mock_idler   Zidlelib.idle_test.mock_tkr   r	   Zos.pathr'   platformr
   ZAboutDialogr   ZTestCaser   rV   rW   rY   r[   rQ   mainr   r   r   r   <module>   s"   F
"