o
    JAf                     @   s   	 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rqejdd dS dS )    )
help_aboutN)requiresfindfile)TkTclError)Func)	Mbox_func)textview)python_versionc                   @   sN   e 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 )LiveDialogTestc                 C   0   t d t | _| j  t| jddd| _d S Ngui
About IDLET_utestr   r   rootZwithdrawAboutdialogcls r   8/usr/lib/python3.10/idlelib/idle_test/test_help_about.py
setUpClass      
zLiveDialogTest.setUpClassc                 C       | ` | j  | j  | `d S Nr   r   Zupdate_idletasksdestroyr   r   r   r   tearDownClass      

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 )Nr   )assertEqualr   titler#   r   r   r   test_dialog_title)   s   z LiveDialogTest.test_dialog_titlec                 C   s:   	 t j| jjd \}}t j|\}}| |d d S )NfileZidle_48)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 ]U\}}}| j|dB |  |	  |j
jjjj}|j}t|dk rB| |d  | |d |dd	 | |d
 |dd |j
  W d    n1 sgw   Y  qd S )Nlicense	copyrightcreditsname   z full text was not foundr   1.01.end   z2.0z2.end)r   Z
py_licenser1   Zpy_copyrightr2   Z
py_creditsr3   subTest_Printer__setupinvoke_current_textview	viewframe	textframetextget_Printer__lineslenZfailr&   r   )r$   r   button_sourcesbuttonZprinterr5   rA   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 ]e\}}}| j|dR |  t|dd	}|jjj	j
j}t|d
d&}| |  |dd |  | |  |dd W d    n1 sfw   Y  |j  W d    n1 szw   Y  qd S )Nz
README.txtreadmezNEWS.txtnewszCREDITS.txtr3   r4   idlelib)Zsubdirzutf-8)encodingr7   r8   z3.0z3.end)r   rH   	idle_newsidle_creditsr:   r<   r   r=   r>   r?   r@   rA   openr&   readlinestripr   )	r$   r   rD   rE   filenamer5   r.   rA   fr   r   r   test_file_buttonsF   s(   z LiveDialogTest.test_file_buttonsN)__name__
__module____qualname__classmethodr   r    r%   r(   r0   rG   rS   r   r   r   r   r      s    

r   c                   @   .   e Zd Z	 edd Zedd Zdd ZdS )DefaultTitleTestc                 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   r   r   r   r   r   r   r   r    c   r!   zDefaultTitleTest.tearDownClassc                 C   s,   	 |  | j dt  dt  d d S )NzAbout IDLE z (z bit))r&   r   r'   r
   r   r"   r#   r   r   r   r(   j   s   
z"DefaultTitleTest.test_dialog_titleN)rT   rU   rV   rW   r   r    r(   r   r   r   r   rY   Y       

rY   c                   @   rX   )	CloseTestc                 C   r   r   r   r   r   r   r   r   t   r   zCloseTest.setUpClassc                 C   r   r   r   r   r   r   r   r    {   r!   zCloseTest.tearDownClassc                 C   sX   |  | j d | jj  | t | j  W d    d S 1 s%w   Y  d S )NZToplevel)r&   r   Zwinfo_classZ	button_okr<   ZassertRaisesr   r#   r   r   r   
test_close   s
   "zCloseTest.test_closeN)rT   rU   rV   rW   r   r    r\   r   r   r   r   r[   q   rZ   r[   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)rT   rU   rV   r   Zshow_idle_creditsrM   Zshow_readmeidle_readmeZshow_idle_newsrL   Zdisplay_file_textr   r   r   r   r   r]      s    r]   c                   @   s4   e Zd Z	 e Zedd Zedd Zdd ZdS )DisplayFileTestc                 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   )ra   r	   r`   rc   rb   r   r   r   r   r       s   zDisplayFileTest.tearDownClassc              	   C   s   | j j| j j| j jfD ]3}d| j_d| j_| j|d |  | 	| jjd | 	| jjd W d    n1 s9w   Y  qd S )N F)handlerT)
r   rM   r^   rL   rd   messagere   Zcalledr:   r&   )r$   rg   r   r   r   test_file_display   s   z!DisplayFileTest.test_file_displayN)	rT   rU   rV   r]   r   rW   r   r    ri   r   r   r   r   r_      s    

r_   __main__r6   )	verbosity)rJ   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   rY   r[   r]   r_   rT   mainr   r   r   r   <module>   s&    F
"