Ë
    #´˜ji  ã                   ól  — d Z ddlmZ ddlZddlmZ ddlZddlZddlm	Z	m
Z
mZ ddlmZ ddlZddl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mZmZ ddlmZ ddlZddlm Z m!Z!  G d„ d«      Z" G d„ dejF                  «      Z$ G d„ dejF                  e«      Z%e&dk(  r ejN                  d¬«       yy)zTest sidebar, coverage 85%é    )ÚdedentN)Úchain)Úadjust_int_max_str_digitsÚrequiresÚ	swap_attr)ÚExtraAssertions)Úrun_in_tk_mainloop)Ú	Delegator)Úfixwordbreaks)Ú
Percolator)Úfix_x11_pasteÚPyShellÚPyShellFileList)Úfix_scaling)Úget_end_linenumberÚ
get_linenoc                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚDummy_editwinc                 óÐ   — || _         | j                   j                  | _        t        |«      | _        t        «       | _        | j                  j                  | j                  «       y ©N)ÚtextÚmasterÚ
text_framer   Úperr
   ÚundoÚinsertfilter)Úselfr   s     ú0lib/python3.12/idlelib/idle_test/test_sidebar.pyÚ__init__zDummy_editwin.__init__   sE   € ØˆŒ	ØŸ)™)×*Ñ*ˆŒÜ˜dÓ#ˆŒÜ“KˆŒ	Ø�‰×Ñ˜dŸi™iÕ(ó    c                  ó   — y r   © )r   ÚnameÚvalues      r   ÚsetvarzDummy_editwin.setvar   s   € Ør    c                 ó\   — t        t        | j                  j                  |«      «      «      S r   )ÚintÚfloatr   Úindex)r   r)   s     r   Ú	getlinenozDummy_editwin.getlineno"   s   € Ü”5˜Ÿ™Ÿ™¨Ó/Ó0Ó1Ð1r    N)Ú__name__Ú
__module__Ú__qualname__r   r%   r*   r"   r    r   r   r      s   „ ò)òó2r    r   c                   ó(  — e Zd Zed„ «       Zed„ «       Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z ej*                  d«      d„ «       Zd„ Z ej*                  d«      d„ «       Z ej*                  d«      d„ «       Zd„ Zd„ Zd„ Zy)ÚLineNumbersTestc                 ó  — t        d«       t        j                  «       | _        | j                  j	                  «        t        j
                  | j                  «      | _        | j                  j                  t        j                  t        j                  d¬«       | j                  j                  dd¬«       | j                  j                  dd¬«       t        j                  | j                  ddt        j                  ¬«      | _        | j                  j                  ddt        j                   ¬	«       t#        | j                  «      | _        t        j&                  | j                  «      | j$                  _        y )
NÚguiT)ÚsideÚfillÚexpandé   )ÚweightéP   é   )ÚwidthÚheightÚwrap)ÚrowÚcolumnÚsticky)r   ÚtkÚTkÚrootÚwithdrawÚFramer   ÚpackÚLEFTÚBOTHÚrowconfigureÚcolumnconfigureÚTextÚNONEr   ÚgridÚNSEWr   ÚeditwinÚ	ScrollbarÚvbar©Úclss    r   Ú
setUpClasszLineNumbersTest.setUpClass(   sê   € ä�ŒÜ—5‘5“7ˆŒØ�‰×ÑÔäŸ™ #§(¡(Ó+ˆŒØ�‰×Ñ¤§¡¬r¯w©w¸tÐÔDØ�‰×#Ñ# A¨aÐ#Ô0Ø�‰×&Ñ& q°Ð&Ô3ä—7‘7˜3Ÿ>™>°¸BÄRÇWÁWÔMˆŒØ�‰�‰˜! A¬b¯g©gˆÔ6ä# C§H¡HÓ-ˆŒÜŸ<™<¨¯©Ó7ˆ�‰Õr    c                 óÄ   — | j                   j                  j                  «        | j                  j	                  «        | j                  j                  «        | `| `| ` | `y r   )rM   r   ÚcloserA   Úupdate_idletasksÚdestroyr   r   rP   s    r   ÚtearDownClasszLineNumbersTest.tearDownClass9   sG   € à�‰�‰×ÑÔØ�‰×!Ñ!Ô#Ø�‰×ÑÔØˆH�c�n c k°3±8r    c                 óœ  ‡ ‡— t         j                  j                  ‰ j                  «      ‰ _        dddœ‰ _        t         j                  j                  j                  Šˆˆ fd„}t        j                  j                  j                  t         j                  j                  d|«      }|j                  «        ‰ j                  |j                  «       d‰ _        ˆ fd„}t        j                  j                  j                  t         j                  j                  d|«      }|j                  «        ‰ j                  |j                  «       y )	Nú#abcdefú#123456©Ú
backgroundÚ
foregroundc                 ó8   •— |dk(  r‰j                   S  ‰| |«      S )NÚ
linenumber)Úhighlight_cfg)ÚthemeÚelementÚorig_idleConf_GetHighlightr   s     €€r   Úmock_idleconf_GetHighlightz9LineNumbersTest.setUp.<locals>.mock_idleconf_GetHighlightF   s$   ø€ Ø˜,Ò&Ø×)Ñ)Ð)Ù-¨e°WÓ=Ð=r    ÚGetHighlightÚTkFixedFontc                 ó   •— ‰j                   S r   )Úfont_override)rA   Ú
configTypeÚsectionr   s      €r   Úmock_idleconf_GetFontz4LineNumbersTest.setUp.<locals>.mock_idleconf_GetFontP   s   ø€ Ø×%Ñ%Ð%r    ÚGetFont)ÚidlelibÚsidebarÚLineNumbersrM   r_   r`   ÚidleConfre   ÚunittestÚmockÚpatchÚobjectÚstartÚ
addCleanupÚstoprh   )r   rd   ÚGetHighlight_patcherrk   ÚGetFont_patcherrc   s   `    @r   ÚsetUpzLineNumbersTest.setUp@   sï   ù€ Ü!Ÿ/™/×5Ñ5°d·l±lÓCˆŒà,5Ø,5ñ7ˆÔä%,§_¡_×%=Ñ%=×%JÑ%JÐ"õ	>ô  (Ÿ}™}×2Ñ2×9Ñ9Ü�O‰O×$Ñ$ nÐ6Pó RÐà×"Ñ"Ô$Ø�‰Ð,×1Ñ1Ô2à*ˆÔô	&ä"Ÿ-™-×-Ñ-×4Ñ4Ü�O‰O×$Ñ$ iÐ1FóHˆà×ÑÔØ�‰˜×,Ñ,Õ-r    c                 ó<   — | j                   j                  dd«       y ©Nú1.0Úend)r   Údelete©r   s    r   ÚtearDownzLineNumbersTest.tearDownW   s   € Ø�	‰	×Ñ˜ Õ&r    c                 óf   — t        t        t        | j                  j	                  d«      «      «      S )NÚsel)ÚtupleÚmapÚstrr   Ú
tag_rangesr€   s    r   Úget_selectionzLineNumbersTest.get_selectionZ   s#   € Ü”Sœ˜dŸi™i×2Ñ2°5Ó9Ó:Ó;Ð;r    c                 óz   — | j                   j                  j                  |› d�«      }|d   dz   }|d   dz   }||fS )Nz.end -1cr   é   r5   )r_   Úsidebar_textÚbbox)r   ÚlinerŒ   ÚxÚys        r   Úget_line_screen_positionz(LineNumbersTest.get_line_screen_position]   sF   € Ø�‰×+Ñ+×0Ñ0°D°6¸Ð1BÓCˆØ�‰G�a‰KˆØ�‰G�a‰KˆØ�!ˆtˆr    c                 ó˜   — | j                   j                  j                  «       d   }| j                  |d   t        j
                  «       y )NÚstateéÿÿÿÿ)r_   r‹   ÚconfigÚassertEqualr?   ÚDISABLED)r   r’   s     r   Úassert_state_disabledz%LineNumbersTest.assert_state_disabledc   s7   € Ø—‘×,Ñ,×3Ñ3Ó5°gÑ>ˆØ×Ñ˜˜r™¤B§K¡KÕ0r    c                 ój   — | j                   j                  j                  dt        j                  «      S )Nr}   )r_   r‹   Úgetr?   ÚENDr€   s    r   Úget_sidebar_text_contentsz)LineNumbersTest.get_sidebar_text_contentsg   s#   € Ø�‰×+Ñ+×/Ñ/°´r·v±vÓ>Ð>r    c                 ó²   — dj                  t        t        t        t	        d|dz   «      «      dg«      «      }| j                  | j                  «       |«       y )NÚ
r5   Ú )Újoinr   r…   r†   Úranger•   r›   )r   Ún_linesÚexpecteds      r   Úassert_sidebar_n_linesz&LineNumbersTest.assert_sidebar_n_linesj   sD   € Ø—9‘9œU¤3¤s¬E°!°W¸q±[Ó,AÓ#BÀRÀDÓIÓJˆØ×Ñ˜×7Ñ7Ó9¸8ÕDr    c                 óZ   — | j                  | j                  j                  dd«      |«      S r|   )r•   r   r™   )r   r¢   s     r   Úassert_text_equalsz"LineNumbersTest.assert_text_equalsn   s$   € Ø×Ñ §	¡	§¡¨e°UÓ ;¸XÓFÐFr    c                 ó&   — | j                  d«       y ©Nr5   )r£   r€   s    r   Útest_init_emptyzLineNumbersTest.test_init_emptyq   s   € Ø×#Ñ# AÕ&r    c                 ó€   — | j                   j                  dd«       | j                  d«       | j                  d«       y )NÚinsertzfoo bar
foo bar
foo bar
zfoo bar
foo bar
foo bar

é   )r   rª   r¥   r£   r€   s    r   Útest_init_not_emptyz#LineNumbersTest.test_init_not_emptyt   s3   € Ø�	‰	×Ñ˜ =Ô1Ø×ÑÐ 4Ô5Ø×#Ñ# AÕ&r    c                 óÐ  — | j                  | j                  j                  d«       | j                  j                  «        | j                  | j                  j                  d«       | j                  j	                  «        | j                  | j                  j                  d«       | j                  j	                  «        | j                  | j                  j                  d«       | j                  j                  «        | j                  | j                  j                  d«       | j                  j                  «        | j                  | j                  j                  d«       y )NFT)r•   r_   Úis_shownÚshow_sidebarÚhide_sidebarr€   s    r   Útest_toggle_linenumberingz)LineNumbersTest.test_toggle_linenumberingy   sî   € Ø×Ñ˜Ÿ™×1Ñ1°5Ô9Ø�‰×$Ñ$Ô&Ø×Ñ˜Ÿ™×1Ñ1°4Ô8Ø�‰×$Ñ$Ô&Ø×Ñ˜Ÿ™×1Ñ1°5Ô9Ø�‰×$Ñ$Ô&Ø×Ñ˜Ÿ™×1Ñ1°5Ô9Ø�‰×$Ñ$Ô&Ø×Ñ˜Ÿ™×1Ñ1°4Ô8Ø�‰×$Ñ$Ô&Ø×Ñ˜Ÿ™×1Ñ1°4Õ8r    c                 ót  — | j                   j                  dd«       | j                  d«       | j                  d«       | j	                  «        | j                   j                  dd«       | j                  d«       | j                  d«       | j	                  «        | j                   j                  dd«       | j                  d	«       | j                  d
«       | j	                  «        | j                   j                  dd«       | j                  d«       | j                  d«       | j	                  «        y )Nrª   Úfoobarúfoobar
r5   z
foozfoobar
foo
rŠ   zhello
hello
zfoobar
foohello
hello

r«   z
worldzfoobar
foohello
hello

world
é   )r   rª   r¥   r£   r—   r€   s    r   Útest_insertzLineNumbersTest.test_insert†   sô   € Ø�	‰	×Ñ˜ 8Ô,Ø×Ñ 
Ô+Ø×#Ñ# AÔ&Ø×"Ñ"Ô$à�	‰	×Ñ˜ 7Ô+Ø×Ñ Ô0Ø×#Ñ# AÔ&Ø×"Ñ"Ô$à�	‰	×Ñ˜ ;Ô/Ø×ÑÐ =Ô>Ø×#Ñ# AÔ&Ø×"Ñ"Ô$à�	‰	×Ñ˜ 9Ô-Ø×ÑÐ DÔEØ×#Ñ# AÔ&Ø×"Ñ"Õ$r    c                 ój  — | j                   j                  dd«       | j                  d«       | j                   j                  dd«       | j                  d«       | j	                  d«       | j                  «        | j                   j                  dd«       | j                  d	«       | j	                  d
«       | j                  «        | j                   j                  dd«       | j                  d«       | j	                  d
«       | j                  «        | j                   j                  dd«       | j                  d«       | j	                  d«       | j                  «        | j                   j                  dd«       | j                  d«       | j	                  d«       | j                  «        y )Nrª   r³   r´   z1.1z1.3zfbar
r5   zfoo
foo
zfbarfoo
foo

é   ú2.0z2.endz
fbarfoo


r~   zfba
r}   r�   )r   rª   r¥   r   r£   r—   r€   s    r   Útest_deletezLineNumbersTest.test_delete›   sU  € Ø�	‰	×Ñ˜ 8Ô,Ø×Ñ 
Ô+Ø�	‰	×Ñ˜ Ô&Ø×Ñ Ô)Ø×#Ñ# AÔ&Ø×"Ñ"Ô$à�	‰	×Ñ˜ 9Ô-Ø×ÑÐ 2Ô3Ø×#Ñ# AÔ&Ø×"Ñ"Ô$ð 	�	‰	×Ñ˜ Ô(Ø×Ñ Ô0Ø×#Ñ# AÔ&Ø×"Ñ"Ô$à�	‰	×Ñ˜ Ô&Ø×Ñ Ô(Ø×#Ñ# AÔ&Ø×"Ñ"Ô$ð 	�	‰	×Ñ˜ Ô&Ø×Ñ Ô%Ø×#Ñ# AÔ&Ø×"Ñ"Õ$r    c                 óÐ  ‡ — ˆ fd„}‰ j                  d«       ‰ j                   |«       d«       ‰ j                  j                  dd«       ‰ j                  d«       ‰ j                   |«       d«       ‰ j                  j                  dd«       ‰ j                  d«       ‰ j                   |«       d«       ‰ j                  j                  dd«       ‰ j                  d«       ‰ j                   |«       d	«       ‰ j                  j                  dd«       ‰ j                  d
«       ‰ j                   |«       d	«       ‰ j                  j	                  dd«       ‰ j                  d«       ‰ j                   |«       d	«       ‰ j                  j	                  dd«       ‰ j                  d«       ‰ j                   |«       d«       ‰ j                  j                  dd«       ‰ j                  d«       ‰ j                   |«       d	«       ‰ j                  j                  dd«       ‰ j                  d«       ‰ j                   |«       d«       ‰ j                  j                  dd«       ‰ j                  d«       ‰ j                   |«       d«       ‰ j                  j	                  dd«       ‰ j                  d«       ‰ j                   |«       d«       ‰ j                  j	                  dd«       ‰ j                  d«       ‰ j                   |«       d	«       ‰ j                  j	                  dd«       ‰ j                  d«       ‰ j                   |«       d	«       ‰ j                  j	                  dd«       ‰ j                  d«       ‰ j                   |«       d«       ‰ j                  j	                  dd«       ‰ j                  d«       ‰ j                   |«       d«       y)zY
        Test that linenumber text widget is always at the minimum
        width
        c                  óX   •— ‰ j                   j                  j                  «       d   d   S )Nr9   r“   )r_   r‹   r”   r€   s   €r   Ú	get_widthz:LineNumbersTest.test_sidebar_text_width.<locals>.get_width¾   s&   ø€ Ø—?‘?×/Ñ/×6Ñ6Ó8¸ÑAÀ"ÑEÐEr    r5   rª   Úfooz foo
foo
foo
foo
foo
foo
foo
foo
é	   zfoo
é
   rŠ   é   zinsert -1l linestartzinsert linestartah  foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
foo
éc   éd   r¸   ée   z50.0 -1czend -1cé1   z5.0 -1cr«   r}   N)r£   r•   r   rª   r   )r   r½   s   ` r   Útest_sidebar_text_widthz'LineNumbersTest.test_sidebar_text_width¹   s  ø€ ô
	Fð 	×#Ñ# AÔ&Ø×Ñ™› aÔ(à�	‰	×Ñ˜ 5Ô)Ø×#Ñ# AÔ&Ø×Ñ™› aÔ(à�	‰	×Ñ˜ 9Ô-Ø×#Ñ# AÔ&Ø×Ñ™› aÔ(à�	‰	×Ñ˜ 7Ô+Ø×#Ñ# BÔ'Ø×Ñ™› aÔ(à�	‰	×Ñ˜ 7Ô+Ø×#Ñ# BÔ'Ø×Ñ™› aÔ(à�	‰	×ÑÐ/Ð1CÔDØ×#Ñ# BÔ'Ø×Ñ™› aÔ(à�	‰	×ÑÐ/Ð1CÔDØ×#Ñ# AÔ&Ø×Ñ™› aÔ(à�	‰	×Ñ˜ :Ô.Ø×#Ñ# BÔ'Ø×Ñ™› aÔ(à�	‰	×Ñ˜ 7Ô+Ø×#Ñ# CÔ(Ø×Ñ™› aÔ(à�	‰	×Ñ˜ 7Ô+Ø×#Ñ# CÔ(Ø×Ñ™› aÔ(à�	‰	×ÑÐ/Ð1CÔDØ×#Ñ# CÔ(Ø×Ñ™› aÔ(à�	‰	×ÑÐ/Ð1CÔDØ×#Ñ# BÔ'Ø×Ñ™› aÔ(à�	‰	×Ñ˜ YÔ/Ø×#Ñ# BÔ'Ø×Ñ™› aÔ(à�	‰	×Ñ˜ IÔ.Ø×#Ñ# AÔ&Ø×Ñ™› aÔ(ð 	�	‰	×Ñ˜ 	Ô*Ø×#Ñ# AÔ&Ø×Ñ™› aÕ(r    ztest disabledc                 óØ  — | j                   j                  «        | j                  j                  dd«       | j                  j                  «        | j                  d«      \  }}| j                   j                  j                  d||¬«       | j                   j                  j                  «        | j                  j                  «        | j                  | j                  «       d«       y )Nr}   zone
two
three
four
rŠ   ú
<Button-1>©rŽ   r�   )r¹   z3.0)r_   r¯   r   rª   rA   Úupdater�   r‹   Úevent_generater•   rˆ   )r   rŽ   r�   s      r   Útest_click_selectionz$LineNumbersTest.test_click_selection  s«   € à�‰×$Ñ$Ô&Ø�	‰	×Ñ˜Ð 9Ô:Ø�	‰	×ÑÔð ×,Ñ,¨QÓ/‰ˆˆ1Ø�‰×$Ñ$×3Ñ3°LÀAÈÐ3ÔKØ�‰×$Ñ$×+Ñ+Ô-Ø�	‰	×ÑÔà×Ñ˜×+Ñ+Ó-¨~Õ>r    c                 ój  — | j                  |«      \  }}| j                  |«      \  }}| j                  j                  j                  d||¬«       | j                  j                  «        d„ }t        t        t         |||d¬«      «      t        t         |||d¬«      «      «      D ]G  \  }}	| j                  j                  j                  d||	¬«       | j                  j                  «        ŒI | j                  j                  j                  d||¬«       | j                  j                  «        y )NrÈ   rÉ   c              3   ób   K  — |dz
  }t        |«      D ]  }||z
  |z  | z  ||z  |z  z   –— Œ y­w)z;linearly interpolate from a to b (inclusive) in equal stepsr5   N)r    )ÚaÚbÚstepsÚ	last_stepÚis        r   Úlerpz+LineNumbersTest.simulate_drag.<locals>.lerp  s?   è ø€ à ™	ˆIÜ˜5–\�Ø! A™¨Ñ2°aÑ7¸1¸y¹=ÈAÑ:MÑMÓMñ "ùs   ‚-/rÁ   )rÑ   z<B1-Motion>z<ButtonRelease-1>)	r�   r_   r‹   rË   rA   rÊ   Úzipr…   r'   )
r   Ú
start_lineÚend_lineÚstart_xÚstart_yÚend_xÚend_yrÔ   rŽ   r�   s
             r   Úsimulate_dragzLineNumbersTest.simulate_drag  s
  € Ø×8Ñ8¸ÓDÑˆ�Ø×4Ñ4°XÓ>‰ˆˆuà�‰×$Ñ$×3Ñ3°LØ6=Àð 	4ô 	Jà�	‰	×ÑÔò	Nô Ü”C™˜g u°BÔ7Ó8Ü”C™˜g u°BÔ7Ó8ö
‰DˆAˆqð �O‰O×(Ñ(×7Ñ7¸ÈÈaÐ7ÔPØ�I‰I×ÑÕð
ð 	�‰×$Ñ$×3Ñ3Ð4GØ6;¸uð 	4ô 	Fà�	‰	×ÑÕr    c                 ó  — | j                   j                  «        | j                  j                  dd«       | j                  j                  «        | j                  dd«       | j                  | j                  «       d«       y )Nr}   úone
two
three
four
five
rŠ   r«   ©r¹   z5.0©	r_   r¯   r   rª   rA   rÊ   rÜ   r•   rˆ   r€   s    r   Útest_drag_selection_downz(LineNumbersTest.test_drag_selection_down+  ób   € à�‰×$Ñ$Ô&Ø�	‰	×Ñ˜Ð ?Ô@Ø�	‰	×ÑÔð 	×Ñ˜1˜aÔ Ø×Ñ˜×+Ñ+Ó-¨~Õ>r    c                 ó  — | j                   j                  «        | j                  j                  dd«       | j                  j                  «        | j                  dd«       | j                  | j                  «       d«       y )Nr}   rÞ   r«   rŠ   rß   rà   r€   s    r   Útest_drag_selection_upz&LineNumbersTest.test_drag_selection_up5  râ   r    c                 ó  — | j                   j                  «        | j                  j                  dd«       | j                  j                  «        | j                  j                  dd«       | j                  j                  «        | j                  | j                  j                  d«      d«       | j                  | j                   j                  j                  d«      d«       | j                   j                  j                  dddd¬	«       | j                  j                  «        | j                  | j                  j                  d«      d«       | j                  | j                   j                  j                  d«      d«       y )
Nr}   aô  line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
line
rÀ   Úunitú@0,0z11.0ú<MouseWheel>r   ©rŽ   r�   Údelta)r_   r¯   r   rª   rA   rÊ   Úyview_scrollr•   r)   r‹   rË   ÚassertNotEqualr€   s    r   Útest_scrollzLineNumbersTest.test_scroll?  s  € Ø�‰×$Ñ$Ô&Ø�	‰	×Ñ˜ Ô/Ø�	‰	×ÑÔð 	�	‰	×Ñ˜r 6Ô*Ø�	‰	×ÑÔØ×Ñ˜Ÿ™Ÿ™¨Ó0°&Ô9Ø×Ñ˜Ÿ™×5Ñ5×;Ñ;¸FÓCÀVÔLð
 	�‰×$Ñ$×3Ñ3°NØ67¸1Ø:<ð 	4ô 	>ð 	�	‰	×ÑÔØ×Ñ˜DŸI™IŸO™O¨FÓ3°VÔ<Ø×Ñ˜DŸO™O×8Ñ8×>Ñ>¸vÓFÈÕOr    c                 óz  — | j                   }|j                  d   }d}| j                  ||«       |j                  «        || _        |j                  «        |j                  «        | j                  |j                  d   |«       || _        |j                  «        | j                  |j                  d   |«       y )NÚfontÚ
TkTextFont)r_   r‹   rì   r°   rh   Úupdate_fontr¯   r•   )r   ÚlnÚ	orig_fontÚ	test_fonts       r   rô   zLineNumbersTest.test_fontT  sž   € Ø�_‰_ˆà—O‘O FÑ+ˆ	Ø ˆ	Ø×Ñ˜I yÔ1ð 	�‰Ôà&ˆÔà
�‰Ôð 	�‰ÔØ×Ñ˜Ÿ™¨Ñ0°)Ô<ð 'ˆÔØ
�‰ÔØ×Ñ˜Ÿ™¨Ñ0°)Õ<r    c                 óL  ‡ ‡— ‰ j                   Št        ‰ j                  «      }dddœ}ˆˆ fd„}‰j                  «        |‰ _        ‰j	                  «        ‰j                  «         ||«       ‰j	                  «         ||«       |‰ _        ‰j	                  «         ||«       y )Nz#222222z#ffff00r[   c                 óŽ   •— ‰j                  ‰j                  d   | d   «       ‰j                  ‰j                  d   | d   «       y )Nr\   r]   )r•   r‹   )Úcolorsrò   r   s    €€r   Úassert_colors_are_equalzFLineNumbersTest.test_highlight_colors.<locals>.assert_colors_are_equalq  s?   ø€ Ø×Ñ˜RŸ_™_¨\Ñ:¸FÀ<Ñ<PÔQØ×Ñ˜RŸ_™_¨\Ñ:¸FÀ<Ñ<PÕQr    )r_   Údictr`   r°   Úupdate_colorsr¯   )r   Úorig_colorsÚtest_colorsrø   rò   s   `   @r   Útest_highlight_colorsz%LineNumbersTest.test_highlight_colorsk  s”   ù€ Ø�_‰_ˆä˜4×-Ñ-Ó.ˆØ%.¸iÑHˆõ	Rð
 	�‰Ôà(ˆÔà
×ÑÔð 	�‰ÔÙ Ô,ð 	×ÑÔÙ Ô,ð )ˆÔØ
×ÑÔÙ Õ,r    N)r+   r,   r-   ÚclassmethodrR   rW   rz   r�   rˆ   r�   r—   r›   r£   r¥   r¨   r¬   r±   r¶   rº   rÆ   rq   ÚskiprÌ   rÜ   rá   rä   rí   rô   rý   r"   r    r   r/   r/   &   sä   „ àñ8ó ð8ð  ñ<ó ð<ò.ò.'ò<òò1ò?òEòGò'ò'ò
9ò%ò*%ò<B)ðV €X‡]�]�?Ó#ñ?ó $ð?òð2 €X‡]�]�?Ó#ñ?ó $ð?ð €X‡]�]�?Ó#ñ?ó $ð?òPò*=ó.-r    r/   c                   óÄ  — e Zd ZU dZej
                  ed<   dZeed<   e	d„ «       Z
e	d„ «       Ze	d„ «       Ze	d„ «       Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e«       d„ «       Z e«       d„ «       Z e«       d„ «       Z e«       d„ «       Z e«       d„ «       Z e«       d„ «       Z e«       d„ «       Zd„ Zd„ Z  e«       d„ «       Z! e«       d„ «       Z" e«       d„ «       Z#y)ÚShellSidebarTestNrA   Úshellc                 ó  — t        d«       t        j                  «       x| _        }|j	                  «        t        |«       t        |«       t        |«       t        |«      x| _	        }|j                  «        | j                  «        y )Nr1   )r   r?   r@   rA   rB   r   r   r   r   ÚflistrU   Ú
init_shell)rQ   rA   r  s      r   rR   zShellSidebarTest.setUpClassŽ  sc   € ä�ŒäŸ%™%›'Ð!ˆŒ�4Ø�‰Œä�DÔÜ�dÔÜ�dÔä+¨DÓ1Ð1ˆŒ	�Eà×ÑÔà�‰Õr    c                 ó  — | j                   �2d| j                   _        | j                   j                  «        d | _         d | _        | j                  j                  «        | j                  j                  «        d | _        y )NF)r  Ú	executingrT   r  rA   rU   rV   rP   s    r   rW   zShellSidebarTest.tearDownClassŸ  s[   € à�9‰9Ð Ø"'ˆC�I‰IÔØ�I‰I�O‰OÔØˆCŒIØˆŒ	Ø�‰×!Ñ!Ô#Ø�‰×ÑÔØˆ�r    c                 óè   — | j                   j                  «       | _        d| j                  _        | j                  j                  «        t        | j                  j                  d«      dz
  | _        y )NrÀ   úend-1cr5   )	r  Ú
open_shellr  ÚpollintervalrA   rÊ   r   r   Ún_preface_linesrP   s    r   r  zShellSidebarTest.init_shellª  sL   € à—I‘I×(Ñ(Ó*ˆŒ	Ø!#ˆ�	‰	ÔØ�‰�‰ÔÜ(¨¯©¯©¸ÓBÀQÑFˆÕr    c                 ó   — | j                   j                  j                  j                  | j                  dz   › d�d«       | j                   j
                  j                  «        | j                  j                  «        y )Nr5   ú.0r	  )	r  r   Úbottomr   r  Úshell_sidebarÚupdate_sidebarrA   rÊ   rP   s    r   Úreset_shellzShellSidebarTest.reset_shell±  sW   € à�	‰	�‰×Ñ×#Ñ# s×':Ñ':¸1Ñ'<Ð&=¸RÐ$@À(ÔKØ�	‰	×Ñ×.Ñ.Ô0Ø�‰�‰Õr    c                 óè   — d | _         t        j                  | j                  j                  k7  r4t        j                  | _         | j                  j                  t        _        | j	                  «        y r   )Ú_saved_stdoutÚsysÚstdoutr  r  r€   s    r   rz   zShellSidebarTest.setUp·  sK   € ð
 "ˆÔÜ�:‰:˜Ÿ™×*Ñ*Ò*Ü!$§¡ˆDÔØŸ™×*Ñ*ŒCŒJà×ÑÕr    c                 óH   — | j                   �| j                   t        _        y y r   )r  r  r  r€   s    r   r�   zShellSidebarTest.tearDownÃ  s    € Ø×ÑÐ)Ø×+Ñ+ŒC�Jð *r    c                 ój  — | j                   j                  j                  }t        |j	                  t
        j                  «      «      }|D �ci c]'  }|j                  |«      d   |j                  |d«      “Œ) }}| j                  «       }|D �cg c]  }|j                  |d «      ‘Œ c}S c c}w c c}w )Nr5   r   )r  r  ÚcanvasÚlistÚfindr?   ÚALLrŒ   ÚitemcgetÚget_shell_line_y_coordsr™   )r   r  Útextsr   Útexts_by_y_coordsÚline_y_coordsr�   s          r   Úget_sidebar_linesz"ShellSidebarTest.get_sidebar_linesÇ  s¬   € Ø—‘×)Ñ)×0Ñ0ˆÜ�V—[‘[¤§¡Ó(Ó)ˆñ ó
á�ð �K‰K˜Ó˜aÑ  &§/¡/°$¸Ó"?Ñ?Øð 	ð 
ð ×4Ñ4Ó6ˆÙ8EÓF¹°1Ð!×%Ñ% a¨Õ.¸ÑFÐFùò
ùò
 Gs   Á,B+ÂB0c                 ó¦   — | j                   j                  j                  «        | j                  | j	                  «       t        |«       d  |«       y r   )r  r  r  r•   r"  Úlen)r   Úexpected_liness     r   Úassert_sidebar_lines_end_withz.ShellSidebarTest.assert_sidebar_lines_end_withÑ  sE   € Ø�
‰
× Ñ ×/Ñ/Ô1Ø×ÑØ×"Ñ"Ó$¤c¨.Ó&9Ð%9Ð%:Ð;Øõ	
r    c                 óN  — | j                   j                  }g }|j                  d«      }|j                  dd«      d   dk7  r|j                  |› d�«      }|j	                  |«      x}�<|j                  |d   «       |j                  |› d�«      }|j	                  |«      x}�Œ<|S )Nrç   Ú.r5   Ú0z +1line linestartz +1line)r  r   r)   ÚsplitÚ	dlineinfoÚappend)r   r   Úy_coordsr)   Úlineinfos        r   r  z(ShellSidebarTest.get_shell_line_y_coordsØ  s¦   € Ø�z‰z�‰ˆØˆØ—
‘
˜6Ó"ˆØ�;‰;�s˜AÓ˜qÑ! SÒ(Ø—J‘J % Ð(9Ð:Ó;ˆEØŸ>™>¨%Ó0Ð0ˆxÐ=Ø�O‰O˜H Q™KÔ(Ø—J‘J % ¨Ð0Ó1ˆEð  Ÿ>™>¨%Ó0Ð0ˆxÑ=ð ˆr    c                 ó  ‡— | j                   j                  j                  Št        ‰j	                  t
        j                  «      «      }|j                  ˆfd„¬«       |D �cg c]  }‰j                  |«      d   ‘Œ c}S c c}w )Nc                 ó,   •— ‰j                  | «      d   S r§   )rŒ   )r   r  s    €r   Ú<lambda>z<ShellSidebarTest.get_sidebar_line_y_coords.<locals>.<lambda>æ  s   ø€  F§K¡K°Ó$5°aÒ$8r    )Úkeyr5   )	r  r  r  r  r  r?   r  ÚsortrŒ   )r   r  r   r  s      @r   Úget_sidebar_line_y_coordsz*ShellSidebarTest.get_sidebar_line_y_coordsã  sd   ø€ Ø—‘×)Ñ)×0Ñ0ˆÜ�V—[‘[¤§¡Ó(Ó)ˆØ�
‰
Ó8ˆ
Ô9Ù16Ó7±¨�—‘˜DÓ! !Ó$°Ñ7Ð7ùÒ7s   Á#Bc                 ó„   — | j                  t        | j                  «       «      t        | j                  «       «      «       y r   )ÚassertLessEqualÚsetr4  r  r€   s    r   Úassert_sidebar_lines_syncedz,ShellSidebarTest.assert_sidebar_lines_syncedé  s2   € Ø×ÑÜ�×.Ñ.Ó0Ó1Ü�×,Ñ,Ó.Ó/õ	
r    c                 óÊ   — | j                   }|j                  }t        |j                  d«      «      D ].  \  }}|dkD  r|j	                  d«       |j                  d|d«       Œ0 y )Nr�   r   ú<<newline-and-indent>>rª   Ústdin)r  r   Ú	enumerater*  rË   rª   )r   Úinputr  r   Ú
line_indexr�   s         r   Údo_inputzShellSidebarTest.do_inputï  sW   € Ø—
‘
ˆØ�z‰zˆÜ )¨%¯+©+°dÓ*;Ö <ÑˆJ˜Ø˜AŠ~Ø×#Ñ#Ð$<Ô=Ø�K‰K˜ $¨Õ0ñ !=r    c                 ó�   — | j                  «       }| j                  |d gt        |«      dz
  z  dgz   «       | j                  «        y )Nr5   ú>>>)r"  r•   r$  r8  )r   Úsidebar_liness     r   Útest_initial_statez#ShellSidebarTest.test_initial_state÷  sJ   € Ø×.Ñ.Ó0ˆØ×ÑØØˆF”c˜-Ó(¨1Ñ,Ñ-°°Ñ7ô	
ð 	×(Ñ(Õ*r    c              #   ó\   K  — | j                  d«       d –— | j                  ddg«       y ­w)Nr�   rA  ©r?  r&  r€   s    r   Útest_single_empty_inputz(ShellSidebarTest.test_single_empty_inputÿ  s'   è ø€ à�‰�dÔÛØ×*Ñ*¨E°5¨>Õ:ùó   ‚*,c              #   ó\   K  — | j                  d«       d –— | j                  g d¢«       y ­w)Nz1
©rA  NrA  rE  r€   s    r   Útest_single_line_statementz+ShellSidebarTest.test_single_line_statement  s$   è ø€ à�‰�eÔÛØ×*Ñ*Ò+?Õ@ùrG  c              #   ón   K  — | j                  t        d«      «       d –— | j                  g d¢«       y ­w)Nú7            if True:
            print(1)

            ©rA  ú...rN  rN  NrA  )r?  r   r&  r€   s    r   Útest_multi_line_statementz*ShellSidebarTest.test_multi_line_statement  s8   è ø€ ð 	�‰”fð ó ô 	ó
 	Ø×*Ñ*ò ,
õ 	ùs   ‚35c              #   ó|   K  — | j                  d«       d –— | j                  g d¢«       | j                  «        y ­w)NzÉ11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
rI  )r?  r&  r8  r€   s    r   Útest_single_long_line_wrapsz,ShellSidebarTest.test_single_long_line_wraps  s1   è ø€ à�‰Ð&Ô'ÛØ×*Ñ*Ò+?Ô@Ø×(Ñ(Õ*ùs   ‚:<c              #   ó¼  K  — | j                   }|j                  }| j                  d«       d –— | j                  g d¢«       |j	                  dd«       |j                  d«       d –— | j                  g d¢«       | j                  «        |j                  j                  d   j                  «        d –— | j                  g d¢«       | j                  «        y ­w)Nzprint("a\nb\nc")
)rA  NNNrA  rª   zinsert -1line linestartz<<squeeze-current-text>>rI  r   )
r  r   r?  r&  Úmark_setrË   r8  ÚsqueezerÚexpandingbuttonsr4   )r   r  r   s      r   Útest_squeeze_multi_line_outputz/ShellSidebarTest.test_squeeze_multi_line_output$  s¬   è ø€ à—
‘
ˆØ�z‰zˆà�‰Ð,Ô-ÛØ×*Ñ*Ò+KÔLà�‰�hÐ"9Ô;Ø×ÑÐ6Ô7ÛØ×*Ñ*Ò+?Ô@Ø×(Ñ(Ô*à�‰×'Ñ'¨Ñ*×1Ñ1Ô3ÛØ×*Ñ*Ò+KÔLØ×(Ñ(Õ*ùs   ‚CCc              #   ó<  K  — | j                   j                  }| j                  «       }| j                  t	        d«      «       d –— | j                  g d¢«       | j                  «       }| j                  ||«       |j                  d«       d –— | j                  g d¢«       |j                  d«       |j                  d«       d –— | j                  g d¢«       |j                  d|j                  d«      «       |j                  d	«       d –— |j                  d
«       d –— | j                  dg«       |j                  d«       d –— | j                  ddg«       |j                  d	«       |j                  d	«       d –— | j                  g d¢«       y ­w)Nz6            if True:
            print(1)
            )rA  rN  rN  z<<interrupt-execution>>)rA  rN  rN  NrA  z<<history-previous>>)rA  rN  NrA  rª   z
insert -2lr:  z<<undo>>rA  z<<redo>>rN  rM  )
r  r   r"  r?  r   r&  rì   rË   rS  r)   )r   r   Úinitial_sidebar_linesÚwith_block_sidebar_liness       r   Útest_interrupt_recall_undo_redoz0ShellSidebarTest.test_interrupt_recall_undo_redo8  se  è ø€ à�z‰z�‰ˆà $× 6Ñ 6Ó 8Ðà�‰”fð ó ô 	ó 	Ø×*Ñ*Ò+@ÔAØ#'×#9Ñ#9Ó#;Ð Ø×ÑÐ4Ð6KÔLð 	×ÑÐ5Ô6ÛØ×*Ñ*Ò+MÔNð 	×ÑÐ2Ô3Ø×ÑÐ5Ô6ÛØ×*Ñ*Ò+FÔGð 	�‰�h §
¡
¨<Ó 8Ô9Ø×ÑÐ4Ô5Ûà×Ñ˜JÔ'ÛØ×*Ñ*¨E¨7Ô3à×Ñ˜JÔ'ÛØ×*Ñ*¨E°5¨>Ô:à×ÑÐ4Ô5Ø×ÑÐ4Ô5ÛØ×*Ñ*Ú5õ	
ùs   ‚FFc              #   ó"  K  — t        d«      5  t        | j                  dd «      5  | j                  dddz  z   dz   «       d –— | j	                  | j                  «       dg«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w­w)Nig+  rT  zx = Ú1i'  r�   rA  )r   r   r  r?  r•   r"  r€   s    r   Útest_very_long_wrapped_linez,ShellSidebarTest.test_very_long_wrapped_linef  sr   è ø€ ä& vÕ.Ü˜$Ÿ*™* j°$Õ7Ø�M‰M˜& 3 v¡:Ñ-°Ñ4Ô5ÛØ×Ñ˜T×3Ñ3Ó5¸°wÔ?÷ 8÷ /Ð.ß7Ð7ú÷ /Ð.üs4   ‚BŽB¦A A7Á&BÁ.	BÁ7B 	Á<BÂBÂBc                 ó¢  ‡ ‡‡‡— ‰ j                   j                  ŠdŠˆfd„}t        j                  j                  j                  t        j                  j                  d|«      Š‰j                  «        ˆˆfd„}‰ j                  |«       ˆ ˆfd„}‰ j                   |«       ‰«       ‰j                  «        ‰ j                   |«       ‰«       y )Nrð   c                 ó   •— ‰S r   r"   )rA   ri   rj   rô   s      €r   rk   z9ShellSidebarTest.test_font.<locals>.mock_idleconf_GetFonts  s	   ø€ ØÐr    rl   c                  óF   •— ‰ j                  «        ‰j                  «        y r   )rw   rñ   )ry   rn   s   €€r   Úcleanupz+ShellSidebarTest.test_font.<locals>.cleanupx  s   ø€ Ø× Ñ Ô"Ø×ÑÕ!r    c                  ó  •— ‰j                   } t        | j                  t        j                  «      «      }|D �ch c]  }| j                  |d«      ’Œ }}‰j                  t        |«      d«       t        t        |«      «      S c c}w )Nrï   r5   )
r  r  r  r?   r  r  r•   r$  ÚnextÚiter)r  r  r   Úfontsr   rn   s       €€r   Úget_sidebar_fontz4ShellSidebarTest.test_font.<locals>.get_sidebar_font}  sk   ø€ Ø—^‘^ˆFÜ˜Ÿ™¤R§V¡VÓ,Ó-ˆEÙ?DÓE¹u°t�V—_‘_ T¨6Õ2¸uˆEÐEØ×ÑœS ›Z¨Ô+Üœ˜U›Ó$Ð$ùò Fs   ºB)r  r  rq   rr   rs   rt   rm   rn   rp   ru   rv   rì   rñ   r•   )r   rk   ra  rf  ry   rn   rô   s   `   @@@r   rô   zShellSidebarTest.test_fontn  s£   û€ Ø—*‘*×*Ñ*ˆà ˆ	ô	ä"Ÿ-™-×-Ñ-×4Ñ4Ü�O‰O×$Ñ$ iÐ1FóHˆà×ÑÔõ	"ð 	�‰˜Ô õ	%ð 	×ÑÑ,Ó.°	Ô:Ø×ÑÔØ×ÑÑ)Ó+¨YÕ7r    c                 óô  ‡ ‡‡‡‡— ‰ j                   j                  ŠdddœŠt        j                  j                  j
                  Šˆˆfd„}t        j                  j                  j                  t        j                  j                  d|«      Š‰j                  «        ˆˆfd„}‰ j                  |«       ˆ ˆfd„}‰ j                   |«       ‰«       ‰j                  «        ‰ j                   |«       ‰«       y )NrY   rZ   r[   c                 ó"   •— |dv r‰S  ‰| |«      S )N)r_   Úconsoler"   )ra   rb   rc   rü   s     €€r   rd   zJShellSidebarTest.test_highlight_colors.<locals>.mock_idleconf_GetHighlightŽ  s   ø€ ØÐ3Ñ3Ø"Ð"Ù-¨e°WÓ=Ð=r    re   c                  óF   •— ‰ j                  «        ‰j                  «        y r   )rw   rú   )rx   rn   s   €€r   ra  z7ShellSidebarTest.test_highlight_colors.<locals>.cleanup–  s   ø€ Ø ×%Ñ%Ô'Ø×!Ñ!Õ#r    c                  ó>  •— ‰j                   } t        | j                  t        j                  «      «      }|D �ch c]  }| j                  |d«      ’Œ }}‰j                  t        |«      d«       t        t        |«      «      }| j                  d«      }||dœS c c}w )Nr3   r5   r\   r[   )r  r  r  r?   r  r  r•   r$  rc  rd  Úcget)r  r  r   ÚfgsÚfgÚbgr   rn   s         €€r   Úget_sidebar_colorszBShellSidebarTest.test_highlight_colors.<locals>.get_sidebar_colors›  s‚   ø€ Ø—^‘^ˆFÜ˜Ÿ™¤R§V¡VÓ,Ó-ˆEÙ=BÓC¹U°T�6—?‘? 4¨Õ0¸UˆCÐCØ×ÑœS ›X qÔ)Ü”d˜3“i“ˆBØ—‘˜\Ó*ˆBØ"$°BÑ7Ð7ùò	 Ds   ºB)r  r  rm   rn   rp   re   rq   rr   rs   rt   ru   rv   rì   rú   r•   )r   rd   ra  rp  rx   rc   rn   rü   s   `   @@@@r   rý   z&ShellSidebarTest.test_highlight_colorsˆ  sÂ   ü€ Ø—*‘*×*Ñ*ˆà%.¸iÑHˆä%,§_¡_×%=Ñ%=×%JÑ%JÐ"õ	>ô  (Ÿ}™}×2Ñ2×9Ñ9Ü�O‰O×$Ñ$ nØ&ó (Ðð 	×"Ñ"Ô$õ	$ð 	�‰˜Ô õ	8ð 	×ÑÑ.Ó0°+Ô>Ø×ÑÔØ×ÑÑ+Ó-¨{Õ;r    c              #   ó°  K  — | j                   j                  }| j                   j                  }| j                  d«       d –— | j	                  t        |d«      d«       t        |«      }| j                  |j                  |j                  |› d�«      «      «       |j                  j                  dk(  rdnd}|j                  j                  dk(  r|j                  j                  dd	d	¬
«       n|j                  j                  dd	d	|¬«       d –— | j                  |j                  |j                  |› d�«      «      «       |j                  j                  dk(  r|j                  j                  dd	d	¬
«       n |j                  j                  dd	d	| ¬«       d –— | j                  |j                  |j                  |› d�«      «      «       y ­w)Nzox = """



































































































"""
rç   r5   r  Úaquaéx   Úx11z
<Button-4>r   rÉ   rè   ré   z
<Button-5>)r  r  r   r?  ÚassertGreaterr   r   ÚassertIsNotNoner+  r)   r  Ú_windowingsystemrË   ÚassertIsNone)r   rn   r   Úlast_linenorê   s        r   Útest_mousewheelz ShellSidebarTest.test_mousewheel¨  s|  è ø€ à—*‘*×*Ñ*ˆØ�z‰z�‰ˆð 	�‰Ð4Ô5ÛØ×Ñœ: d¨FÓ3°QÔ7ä(¨Ó.ˆØ×Ñ˜TŸ^™^¨D¯J©J¸+¸ÀbÐ7IÓ,JÓKÔLð —^‘^×4Ñ4¸Ò>‘ÀCˆð �>‰>×*Ñ*¨eÒ3Ø�N‰N×)Ñ)¨,¸!¸qÐ)ÕAà�N‰N×)Ñ)¨.¸AÀÈ%Ð)ÔPÛØ×Ñ˜$Ÿ.™.¨¯©°{°mÀ2Ð4FÓ)GÓHÔIð �>‰>×*Ñ*¨eÒ3Ø�N‰N×)Ñ)¨,¸!¸qÐ)ÕAà�N‰N×)Ñ)¨.¸AÀÈ5È&Ð)ÔQÛØ×Ñ˜TŸ^™^¨D¯J©J¸+¸ÀbÐ7IÓ,JÓKÕLùs   ‚GGc              #   óê  K  — | j                   j                  }| j                   j                  }t        |«      }| j	                  t        d«      «       d –— |j                  d|› d�d«       |j                  dd«      }| j                  |d«       | j                  d|«       |j                  d	«       | j                  |j                  «       |j                  «       }| j                  ||«       y ­w)
NrL  rƒ   r  r	  ú	sel.firstúsel.lastz	if True:
z
1
z<<copy>>)r  r  r   r   r?  r   Útag_addr™   ÚassertStartsWithÚassertInrË   rv   Úclipboard_clearÚclipboard_getr•   )r   rn   r   Ú
first_lineÚselected_textÚcopied_texts         r   Ú	test_copyzShellSidebarTest.test_copyÈ  sÌ   è ø€ à—*‘*×*Ñ*ˆØ�z‰z�‰ˆä'¨Ó-ˆ
à�‰”fð ó ô 	ó
 	à�‰�U˜z˜l¨"Ð-¨xÔ8ØŸ™ ¨jÓ9ˆØ×Ñ˜m¨\Ô:Ø�‰�g˜}Ô-à×Ñ˜JÔ'Ø�‰˜×,Ñ,Ô-à×(Ñ(Ó*ˆØ×Ñ˜ mÕ4ùs   ‚C1C3c              #   ó®  K  — | j                   j                  }| j                   j                  }t        |«      }| j	                  t        d«      «       d –— |j                  d|› d�d«       |j                  dd«      }| j                  |d«       |j                  dd«      }|j                  d	«      }|j                  «        d
gdgt        |«      dz
  z  z   d gz   }d	j                  d„ t        ||d¬«      D «       «      d	z   }|j                  d«       | j                  |j                   «       |j#                  «       }	| j%                  |	|«       y ­w)Nz;            if True:
                print(1)

            rƒ   z.3r	  r|  r}  zTrue:
zsel.first linestartr�   rA  rN  rŠ   c              3   ó:   K  — | ]  \  }}|€|n|dz   |z   –— Œ y ­w)NÚ r"   )Ú.0Úpromptr�   s      r   Ú	<genexpr>z:ShellSidebarTest.test_copy_with_prompts.<locals>.<genexpr>ø  s2   è ø€ ð /
ñ!1‘�˜ð �N‰D¨°©°tÑ(;Ó;ñ!1ùs   ‚T)Ústrictz<<copy-with-prompts>>)r  r  r   r   r?  r   r~  r™   r  r*  Úpopr$  rŸ   rÕ   rË   rv   r�  r‚  r•   )
r   rn   r   rƒ  r„  Úselected_lines_textÚselected_linesÚexpected_promptsÚselected_text_with_promptsr…  s
             r   Útest_copy_with_promptsz'ShellSidebarTest.test_copy_with_promptsá  sM  è ø€ à—*‘*×*Ñ*ˆØ�z‰z�‰ˆä'¨Ó-ˆ
Ø�‰”fð ó ô 	ó
 	à�‰�U˜z˜l¨"Ð-¨xÔ8ØŸ™ ¨jÓ9ˆØ×Ñ˜m¨YÔ7à"Ÿh™hÐ'<¸jÓIÐØ,×2Ñ2°4Ó8ˆØ×ÑÔð ˆG�u�g¤ ^Ó!4°qÑ!8Ñ9Ñ9¸T¸FÑBð 	à%)§Y¡Yñ /
ä #Ð$4Ø$2Ø+/õ!1ó/
ó &
ð
 ñ&Ð"ð 	×ÑÐ3Ô4Ø�‰˜×,Ñ,Ô-à×(Ñ(Ó*ˆØ×Ñ˜Ð&@ÕAùs   ‚EE)$r+   r,   r-   rA   r?   r@   Ú__annotations__r  r   rþ   rR   rW   r  r  rz   r�   r"  r&  r  r4  r8  r?  rC  r	   rF  rJ  rO  rQ  rV  rZ  r]  rô   rý   rz  r†  r“  r"   r    r   r  r  Š  s’  … Ø€Dˆ"�%‰%ÓØ€Eˆ7Óàñó ðð  ñó ðð ñGó ðGð ñó ðò

ò,òGò
ò	ò8ò
ò1ò+ñ Óñ;ó ð;ñ
 ÓñAó ðAñ
 Óñó ðñ" Óñ+ó ð+ñ Óñ+ó ð+ñ& Óñ+
ó ð+
ñZ Óñ@ó ð@ò8ò4<ñ@ ÓñMó ðMñ> Óñ5ó ð5ñ0 Óñ!Bó ñ!Br    r  Ú__main__rŠ   )Ú	verbosity)(Ú__doc__Útextwrapr   r  Ú	itertoolsr   rq   Úunittest.mockÚtest.supportr   r   r   Útest.support.testcaser   Útkinterr?   Ú'idlelib.idle_test.tkinter_testing_utilsr	   Úidlelib.delegatorr
   Úidlelib.editorr   Úidlelib.percolatorr   Úidlelib.pyshellrm   r   r   r   Úidlelib.runr   Úidlelib.sidebarr   r   r   ÚTestCaser/   r  r+   Úmainr"   r    r   Ú<module>r§     s–   ðÙ  Ý Û 
å Û Û ß GÑ GÝ 1Û Ý Få 'Ý (Ý )Û ß CÑ CÝ #Û ß :÷2ñ 2ôa-�h×'Ñ'ô a-ôHyB�x×(Ñ(¨/ô yBðx ˆzÒØ€H‡M�M˜AÖð r    