a
    "h
                     @   sj   d Z ddlmZ ed ddlZddlmZ ddlZddlmZ G dd dej	Z
ed	krfejd
d dS )zNTest (selected) IDLE Edit menu items.

Edit modules have their own test files
    )requiresZguiN)ttk)pyshellc                   @   s@   e Zd ZdZedd Zedd Zdd Zdd	 Zd
d Z	dS )	PasteTestzeTest pasting into widgets that allow pasting.

    On X11, replacing selections requires tk fix.
    c                 C   sh   t   | _}| j  t| t || _t || _	t
|| _t || _|  |d d S )Ntwo)tkZTkrootZwithdrawr   Zfix_x11_pasteTexttextZEntryentryr   tentryZSpinboxspinclipboard_clearZclipboard_append)clsr    r   G/opt/python-3.9.21/usr/lib/python3.9/idlelib/idle_test/test_editmenu.py
setUpClass   s    

zPasteTest.setUpClassc                 C   s2   | ` | `| `| j  | j  | j  | `d S )N)r
   r   r   r   r   Zupdate_idletasksZdestroy)r   r   r   r   tearDownClass   s
    


zPasteTest.tearDownClassc              	   C   s~   | j }dD ]n\}}| j||dH |dd |dd| |d | |dd| W d   q
1 sn0    Y  q
dS )z4Test pasting into text with and without a selection.)) zonetwo
)Zselztwo
)tagansz1.0endone	<<Paste>>N)r
   subTestdeleteinsertevent_generateassertEqualget)selfr
   r   r   r   r   r   test_paste_text%   s    
zPasteTest.test_paste_textc              
   C   s   | j | jfD ]}dD ]v\}}| j|||dN |dd |dd |d| |d | | | W d   q1 s0    Y  qqdS )z8Test pasting into an entry with and without a selection.)r   Zonetwo)r   r   )r   r   r   r   r   r   r   N)	r   r   r   r   r   Zselect_ranger   r   r   )r    r   r   r   r   r   r   test_paste_entry/   s    
zPasteTest.test_paste_entryc              	   C   s   | j }dD ]v\}}| j||dP |dd |dd |dd| |d | | | W d   q
1 sv0    Y  q
dS )	z9Test pasting into a spinbox with and without a selection.r"   )r   r   r   r   r   ranger   N)r   r   r   r   Z	selectionr   r   r   )r    r   r   r   r   r   r   test_paste_spin<   s    
zPasteTest.test_paste_spinN)
__name__
__module____qualname____doc__classmethodr   r   r!   r#   r%   r   r   r   r   r      s   


r   __main__   )	verbosity)r)   Ztest.supportr   tkinterr   r   ZunittestZidlelibr   ZTestCaser   r&   mainr   r   r   r   <module>   s   =