Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/idlelib/idle_test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/idlelib/idle_test/__pycache__/test_sidebar.cpython-310.pyc

o

0�i�g�@sdZddlmZddlZddlmZddlZddlZddlm	Z	m
Z
ddlmZddl
ZddlmZddlmZdd	lmZdd
lmZddlZddlmZmZmZddlmZddlZdd
lmZm Z Gdd�d�Z!Gdd�dej"�Z#Gdd�dej"�Z$e%dkr�ej&dd�dSdS)zTest sidebar, coverage 85%�)�dedentN)�chain)�requires�	swap_attr)�support)�run_in_tk_mainloop)�	Delegator)�
fixwordbreaks)�
Percolator)�
fix_x11_paste�PyShell�PyShellFileList)�fix_scaling)�get_end_linenumber�
get_linenoc@s$eZdZdd�Zdd�Zdd�ZdS)�
Dummy_editwincCs4||_|jj|_t|�|_t�|_|j�|j�dS�N)�textZmaster�
text_framer
�perrZundoZinsertfilter)�selfr�r�E/opt/alt/python310/lib64/python3.10/idlelib/idle_test/test_sidebar.py�__init__s


zDummy_editwin.__init__cCsdSrr)r�name�valuerrr�setvar�zDummy_editwin.setvarcCstt|j�|���Sr)�int�floatr�index)rr rrr�	getlineno"�zDummy_editwin.getlinenoN)�__name__�
__module__�__qualname__rrr!rrrrrsrc@s�eZdZedd��Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Ze�d!�d"d#��Zd$d%�Ze�d!�d&d'��Ze�d!�d(d)��Zd*d+�Zd,d-�Zd.d/�Zd0S)1�LineNumbersTestcCs�td�t��|_|j��t�|j�|_|jjtjtj	dd�|jj
ddd�|jjddd�tj|jddtj
d�|_|jjddtjd	�t|j�|_t�|j�|j_dS)
N�guiT)Zside�fill�expand�)Zweight�P�)�widthZheightZwrap)�row�columnZsticky)r�tk�Tk�root�withdrawZFramerZpackZLEFTZBOTHZrowconfigureZcolumnconfigureZTextZNONErZgridZNSEWr�editwinZ	ScrollbarZvbar��clsrrr�
setUpClass(s

zLineNumbersTest.setUpClasscCs4|jj��|j��|j��|`|`|`|`dSr)r4r�closer2�update�destroyrrr5rrr�
tearDownClass9s

zLineNumbersTest.tearDownClasscs�tj��j��_ddd��_tjjj���fdd�}tj	j
�tjjd|�}|����
|j�d�_�fdd	�}tj	j
�tjjd
|�}|����
|j�dS)N�#abcdef�#123456��
background�
foregroundcs|dkr�jS�||�S)N�
linenumber)�
highlight_cfg�ZthemeZelement��orig_idleConf_GetHighlightrrr�mock_idleconf_GetHighlightFs
z9LineNumbersTest.setUp.<locals>.mock_idleconf_GetHighlight�GetHighlightZTkFixedFontcs�jSr)�
font_override�r2Z
configTypeZsection�rrr�mock_idleconf_GetFontPsz4LineNumbersTest.setUp.<locals>.mock_idleconf_GetFont�GetFont)�idlelib�sidebarZLineNumbersr4rArB�idleConfrG�unittest�mock�patch�object�start�
addCleanup�stoprH)rrF�GetHighlight_patcherrK�GetFont_patcherrrDr�setUp@s$�

�
�zLineNumbersTest.setUpcCs|j�dd�dS�N�1.0�end)r�deleterJrrr�tearDownW�zLineNumbersTest.tearDowncCsttt|j�d���S)N�sel)�tuple�map�strrZ
tag_rangesrJrrr�
get_selectionZ�zLineNumbersTest.get_selectioncCs4|jj�|�d��}|dd}|dd}||fS)Nz.end -1cr�r*)rA�sidebar_text�bbox)r�linerh�x�yrrr�get_line_screen_position]sz(LineNumbersTest.get_line_screen_positioncCs&|jj��d}|�|dtj�dS)N�state���)rArg�config�assertEqualr0ZDISABLED)rrmrrr�assert_state_disabledcsz%LineNumbersTest.assert_state_disabledcCs|jj�dtj�S)Nr[)rArg�getr0ZENDrJrrr�get_sidebar_text_contentsgr_z)LineNumbersTest.get_sidebar_text_contentsc	Cs6d�ttttd|d��dg��}|�|��|�dS)N�
r*�)�joinrrbrc�rangerprs)rZn_lines�expectedrrr�assert_sidebar_n_linesjs"z&LineNumbersTest.assert_sidebar_n_linescCs|�|j�dd�|�SrZ)rprrr)rrxrrr�assert_text_equalsnrez"LineNumbersTest.assert_text_equalscCs|�d�dS�Nr*)ryrJrrr�test_init_emptyqszLineNumbersTest.test_init_emptycCs&|j�dd�|�d�|�d�dS)N�insertzfoo bar
foo bar
foo bar
zfoo bar
foo bar
foo bar

�)rr}rzryrJrrr�test_init_not_emptyts
z#LineNumbersTest.test_init_not_emptycCs�|�|jjd�|j��|�|jjd�|j��|�|jjd�|j��|�|jjd�|j��|�|jjd�|j��|�|jjd�dS)NFT)rprAZis_shown�show_sidebar�hide_sidebarrJrrr�test_toggle_linenumberingys




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
r*z
foozfoobar
foo
rfzhello
hello
zfoobar
foohello
hello

r~z
worldzfoobar
foohello
hello

world
�)rr}rzryrqrJrrr�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}r�r�z1.1z1.3zfbar
r*zfoo
foo
z
fbarfoo
foo

��2.0z2.endz
fbarfoo


r\zfba
r[rt)rr}rzr]ryrqrJrrr�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)Nr-rn)rArgrorrJrr�	get_width�r"z:LineNumbersTest.test_sidebar_text_width.<locals>.get_widthr*r}Zfooz foo
foo
foo
foo
foo
foo
foo
foo
�	zfoo
�
rf�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�dr��ez50.0 -1czend -1c�1z5.0 -1cr~r[N)ryrprr}r])rr�rrJr�test_sidebar_text_width�sZ














z'LineNumbersTest.test_sidebar_text_widthz
test disabledcCsn|j��|j�dd�|j��|�d�\}}|jjjd||d�|jj��|j��|�	|�
�d�dS)Nr[zone
two
three
four
rf�
<Button-1>�rjrk)r�z3.0)rAr�rr}r2r9rlrg�event_generaterprd)rrjrkrrr�test_click_selections


z$LineNumbersTest.test_click_selectionc
	Cs�|�|�\}}|�|�\}}|jjjd||d�|j��dd�}ttt|||dd��tt|||dd���D]\}}	|jjjd||	d�|j��q6|jjjd||d�|j��dS)	Nr�r�css:�|d}t|�D]}|||||||Vq	dS)z;linearly interpolate from a to b (inclusive) in equal stepsr*N)rw)�a�b�stepsZ	last_step�irrr�lerps
� �z+LineNumbersTest.simulate_drag.<locals>.lerpr�)r�z<B1-Motion>z<ButtonRelease-1>)	rlrArgr�r2r9�ziprbr)
rZ
start_lineZend_lineZstart_xZstart_yZend_xZend_yr�rjrkrrr�
simulate_drags"
�
�
�zLineNumbersTest.simulate_dragcC�B|j��|j�dd�|j��|�dd�|�|��d�dS)Nr[�one
two
three
four
five
rfr~�r�z5.0�	rAr�rr}r2r9r�rprdrJrrr�test_drag_selection_down+�


z(LineNumbersTest.test_drag_selection_downcCr�)Nr[r�r~rfr�r�rJrrr�test_drag_selection_up5r�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
r�Zunit�@0,0z11.0�<MouseWheel>r�rjrk�delta)rAr�rr}r2r9Zyview_scrollrpr rgr��assertNotEqualrJrrr�test_scroll?s



�
zLineNumbersTest.test_scrollcCst|j}|jd}d}|�||�|��||_|��|��|�|jd|�||_|��|�|jd|�dS)N�font�
TkTextFont)rArgr�r�rH�update_fontr�rp)r�lnZ	orig_font�	test_fontrrrr�Ts
zLineNumbersTest.test_fontcsx�j�t�j�}ddd�}��fdd�}���|�_������||����||�|�_���||�dS)Nz#222222z#ffff00r>cs0���jd|d����jd|d�dS)Nr?r@)rprg)Zcolors�r�rrr�assert_colors_are_equalqszFLineNumbersTest.test_highlight_colors.<locals>.assert_colors_are_equal)rA�dictrBr��
update_colorsr�)rZorig_colors�test_colorsr�rr�r�test_highlight_colorsks

z%LineNumbersTest.test_highlight_colorsN)r#r$r%�classmethodr7r;rYr^rdrlrqrsryrzr|rr�r�r�r�rP�skipr�r�r�r�r�r�r�rrrrr&&s:


K


	
	r&c@s<eZdZUdZejed<dZeed<e	dd��Z
e	dd��Ze	dd	��Ze	d
d��Z
dd
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Ze�dd��Ze�d d!��Ze�d"d#��Ze�d$d%��Ze�d&d'��Ze�d(d)��Ze�d*d+��Zd,d-�Zd.d/�Z e�d0d1��Z!e�d2d3��Z"e�d4d5��Z#dS)6�ShellSidebarTestNr2�shellcCsXtd�t��|_}|��t|�t|�t|�t|�|_	}|�
�|��dS)Nr')rr0r1r2r3rr	rr
�flist�update_idletasks�
init_shell)r6r2r�rrrr7�szShellSidebarTest.setUpClasscCsF|jdurd|j_|j��d|_d|_|j��|j��d|_dS)NF)r�Z	executingr8r�r2r�r:r5rrrr;�s




zShellSidebarTest.tearDownClasscCs6|j��|_d|j_|j��t|jjd�d|_dS)Nr��end-1cr*)	r�Z
open_shellr�Zpollintervalr2r9rr�n_preface_linesr5rrrr��s
zShellSidebarTest.init_shellcCs8|jjj�|jd�d�d�|jj��|j��dS)Nr*�.0r�)	r�rZbottomr]r��
shell_sidebar�update_sidebarr2r9r5rrr�reset_shell�szShellSidebarTest.reset_shellcCs2d|_tj|jjkrtj|_|jjt_|��dSr)�
_saved_stdout�sys�stdoutr�r�rJrrrrY�s

zShellSidebarTest.setUpcCs|jdur|jt_dSdSr)r�r�r�rJrrrr^�s
�zShellSidebarTest.tearDowncsF|jjj�t��tj��}�fdd�|D��|��}�fdd�|D�S)Ncs$i|]}��|�d��|d��qS)r*r)rh�itemcget��.0r��canvasrr�
<dictcomp>�s��z6ShellSidebarTest.get_sidebar_lines.<locals>.<dictcomp>csg|]}��|d��qSr)rr)r�rk)�texts_by_y_coordsrr�
<listcomp>��z6ShellSidebarTest.get_sidebar_lines.<locals>.<listcomp>)r�r�r��list�findr0�ALL�get_shell_line_y_coords)r�textsZ
line_y_coordsr)r�r�r�get_sidebar_lines�s

�z"ShellSidebarTest.get_sidebar_linescCs.|jj��|�|��t|�d�|�dSr)r�r�r�rpr��len)rZexpected_linesrrr�assert_sidebar_lines_end_with�s
�z.ShellSidebarTest.assert_sidebar_lines_end_withcCs�|jj}g}|�d�}|�dd�ddkr|�|�d��}|�|�}dur>|�|d�|�|�d��}|�|�}dus&|S)Nr��.r*�0z +1line linestartz +1line)r�rr �split�	dlineinfo�append)rrZy_coordsr Zlineinforrrr��s
�z(ShellSidebarTest.get_shell_line_y_coordscs@|jjj�t��tj��}|j�fdd�d��fdd�|D�S)Ncs��|�dSr{�rh)rr�rr�<lambda>�sz<ShellSidebarTest.get_sidebar_line_y_coords.<locals>.<lambda>)�keycsg|]	}��|�d�qS)r*r�r�r�rrr��sz>ShellSidebarTest.get_sidebar_line_y_coords.<locals>.<listcomp>)r�r�r�r�r�r0r��sort)rr�rr�r�get_sidebar_line_y_coords�s
z*ShellSidebarTest.get_sidebar_line_y_coordscCs |�t|���t|����dSr)ZassertLessEqual�setr�r�rJrrr�assert_sidebar_lines_synced�s

�z,ShellSidebarTest.assert_sidebar_lines_syncedcCsH|j}|j}t|�d��D]\}}|dkr|�d�|�d|d�q
dS)Nrtr�<<newline-and-indent>>r}�stdin)r�r�	enumerater�r�r})r�inputr�rZ
line_indexrirrr�do_input�s
�zShellSidebarTest.do_inputcCs4|��}|�|dgt|�ddg�|��dS)Nr*�>>>)r�rpr�r�)rZ
sidebar_linesrrr�test_initial_state�s�z#ShellSidebarTest.test_initial_stateccs$�|�d�dV|�ddg�dS)Nrtr��r�r�rJrrr�test_single_empty_input���
z(ShellSidebarTest.test_single_empty_inputccs$�|�d�dV|�gd��dS)Nz1
�r�Nr�r�rJrrr�test_single_line_statementr�z+ShellSidebarTest.test_single_line_statementccs(�|�td��dV|�gd��dS)N�7            if True:
            print(1)

            �r��...r�r�Nr�)r�rr�rJrrr�test_multi_line_statements�z*ShellSidebarTest.test_multi_line_statementccs,�|�d�dV|�gd��|��dS)Nz�11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
r�)r�r�r�rJrrr�test_single_long_line_wrapss
�
z,ShellSidebarTest.test_single_long_line_wrapsccs��|j}|j}|�d�dV|�gd��|�dd�|�d�dV|�gd��|��|jjd�	�dV|�gd��|��dS)Nzprint("a\nb\nc")
)r�NNNr�r}zinsert -1line linestartz<<squeeze-current-text>>r�r)
r�rr�r��mark_setr�r��squeezerZexpandingbuttonsr))rr�rrrr�test_squeeze_multi_line_output$s�

z/ShellSidebarTest.test_squeeze_multi_line_outputccs�|jj}|��}|�td��dV|�gd��|��}|�||�|�d�dV|�gd��|�d�|�d�dV|�gd��|�d|�	d��|�d	�dV|�d
�dV|�dg�|�d�dV|�dd
g�|�d	�|�d	�dV|�gd��dS)Nz6            if True:
            print(1)
            )r�r�r�z<<interrupt-execution>>)r�r�r�Nr�z<<history-previous>>)r�r�Nr�r}z
insert -2lr�z<<undo>>r�z<<redo>>r�r�)
r�rr�r�rr�r�r�r�r )rrZinitial_sidebar_linesZwith_block_sidebar_linesrrr�test_interrupt_recall_undo_redo8s<�







�z0ShellSidebarTest.test_interrupt_recall_undo_redoc	cs��t�d��?t|jdd��|�dddd�dV|�|��dg�Wd�n1s0wYWd�dSWd�dS1sHwYdS)Nig+r�zx = �1i'rtr�)rZadjust_int_max_str_digitsrr�r�rpr�rJrrr�test_very_long_wrapped_linefs��P�z,ShellSidebarTest.test_very_long_wrapped_linecs��jj�d��fdd�}tjj�tjjd|����	���fdd�}��
|���fdd�}��|��������
|���dS)	Nr�cs�SrrrI)r�rrrKsrz9ShellSidebarTest.test_font.<locals>.mock_idleconf_GetFontrLc�������dSr)rVr�r)rXrNrr�cleanupx�z+ShellSidebarTest.test_font.<locals>.cleanupcsD�j�t��tj��}�fdd�|D�}��t|�d�tt|��S)Nc�h|]}��|d��qS)r��r�r�r�rr�	<setcomp>�r�zGShellSidebarTest.test_font.<locals>.get_sidebar_font.<locals>.<setcomp>r*)	r�r�r�r0r�rpr��next�iter)r�Zfonts�rrNr�r�get_sidebar_font}s
z4ShellSidebarTest.test_font.<locals>.get_sidebar_font)r�r�rPrQrRrSrMrNrOrTrUr�r�rp)rrKr�rr)rXrrNr�rr�ns
�
zShellSidebarTest.test_fontcs��jj�ddd��tjjj���fdd�}tjj�	tjjd|����
���fdd�}��|���fd	d
�}��|�����
���|���dS)Nr<r=r>cs|dvr�S�||�S)N)rAZconsolerrC)rEr�rrrF�s
zJShellSidebarTest.test_highlight_colors.<locals>.mock_idleconf_GetHighlightrGcr�r)rVr�r)rWrNrrr��r�z7ShellSidebarTest.test_highlight_colors.<locals>.cleanupcsX�j�t��tj��}�fdd�|D�}��t|�d�tt|��}��	d�}||d�S)Ncr�)r(r�r�r�rrr��r�zUShellSidebarTest.test_highlight_colors.<locals>.get_sidebar_colors.<locals>.<setcomp>r*r?r>)
r�r�r�r0r�rpr�rrZcget)r�ZfgsZfgZbgrr�r�get_sidebar_colors�s

zBShellSidebarTest.test_highlight_colors.<locals>.get_sidebar_colors)r�r�rMrNrOrGrPrQrRrSrTrUr�r�rp)rrFr�rr)rWrErrNr�rr��s

�
	z&ShellSidebarTest.test_highlight_colorsccs��|jj}|jj}|�d�dV|�t|d�d�t|�}|�|�|�	|�d����t
jdkr3dnd}|jj
dd	d	|d
�dV|�|�|�	|�d����|jj
dd	d	d�dV|�|�|�	|�d����dS)
Nzox = """



































































































"""
r�r*r��darwinrn�xr�rr�z
<Button-5>r�)r�r�rr�Z
assertGreaterrrZassertIsNotNoner�r r��platformr�r�ZassertIsNone)rrNrZlast_linenor�rrr�test_mousewheel�s�
 z ShellSidebarTest.test_mousewheelccs��|jj}|jj}t|�}|�td��dV|�d|�d�d�|�dd�}|�|�	d��|�
d|�|�d	�|�|j
�|��}|�||�dS)
Nr�r`r�r��	sel.first�sel.lastz	if True:
z
1
z<<copy>>)r�r�rrr�r�tag_addrr�
assertTrue�
startswithZassertInr�rU�clipboard_clear�
clipboard_getrp)rrNr�
first_line�
selected_text�copied_textrrr�	test_copy�s�
zShellSidebarTest.test_copyc
cs��|jj}|jj}t|�}|�td��dV|�d|�d�d�|�dd�}|�|�	d��|�dd�}|�
d	�}|��d
gdgt|�ddg}d	�
d
d�t||dd�D��d	}|�d�|�|j�|��}	|�|	|�dS)Nz;            if True:
                print(1)

            r`z.3r�r	r
zTrue:
zsel.first linestartrtr�r�rfcss,�|]\}}|dur|n|d|VqdS)N� r)r��promptrirrr�	<genexpr>�s
��
�z:ShellSidebarTest.test_copy_with_prompts.<locals>.<genexpr>T)�strictz<<copy-with-prompts>>)r�r�rrr�rrrrrr
r��popr�rvr�r�rUrrrp)
rrNrrrZselected_lines_textZselected_linesZexpected_promptsZselected_text_with_promptsrrrr�test_copy_with_prompts�s4�
�
���
z'ShellSidebarTest.test_copy_with_prompts)$r#r$r%r2r0r1�__annotations__r�rr�r7r;r�r�rYr^r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�rrrrrrrr��sT












-
 

r��__main__rf)�	verbosity)'�__doc__�textwraprr��	itertoolsrrPZ
unittest.mockZtest.supportrr�testrZtkinterr0Z'idlelib.idle_test.tkinter_testing_utilsrZidlelib.delegatorrZidlelib.editorr	Zidlelib.percolatorr
Zidlelib.pyshellrMrrr
Zidlelib.runrZidlelib.sidebarrrrZTestCaser&r�r#�mainrrrr�<module>s8fw�