HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/idlelib/idle_test/__pycache__/test_squeezer.cpython-310.opt-2.pyc
o

�i�L�@s�	ddlmZddlmZmZddlZddlmZmZm	Z	m
Z
mZddlm
Z
ddlmZddlmZddlmZmZmZdd	lmZdd
lmZddlmZe
jZdd
�ZGdd�dej�ZGdd�dej�Z Gdd�dej�Z!e"dkr}ej#dd�dSdS)�)�dedent)�Text�TkN)�Mock�NonCallableMagicMock�patch�sentinel�ANY)�requires)�idleConf)�
Percolator)�count_lines_with_wrapping�ExpandingButton�Squeezer)�macosx)�	view_text)�Hovertipcs2	td�t������fdd�}|�|��S)N�guics������dS�N)Zupdate_idletasksZdestroy���rootr�</usr/local/lib/python3.10/idlelib/idle_test/test_squeezer.py�cleanup_rootsz&get_test_tk_root.<locals>.cleanup_root)r
rZwithdraw�
addCleanup)Z
test_instancerrrr�get_test_tk_roots
rc@sNeZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�CountLinesTestcCs|�|t||��Sr��assertEqualr
)�self�expected�text�	linewidthrrr�check$s�zCountLinesTest.checkcC�	|�td�d�dS)N�rr�rrrr�test_count_empty*�zCountLinesTest.test_count_emptycCr$)Nz
text�rr&rrr�!test_count_begins_with_empty_line.r(z0CountLinesTest.test_count_begins_with_empty_linecCr$)Nztext
�rr&rrr�test_count_ends_with_empty_line2r(z.CountLinesTest.test_count_ends_with_empty_linecCr$)Nz1
2
3
�rr&rrr�test_count_several_lines6r(z'CountLinesTest.test_count_several_linescCs4|jdddd�|jdddd�|jdddd�dS)	Nr+�
�P�r r!r"r)�

�
z










�r#r&rrr�test_empty_lines:szCountLinesTest.test_empty_linescCs$|jdddd�|jdddd�dS)Nr-Z�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar0r1z�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
r4r&rrr�test_long_line?szCountLinesTest.test_long_linecCs`td�}|jd|dd�|jd|ddd�|jd|dd�|jd|d	d�|jd
|dd�dS)Nz�            13 characters
            43 is the number of characters on this line

            7 chars
            13 characters�r0r1r/��(���r3)rr#)rr!rrr�$test_several_lines_different_lengthsCsz3CountLinesTest.test_several_lines_different_lengthsN)�__name__�
__module__�__qualname__r#r'r*r,r.r5r6r=rrrrr"src@s�eZdZ	d!dd�Zd"dd�Zd"dd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd �ZdS)#�SqueezerTestFcCs<	t�}d|_|rt|�|_|j|jd�}||_|j_|S)Nr0r)r�widthrr�make_text_widgetr!�perZbottom)r�with_text_widget�editwin�text_widgetrrr�make_mock_editor_windowSs
z$SqueezerTest.make_mock_editor_windowNcCs	|dur	|��}t|�}|Sr)rHr)rZ
editor_window�squeezerrrr�make_squeezer_instance_s
z#SqueezerTest.make_squeezer_instancecCs0|durt|�}t|�}d|d<|�dd�|S)N)ZCourierr3ZfontZiomark�1.0)rr�mark_set)rrrGrrrrCfszSqueezerTest.make_text_widgetcCs6t�|||�}t�||||�|�tj||||�dSr)rZ	GetOptionZ	SetOptionr)rZ
configType�section�option�valueZprev_valrrr� set_idleconf_option_with_cleanupns
�z-SqueezerTest.set_idleconf_option_with_cleanupc
Cs�	|��}|�|�}dD]A\}}}|j|||d��,t|�}t�|d|��|�|�|�|�Wd�n1s9wYWd�n1sHwYqdS)N))z'\n'r0r+)z'\n' * 3r0r-)z'a' * 40 + '\n'r0r+)z'a' * 80 + '\n'r0r+)z'a' * 200 + '\n'r0r-)�'aa\t' * 20r0r))z'aa\t' * 21r0r-)rQr9�)�	text_code�
line_widthr rB)rHrJZsubTest�evalr�objectr�count_lines)rrFrIrSrTr r!rrr�test_count_linests 

������zSqueezerTest.test_count_linescCs4	|��}|�|�}|�|j|�|�|jg�dSr)rHrJZassertIsrFr�expandingbuttons)rrFrIrrr�	test_init�s

zSqueezerTest.test_initcCs�	|��}dddddfD]0}ttd�|_}|�|�}|�|j�|d�t�|�|jd�|�|d�|�t	|j
�d	�q
dS)
Nr%�TEXT�	LONG TEXT���LMANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
MANY_LINES
��return_valuerr+r)rHr�SENTINEL_VALUE�writerJrrF�
call_count�assert_called_with�lenrY�rrFr!�
orig_writerIrrr�test_write_no_tags�s
�zSqueezerTest.test_write_no_tagscCs~	dddddfD]3}|��}t|j_|j}|�|�}|�|j�|d�t�|�|jd�|�|d�|�t	|j
�d�q	dS)	Nr%r[r\r]r^�stderrr+r)rHrarbr`rJrrFrcrdrerY)rr!rFrgrIrrr�test_write_not_stdout�s
��z"SqueezerTest.test_write_not_stdoutcCs�	td�|��}dD]3}ttd�|_}|�|�}d|_|�|j�|d�t�|�|j	d�|�
|d�|�t|j�d�qdd	d
fD]-}ttd�|_}|�|�}d|_|�|j�|d�d�|�|j	d�|�t|j�d�qEdS)Nr)r%r[r_�2�stdoutr+rr\r]r^)
r
rHrrarbrJ�auto_squeeze_min_linesrrFrcrdrerYrfrrr�test_write_stdout�s*
�
�zSqueezerTest.test_write_stdoutcCsf	|jdd�}|j}|�|�}d|_tdd�|_|�dd�|�|�dd	�d
�|�t	|j
�d�dS)NT�rEr7r8r_zTEXT
TEXT
TEXT
TEXT
TEXT
TEXT
rlrK�endr/r+)rHr!rJrmrrWrbr�getrerY)rrFrGrIrrr�test_auto_squeeze�s
zSqueezerTest.test_auto_squeezecCs�	dD]w}|jdd�}|j}|�|�}tdd�|_|�dd|�|�dd�|�|�dd	�d
�|�t	|j
�d�|��}|�|d�|�|�dd	�d
�|�t	|j
�d�|�|j
djd�|j
d�
�|�|�dd	�d
�|�t	|j
�d�qdS)N)rlriTror8r_rK�
SOME
TEXT
�insertrp�SOME
TEXT

r�breakr2r+z	SOME
TEXT)rHr!rJrrWrtrLrrqrerY�squeeze_current_text�s�expand)rZtag_namerFrGrI�retvalrrr�test_squeeze_current_text�s&
�z&SqueezerTest.test_squeeze_current_textcCs�	|jdd�}|j}|�|�}tdd�|_|�ddd�|�dd�|�|�dd	�d
�|�t	|j
�d�|��}|�|d�|�|�dd	�d
�|�t	|j
�d�dS)
NTror8r_rKrsZTAGrtrprurrv)rHr!rJrrWrtrLrrqrerYrw�rrFrGrIrzrrr�)test_squeeze_current_text_no_allowed_tags�s
z6SqueezerTest.test_squeeze_current_text_no_allowed_tagscCs�	|jdd�}|j}|�|�}tdd�|_|�ddd�|�dd�|��|�t	|j
�d	�|�dd
d�|�dd�|��}|�|d�|�|�dd�d
�|�t	|j
�d�|�|�
|j
dd|j
d	��dS)NTror8r_rKrsrlrtr+zMORE
STUFF
rvrpz


r)r�<)rHr!rJrrWrtrLrwrrerYrq�
assertTrueZcomparer|rrr�/test_squeeze_text_before_existing_squeezed_texts(

�z<SqueezerTest.test_squeeze_text_before_existing_squeezed_textcCsT	|jdd�}|�|�}|j}|d}|�dddt|��t��|�|j|�dS)NTror3�mainZPyShellzauto-squeeze-min-lines)rHrJrmrP�strr�reloadr)rrFrIZorig_auto_squeeze_min_linesZnew_auto_squeeze_min_linesrrr�test_reloads
��zSqueezerTest.test_reloadcCs	t��dSr)rr�r&rrr�!test_reload_no_squeezer_instances,sz.SqueezerTest.test_reload_no_squeezer_instances)Fr)r>r?r@rHrJrCrPrXrZrhrjrnrrr{r}r�r�r�rrrrrAQs"


rAc@sReZdZ	dd�Zeded�dd��Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�ZdS)�ExpandingButtonTestcCsF	t|�}t�}t|�|j_t|jj�|j_|�|jjj�d|_	|S)Nrk)
rrrrFr!rrDr�closerm)rrrIrrr�make_mock_squeezer5sz&ExpandingButtonTest.make_mock_squeezerzidlelib.squeezer.Hovertip�ZautospeccCs�	|��}|jj}tddd|�}|�|jd�|�|j|�|�d|�d�v�|�|�	dd�d�|�
d	|���d
t�
�rAdnd}|�
||���|�|jd
�|j|ttd�|jdd
}|�
d|���dS)Nr[�TAGSrkz50 linesr!rKrpr/z<Double-Button-1>z<Button-%s>�2�3r+)Zhover_delayrzright-click)r�rFr!rrrxZmasterrZcgetrqZassertIn�bindrZisAquaTkrcrdr	�	call_args�lower)rZMockHovertiprIrG�expandingbuttonZright_button_codeZtooltip_textrrrrZAszExpandingButtonTest.test_initcCs�	|��}tddd|�}|jj}|jd|d�|jt�d�}|�|d�|�|�dd�d�|�	d	�}|�|�d|�d�|�|�
dd�d|f�|�|jjj
d
�|jj�|�dS)Nr[r�rkrK�Zwindow��eventrpzTEXT
�end-1cr+)r�rrFr!�
window_createryrrrq�indexZ
tag_nextrangerY�removercrd)rrIr�rGrzZtext_end_indexrrr�test_expand^s
�zExpandingButtonTest.test_expandcCs	|��}dd}t|dd|�}|��|�|j�|j}|jd|d�td��}d|j_	d|j
_	|jt�d	�}Wd�n1sBwY|�
|d
�|�
|j�dd�d�td��}d
|j_	d
|j
_	|jt�d	�}Wd�n1svwY|�
|d�|�
|j�dd�|�dS)N�ai��r�rkrKr�zidlelib.squeezer.messageboxFr�rvr�r%T)r�rZset_is_dangerousrZis_dangerousr!r�rZaskokcancelr`Zaskyesnoryrrrq)rrIr!r�rGZmock_msgboxrzrrr�test_expand_dangerous_oupputys,
�
�z0ExpandingButtonTest.test_expand_dangerous_oupputcCsr	|��}tddd|�}t�|_t�|_|jt�d�}|�|d�|�|jjd�|�|jjd�|j�d�dS)Nr[r�rkr�r+)	r�rrZclipboard_clearZclipboard_append�copyrrcrd)rrIr�rzrrr�	test_copy�szExpandingButtonTest.test_copycCs�	|��}tddd|�}t�|_tdtd��"}|jt�d�|�|jd�|�|j	dd	d�Wd�dS1s;wYdS)
Nr[r�rkzidlelib.squeezer.view_textr�r�r+rr))
r�rrZ
selection_ownrr�viewrrcr�)rrIr�Zmock_view_textrrr�	test_view�s"�zExpandingButtonTest.test_viewcCs�	|��}tddd|�}td��9}t�}||_t�}d|_d|_|j|d�|�|j	j
t|j��|jD]^}}|j	j
|td�q4Wd�dS1sLwYdS)Nr[r�rkztkinter.Menur3r�)�labelZcommand)r�rrrr`�x�yZcontext_menu_eventrZadd_commandrcreZrmenu_specsZassert_any_callr	)rrIr�Z	mock_MenuZ	mock_menuZ
mock_eventr��datarrr�
test_rmenu�s"

��"�zExpandingButtonTest.test_rmenuN)r>r?r@r�rrrZr�r�r�r�r�rrrrr�1s

#r��__main__r))�	verbosity)$�textwrapr�tkinterrrZunittestZ
unittest.mockrrrrr	Ztest.supportr
Zidlelib.configrZidlelib.percolatorrZidlelib.squeezerr
rrZidlelibrZidlelib.textviewrZidlelib.tooltiprrarZTestCaserrAr�r>r�rrrr�<module>s,/a"�