HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/python38/lib/python3.8/idlelib/idle_test/__pycache__/test_sidebar.cpython-38.pyc
U

�i�_�3�@s�dZddlZddlmZddlZddlZddlmZddl	Z
ddlmZddl
mZGdd�d�ZGd	d
�d
ej�Zedkr�ejdd
�dS)zTest sidebar, coverage 93%�N)�chain)�requires)�	Delegator)�
Percolatorc@s$eZdZdd�Zdd�Zdd�ZdS)�
Dummy_editwincCs4||_|jj|_t|�|_t�|_|j�|j�dS�N)�textZmaster�
text_framer�perrZundoZinsertfilter)�selfr�r�=/opt/python38/lib/python3.8/idlelib/idle_test/test_sidebar.py�__init__s


zDummy_editwin.__init__cCsdSrr)r�name�valuerrr
�setvarszDummy_editwin.setvarcCstt|j�|���Sr)�int�floatr�index)rrrrr
�	getlinenoszDummy_editwin.getlinenoN)�__name__�
__module__�__qualname__rrrrrrr
r
src@s�eZdZedd��Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/S)0�LineNumbersTestcCs�td�t��|_t�|j�|_|jjtjtjdd�|jj	ddd�|jj
ddd�tj|jddtjd�|_
|j
jddtjd	�t|j
�|_t�|j�|j_dS)
NZguiT)Zside�fill�expand�)Zweight�P�)�widthZheight�wrap)�row�columnZsticky)r�tkZTk�rootZFramer	�packZLEFTZBOTHZrowconfigureZcolumnconfigureZText�NONErZgridZNSEWr�editwinZ	ScrollbarZvbar��clsrrr
�
setUpClasss
zLineNumbersTest.setUpClasscCs4|jj��|j��|j��|`|`|`|`dSr)r'r
�closer$�updateZdestroyrr	r(rrr
�
tearDownClass.s

zLineNumbersTest.tearDownClasscs�tj��j��_ddd��_tjjj���fdd�}tj	j
�tjjd|�}|����
|j�d�_�fdd	�}tj	j
�tjjd
|�}|����
|j�dS)Nz#abcdefz#123456��
background�
foregroundcs|dkr�jS�||�S)N�
linenumber)�
highlight_cfg)Ztheme�element�Zorig_idleConf_GetHighlightrrr
�mock_idleconf_GetHighlight;sz9LineNumbersTest.setUp.<locals>.mock_idleconf_GetHighlight�GetHighlightZTkFixedFontcs�jSr)�
font_override)r$Z
configType�section�rrr
�mock_idleconf_GetFontEsz4LineNumbersTest.setUp.<locals>.mock_idleconf_GetFontZGetFont)�idlelibZsidebarZLineNumbersr'r1r2ZidleConfr6�unittestZmockZpatch�object�startZ
addCleanup�stopr7)rr5ZGetHighlight_patcherr:ZGetFont_patcherrr4r
�setUp5s,�
��zLineNumbersTest.setUpcCs|j�dd�dS�N�1.0�end)r�deleter9rrr
�tearDownLszLineNumbersTest.tearDowncCsttt|j�d���S)NZsel)�tuple�map�strrZ
tag_rangesr9rrr
�
get_selectionOszLineNumbersTest.get_selectioncCs4|jj�|�d��}|dd}|dd}||fS)Nz.end -1cr�r)r1�sidebar_text�bbox)r�linerL�x�yrrr
�get_line_screen_positionRsz(LineNumbersTest.get_line_screen_positioncCs&|jj��d}|�|dtj�dS)N�state���)r1rK�config�assertEqualr#ZDISABLED)rrQrrr
�assert_state_disabledXsz%LineNumbersTest.assert_state_disabledcCs|jj�dtj�S)NrB)r1rK�getr#ZENDr9rrr
�get_sidebar_text_contents\sz)LineNumbersTest.get_sidebar_text_contentsc	Cs6d�ttttd|d��dg��}|�|��|�dS)N�
r�)�joinrrGrH�rangerTrW)rZn_lines�expectedrrr
�assert_sidebar_n_lines_s"z&LineNumbersTest.assert_sidebar_n_linescCs|�|j�dd�|�SrA)rTrrV)rr\rrr
�assert_text_equalscsz"LineNumbersTest.assert_text_equalscCs|�d�dS)Nr)r]r9rrr
�test_init_emptyfszLineNumbersTest.test_init_emptycCs&|j�dd�|�d�|�d�dS)N�insertzfoo bar
foo bar
foo bar
zfoo bar
foo bar
foo bar

�)rr`r^r]r9rrr
�test_init_not_emptyis
z#LineNumbersTest.test_init_not_emptycCs�|�|jjd�|j��|�|jjd�|j��|�|jjd�|j��|�|jjd�|j��|�|jjd�|j��|�|jjd�dS)NFT)rTr1Zis_shown�show_sidebar�hide_sidebarr9rrr
�test_toggle_linenumberingns




z)LineNumbersTest.test_toggle_linenumberingcCs�|j�dd�|�d�|�d�|��|j�dd�|�d�|�d�|��|j�dd�|�d	�|�d
�|��|j�dd�|�d�|�d
�|��dS)Nr`�foobar�foobar
rz
foozfoobar
foo
rJzhello
hello
zfoobar
foohello
hello

raz
worldzfoobar
foohello
hello

world
�)rr`r^r]rUr9rrr
�test_insert{s 







zLineNumbersTest.test_insertcCs�|j�dd�|�d�|j�dd�|�d�|�d�|��|j�dd�|�d	�|�d
�|��|j�dd�|�d
�|�d
�|��|j�dd�|�d�|�d�|��|j�dd�|�d�|�d�|��dS)Nr`rfrgz1.1z1.3zfbar
rzfoo
foo
z
fbarfoo
foo

��2.0z2.endz
fbarfoo


rCzfba
rBrX)rr`r^rDr]rUr9rrr
�test_delete�s,










zLineNumbersTest.test_deletecs<�fdd�}��d���|�d��j�dd���d���|�d��j�dd���d���|�d��j�dd���d	���|�d
��j�dd���d���|�d
��j�dd
���d	���|�d
��j�dd
���d���|�d��j�dd���d���|�d
��j�dd���d���|�d��j�dd���d���|�d��j�dd
���d���|�d��j�dd
���d���|�d
��j�dd���d���|�d
��j�dd���d���|�d��j�dd���d���|�d�dS)zY
        Test that linenumber text widget is always at the minimum
        width
        cs�jj��ddS)NrrR)r1rKrSrr9rr
�	get_width�sz:LineNumbersTest.test_sidebar_text_width.<locals>.get_widthrr`Zfooz foo
foo
foo
foo
foo
foo
foo
foo
�	zfoo
�
rJ�zinsert -1l linestartzinsert linestartahfoo
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�drj�ez50.0 -1czend -1c�1z5.0 -1crarBN)r]rTrr`rD)rrmrr9r
�test_sidebar_text_width�sZ














z'LineNumbersTest.test_sidebar_text_widthcCsn|j��|j�dd�|j��|�d�\}}|jjjd||d�|jj��|j��|�	|�
�d�dS)NrBzone
two
three
four
rJ�
<Button-1>�rNrO)rkz3.0)r1rcrr`r$r,rPrK�event_generaterTrI)rrNrOrrr
�test_click_selection�s


z$LineNumbersTest.test_click_selectionc
	Cs�|�|�\}}|�|�\}}|jjjd||d�|j��dd�}ttt|||dd��tt|||dd���D]&\}}	|jjjd||	d�|j��ql|jjjd||d�|j��dS)	Nrvrwcss8|d}t|�D]"}|||||||VqdS)z;linearly interpolate from a to b (inclusive) in equal stepsrN)r[)�a�b�stepsZ	last_step�irrr
�lerpsz+LineNumbersTest.simulate_drag.<locals>.lerprp)r|z<B1-Motion>z<ButtonRelease-1>)	rPr1rKrxr$r,�ziprGr)
rZ
start_lineZend_lineZstart_xZstart_yZend_xZend_yr~rNrOrrr
�
simulate_drag�s&
�
�
�zLineNumbersTest.simulate_dragcCsB|j��|j�dd�|j��|�dd�|�|��d�dS)NrB�one
two
three
four
five
rJra�rkz5.0�	r1rcrr`r$r,r�rTrIr9rrr
�test_drag_selection_downs


z(LineNumbersTest.test_drag_selection_downcCsB|j��|j�dd�|j��|�dd�|�|��d�dS)NrBr�rarJr�r�r9rrr
�test_drag_selection_up!s


z&LineNumbersTest.test_drag_selection_upcCs�|j��|j�dd�|j��|j�dd�|j��|�|j�d�d�|�|jj	�d�d�|jj	j
ddddd	�|j��|�|j�d�d�|�|jj	�d�d�dS)
NrBa�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
roZunitz@0,0z11.0z<MouseWheel>r)rNrOZdelta)r1rcrr`r$r,Zyview_scrollrTrrKrx�assertNotEqualr9rrr
�test_scroll*s



�
zLineNumbersTest.test_scrollcCst|j}|jd}d}|�||�|��||_|��|��|�|jd|�||_|��|�|jd|�dS)NZfontZ
TkTextFont)r1rKr�rdr7Zupdate_fontrcrT)r�lnZ	orig_font�	test_fontrrr
r�?s
zLineNumbersTest.test_fontcsx�j�t�j�}ddd�}��fdd�}���|�_������||����||�|�_���||�dS)Nz#222222z#ffff00r.cs0���jd|d����jd|d�dS)Nr/r0)rTrK)Zcolors�r�rrr
�assert_colors_are_equal\szFLineNumbersTest.test_highlight_colors.<locals>.assert_colors_are_equal)r1�dictr2rdZ
update_colorsrc)rZorig_colorsZtest_colorsr�rr�r
�test_highlight_colorsVs

z%LineNumbersTest.test_highlight_colorsN)rrr�classmethodr*r-r@rErIrPrUrWr]r^r_rbrerirlruryr�r�r�r�r�r�rrrr
rs2


D
		r�__main__rJ)�	verbosity)�__doc__Zidlelib.sidebarr;�	itertoolsrr<Z
unittest.mockZtest.supportr�tkinterr#Zidlelib.delegatorrZidlelib.percolatorrrZTestCaserr�mainrrrr
�<module>s[