
    z%i
                         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ej                        Z
ed	k(  r ej                  d
       yy)zNTest (selected) IDLE Edit menu items.

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

    On X11, replacing selections requires tk fix.
    c                    t        j                         x| _        }| j                  j                          t	        j
                  |       t        j                  |      | _        t        j                  |      | _	        t        j                  |      | _        t        j                  |      | _        |j                          |j                  d       y )Ntwo)tkTkrootwithdrawr   fix_x11_pasteTexttextEntryentryr   tentrySpinboxspinclipboard_clearclipboard_append)clsr   s     S/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/idlelib/idle_test/test_editmenu.py
setUpClasszPasteTest.setUpClass   s    %%'!4d#774=HHTN	YYt_
::d#e$    c                     | ` | `| `| j                  j	                          | j                  j                          | j                  j                          | `y )N)r   r   r   r   r   update_idletasksdestroy)r   s    r   tearDownClasszPasteTest.tearDownClass   sD    Hci  "!!#Hr   c                 0   | j                   }dD ]y  \  }}| j                  ||      5  |j                  dd       |j                  dd|       |j	                  d       | j                  |j                  dd      |       ddd       { y# 1 sw Y   xY w)z4Test pasting into text with and without a selection.)) zonetwo
)selztwo
)tagansz1.0endone	<<Paste>>N)r   subTestdeleteinsertevent_generateassertEqualget)selfr   r$   r%   s       r   test_paste_textzPasteTest.test_paste_text%   s    yy: 	>HC#3/ >E5)E5#.##K0  %!7=	> >	>> >s   ABB	c                 r   | j                   | j                  fD ]  }dD ]  \  }}| j                  |||      5  |j                  dd       |j	                  dd       |j                  d|       |j                  d       | j                  |j                         |       ddd         y# 1 sw Y   xY w)z8Test pasting into an entry with and without a selection.)r   onetwo)r&   r
   )r   r&   r%   r   r&   r'   r(   N)	r   r   r)   r*   r+   select_ranger,   r-   r.   )r/   r   r&   r%   s       r   test_paste_entryzPasteTest.test_paste_entry/   s     ZZ, 	7E9 7S\\3C\@ 7LLE*LLE*&&q#.((5$$UYY[#67 77	77 7s   A(B--B6c                 P   | j                   }dD ]  \  }}| j                  ||      5  |j                  dd       |j                  dd       |j	                  dd|       |j                  d       | j                  |j                         |       ddd        y# 1 sw Y   xY w)	z9Test pasting into a spinbox with and without a selection.r2   )r&   r%   r   r&   r'   ranger(   N)r   r)   r*   r+   	selectionr,   r-   r.   )r/   r   r&   r%   s       r   test_paste_spinzPasteTest.test_paste_spin<   s     yy5 	2HC#3/ 2Au%Au%w3/##K0  S12 2	22 2s   A)BB%	N)
__name__
__module____qualname____doc__classmethodr   r    r0   r5   r9    r   r   r   r      s>     	% 	%  >7
2r   r   __main__   )	verbosity)r=   test.supportr   tkinterr   r   unittestidlelibr   TestCaser   r:   mainr?   r   r   <module>rI      sR    "     :2!! :2z zHMMA r   