Your IP : 216.73.216.213


Current Path : /opt/alt/python38/lib64/python3.8/idlelib/idle_test/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/idlelib/idle_test/__pycache__/test_sidebar.cpython-38.pyc

U

i�f�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�C/opt/alt/python38/lib64/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)ZsideZfill�expand�)Zweight�P�)�widthZheightZwrap)�row�columnZsticky)r�tkZTk�rootZFramer	ZpackZLEFTZBOTHZrowconfigureZcolumnconfigureZTextZNONErZgridZNSEWr�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)ZthemeZelement�Zorig_idleConf_GetHighlightrrr
�mock_idleconf_GetHighlight;sz9LineNumbersTest.setUp.<locals>.mock_idleconf_GetHighlight�GetHighlightZTkFixedFontcs�jSr)�
font_override)r"Z
configTypeZsection�rrr
�mock_idleconf_GetFontEsz4LineNumbersTest.setUp.<locals>.mock_idleconf_GetFontZGetFont)�idlelibZsidebarZLineNumbersr#r-r.ZidleConfr1�unittestZmockZpatch�object�startZ
addCleanup�stopr2)rr0ZGetHighlight_patcherr4ZGetFont_patcherrr/r
�setUp5s,�
��zLineNumbersTest.setUpcCs|j�dd�dS�N�1.0�end)r�deleter3rrr
�tearDownLszLineNumbersTest.tearDowncCsttt|j�d���S)NZsel)�tuple�map�strrZ
tag_rangesr3rrr
�
get_selectionOszLineNumbersTest.get_selectioncCs4|jj�|�d��}|dd}|dd}||fS)Nz.end -1cr�r)r-�sidebar_text�bbox)r�linerF�x�yrrr
�get_line_screen_positionRsz(LineNumbersTest.get_line_screen_positioncCs&|jj��d}|�|dtj�dS)N�state���)r-rE�config�assertEqualr!ZDISABLED)rrKrrr
�assert_state_disabledXsz%LineNumbersTest.assert_state_disabledcCs|jj�dtj�S)Nr<)r-rE�getr!ZENDr3rrr
�get_sidebar_text_contents\sz)LineNumbersTest.get_sidebar_text_contentsc	Cs6d�ttttd|d��dg��}|�|��|�dS)N�
r�)�joinrrArB�rangerNrQ)rZn_lines�expectedrrr
�assert_sidebar_n_lines_s"z&LineNumbersTest.assert_sidebar_n_linescCs|�|j�dd�|�Sr;)rNrrP)rrVrrr
�assert_text_equalscsz"LineNumbersTest.assert_text_equalscCs|�d�dS)Nr)rWr3r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

�)rrZrXrWr3r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)rNr-Zis_shown�show_sidebar�hide_sidebarr3r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)NrZ�foobar�foobar
rz
foozfoobar
foo
rDzhello
hello
zfoobar
foohello
hello

r[z
worldzfoobar
foohello
hello

world
�)rrZrXrWrOr3r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)NrZr`raz1.1z1.3zfbar
rzfoo
foo
z
fbarfoo
foo

��2.0z2.endz
fbarfoo


r=zfba
r<rR)rrZrXr>rWrOr3r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)NrrL)r-rErMrr3rr
�	get_width�sz:LineNumbersTest.test_sidebar_text_width.<locals>.get_widthrrZZfooz foo
foo
foo
foo
foo
foo
foo
foo
�	zfoo
�
rD�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�drd�ez50.0 -1czend -1c�1z5.0 -1cr[r<N)rWrNrrZr>)rrgrr3r
�test_sidebar_text_width�sZ














z'LineNumbersTest.test_sidebar_text_widthcCsn|j��|j�dd�|j��|�d�\}}|jjjd||d�|jj��|j��|�	|�
�d�dS)Nr<zone
two
three
four
rD�
<Button-1>�rHrI)rez3.0)r-r]rrZr"r(rJrE�event_generaterNrC)rrHrIr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)	Nrprqcss8|d}t|�D]"}|||||||VqdS)z;linearly interpolate from a to b (inclusive) in equal stepsrN)rU)�a�b�stepsZ	last_step�irrr
�lerpsz+LineNumbersTest.simulate_drag.<locals>.lerprj)rvz<B1-Motion>z<ButtonRelease-1>)	rJr-rErrr"r(�ziprAr)
rZ
start_lineZend_lineZstart_xZstart_yZend_xZend_yrxrHrIrrr
�
simulate_drag�s&
�
�
�zLineNumbersTest.simulate_dragcCsB|j��|j�dd�|j��|�dd�|�|��d�dS)Nr<�one
two
three
four
five
rDr[�rez5.0�	r-r]rrZr"r(rzrNrCr3rrr
�test_drag_selection_downs


z(LineNumbersTest.test_drag_selection_downcCsB|j��|j�dd�|j��|�dd�|�|��d�dS)Nr<r{r[rDr|r}r3r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)
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
riZunitz@0,0z11.0z<MouseWheel>r)rHrIZdelta)r-r]rrZr"r(Zyview_scrollrNrrErr�assertNotEqualr3rrr
�test_scroll*s



�
zLineNumbersTest.test_scrollcCst|j}|jd}d}|�||�|��||_|��|��|�|jd|�||_|��|�|jd|�dS)NZfontZ
TkTextFont)r-rEr�r^r2Zupdate_fontr]rN)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+r,)rNrE)Zcolors�r�rrr
�assert_colors_are_equal\szFLineNumbersTest.test_highlight_colors.<locals>.assert_colors_are_equal)r-�dictr.r^Z
update_colorsr])rZorig_colorsZtest_colorsr�rr�r
�test_highlight_colorsVs

z%LineNumbersTest.test_highlight_colorsN)rrr�classmethodr&r)r:r?rCrJrOrQrWrXrYr\r_rcrfrorsrzr~rr�r�r�rrrr
rs2


D
		r�__main__rD)�	verbosity)�__doc__Zidlelib.sidebarr5�	itertoolsrr6Z
unittest.mockZtest.supportrZtkinterr!Zidlelib.delegatorrZidlelib.percolatorrrZTestCaserr�mainrrrr
�<module>s[