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_configdialog.cpython-310.opt-2.pyc
o

�i0��@s�	ddlmZddlmZed�ddlZddlmZddlmZddlm	Z	m
Z
mZmZm
Z
mZddlmZdd	lmZmZmZejZe�d
�e�d
�e�d
�e�d
�d�ZdadaedZed
ZedZedZdd�Zdd�ZGdd�dej �Z!Gdd�dej �Z"Gdd�dej �Z#Gdd�dej �Z$Gdd�dej �Z%Gdd�dej �Z&Gd d!�d!ej �Z'Gd"d#�d#ej �Z(Gd$d%�d%ej �Z)Gd&d'�d'ej �Z*e+d(kr�ej,d)d*�dSdS)+�)�configdialog)�requiresZguiN)�mock)�Func)�Tk�	StringVar�IntVar�
BooleanVar�DISABLED�NORMAL)�config)�idleConf�changes�tracers�)�main�	highlight�keys�
extensionsrrrrcCs tt_t�atjtddd�adS)NZTestT)Z_utest)�testcfgr
�userCfgr�rootrZConfigDialog�dialog�rr�@/usr/local/lib/python3.10/idlelib/idle_test/test_configdialog.py�setUpModule"srcCs:tt_t��t��t��t��t�	�daa
dS�N)�usercfgr
rr�detach�clearrr�update_idletasks�destroyrrrrr�tearDownModule*sr"c@seZdZdd�Zdd�ZdS)�ConfigDialogTestcC�dSrr��selfrrr�test_deactivate_current_config7�z/ConfigDialogTest.test_deactivate_current_configcCr$rrr%rrr�activate_config_changes:r(z(ConfigDialogTest.activate_config_changesN)�__name__�
__module__�__qualname__r'r)rrrrr#5sr#c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
ButtonTestcCsJt}t��}|_t��}|_|jd��|��|��|`|`dS)NZOk)rr�Mock�applyr!�buttons�invoke�assert_called_once)r&�dr/r!rrr�
test_click_ok@szButtonTest.test_click_okcCsht}t��}|_t��}|j_t��}|_|jd��|�	�|�	�|�	�|j`|`|`dS)NZApply)
rrr.�deactivate_current_config�extpageZsave_all_changed_extensionsr)r0r1r2)r&r3Z
deactivateZsave_ext�activaterrr�test_click_applyIszButtonTest.test_click_applycCsNt}t�|_dtdd<|jd��|�tdi�|�|jjd�|`dS)N�rZ	somethingZCancel)rrr!rr0r1�assertEqual�called�r&r3rrr�test_click_cancelUszButtonTest.test_click_cancelcCs�tj�tj�tjjtdtd��}tj	d�
�|jd|jd}}Wd�n1s-wY|�|d�|�
|�d�oC|�d��dS)	NZ	view_text)Znew_callableZHelp�title�contentszHelp for IDLE preferenceszWhen you clickza different name.
)r�note�select�keyspagerZpatch�objectrrr0r1�kwdsr:�
assertTrue�
startswith�endswith)r&�viewr>r?rrr�test_click_help^s
���zButtonTest.test_click_helpN)r*r+r,r4r8r=rIrrrrr->s
		r-c@�feZdZ	edd��Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dS)�FontPageTestcCs,tj}|_tj�|�t�|_|��dSr)rZfontpage�pager@rAr�set_samples�update��clsrLrrr�
setUpClassp�zFontPageTest.setUpClasscCs
|j`dSr)rLrM�rPrrr�
tearDownClassws
zFontPageTest.tearDownClasscC�t��dSr�rrr%rrr�setUp{�zFontPageTest.setUpcCs�t��|j}|j�d�|j�d�|j�d�d|j_|�	�|�
|j��d�|�
|j��d�|�|j���|�
|jjd�t��dS)NZFake�1Trr9)rrrL�	font_name�set�	font_size�	font_boldrMr;Z
load_font_cfg�assertNotEqual�get�assertFalser:�attachr<rrr�test_load_font_cfg~szFontPageTest.test_load_font_cfgcCs�|j}|j��dkr|�d�|j}|�d�|j�d�}|��|��|�d�|�d�|�d�}|�	||�|�
|j��|���|��|��|�d�|�d�|�d�}|�
||�|�
|j��|���dS)	N��need at least 2 fontsrZactivez
<Key-Down>z<KeyRelease-Down>z<Key-Up>z<KeyRelease-Up>)rL�fontlist�size�skipTestr7r_�focus_forcerN�event_generater^�assertInrZ�lowerr:)r&r3re�fontZ	down_fontZup_fontrrr�test_fontlist_key�s(







zFontPageTest.test_fontlist_keyc	Cs�|j}|j��dkr|�d�|j}|�d�|��|�d�|��|�d�\}}}}||d7}||d7}|j	d||d�|j	d||d�|�
d�}|�
d�}|�||�|�|j
�
�|���dS)	Nrcrdrr9�
<Button-1>��x�y�<ButtonRelease-1>�anchor)rLrerfrgr7rh�seerN�bboxrir_r:rjrZrk)	r&r3rerprq�dx�dyZfont1Zselect_fontrrr�test_fontlist_mouse�s"




z FontPageTest.test_fontlist_mousecCs*|j}|jj�d�|�|j��d�dS)N�(�40)rLZsizelist�variabler[r:r\r_r<rrr�
test_sizelist�szFontPageTest.test_sizelistcCsJ|j}|j�d�|j��|�|j���|j��|�|j���dS)NF)rLr]r[Zbold_toggler1rEr_r`r<rrr�test_bold_toggle�s

zFontPageTest.test_bold_togglecCst�tdd�}t|d�}|ddk}|j}|j�|�|j�|�d|j_	|j
�d�dd|t|�d�i}|�t|�|�|jj	d�t
��|j�d	�ddd	t|�d�i}|�t|�|�|jj	d�t
��|j�|�ddd	t|�d�i}|�t|�|�|jj	d
�dS)Nr�EditorWindowr9rc�boldrz	Test Font)rlz	font-sizez	font-boldZ20�)r
ZGetFontr�strrLr\r[r]rMr;rZr:�mainpagerr)r&Zdefault_fontZdefault_sizeZdefault_boldr3�expectedrrr�
test_font_set�s<���zFontPageTest.test_font_setcCs�|j}|`|j|jf}ii|_|_|j�d�|j�d�|j�d�ddi}|��|�|j|jko9|kn�|\|_|_t	�|_dS)N�test�5r9rl)r�r�r)
rLrMZfont_sample�highlight_samplerZr[r\r]rEr)r&r3Zorig_samplesr�rrr�test_set_samples�s"zFontPageTest.test_set_samplesN)r*r+r,�classmethodrQrTrWrbrmrxr|r}r�r�rrrrrKis

	$rKc@s�eZdZ	edd��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�HighPageTestcCsDtj}|_tj�|�t�|_t�|_t�|_t�|_	|�
�dSr)r�highpagerLr@rAr�set_theme_type�paint_theme_sample�set_highlight_target�set_color_samplerNrOrrrrQszHighPageTest.setUpClasscCs|j}|`|`|`|`dSr)rLr�r�r�r�)rPr3rrrrTszHighPageTest.tearDownClasscCsT|j}t�dd�D]
}tjd�|�q	t��d|j_d|j	_d|j
_d|j_dS)N�userrr)rLr
�GetSectionListr�remove_sectionrrr�r;r�r�r��r&r3�sectionrrrrWszHighPageTest.setUpcCs�t��|j}|j}tjdd�t_|��|�	|j
���||j��d�||j
��d�||j��d�||jjd�||jjd�||jjd�t�dddd	�t�dd
dd�|��||j��d�||j
��d�||jjd
�||jjd
�||jjd
�tjd
d�t_t�dddd�|��|�|j
���||j��d�||j
��d
�||jjd�||jjd�||jjd�t`t��dS)N�IDLE Classic�Zreturn_value�- no custom themes -��disabledr9r�test1�option�value�test2�option2�value2rcr�Theme�default�0r�)rrrLr:rr.r
ZCurrentThemeZload_theme_cfgrE�theme_sourcer_�builtin_name�custom_name�custom_theme_on�stater�r;r�r��	SetOptionr`ra�r&r3�eqrrr�test_load_theme_cfg*s>z HighPageTest.test_load_theme_cfgcC�|j}|j}t�|_t�|_|j��|tdddii�||jjd�||jjd�t	�
�|j�d�|j��|�tdddii�||jjd�||jjd�|`|`dS)Nr�r��Truer9r�z	!disabled�False)
r:rLr�var_changed_builtin_name�var_changed_custom_nameZbuiltin_theme_onr1r�r;rrr�r��r&r�r3rrr�test_theme_sourceS�

zHighPageTest.test_theme_sourcecCs|j}|j}gd�}t�dddd�|j�|d�|tdddd�i�||jd	d
�||jj	d�t
��t�dddd�|j�|d�|tdd
dii�||jd	d
�||jj	d�t
��|j�|d�|tdddd�i�||jd	d�||jj	d�dS)N)r��	IDLE Dark�IDLE Newrr��name�spamr�r��r��name2�textzNew theme, see Helpr9r�r�rcrr�)r:rLr
r��builtinlist�SetMenur�Z
theme_messager�r;rr�r&r�r3Z	item_listrrr�test_builtin_namehs*
�zHighPageTest.test_builtin_namecC�r|j}|j�gd�|�dt�|�|jjd�t�	�|j�gd�d�|�tdddii�|�|jjd�dS)Nr�r�r��a�b�cr�r�r9)
rL�
customlistr��assertNotInr�r:r�r;rrr<rrr�test_custom_name��zHighPageTest.test_custom_namecCs2|j}t�|_|j�d�|�|jjd�|`dS)NZgreenr9)rLrZon_new_color_set�colorr[r:r;r<rrr�
test_color�s
zHighPageTest.test_colorcCs@|j}|j}|j�gd�d�||j��d�||jjd�dS)Nr�r�r9)r:rLZ
targetlistr��highlight_targetr_r�r;r�rrr� test_highlight_target_list_mouse�s
z-HighPageTest.test_highlight_target_list_mousecs�|j}|j�i}d}�j������d�����fdd�}�fdd�}||����D](}��|�ddd�D]}|d7}||�|�j�	�||�|�j
j|�q:q.dS)	Nr��?cs$�j��D]
\}}|||d<qdS�Nr)Ztheme_elements�items)�elem�element�tag)r3rr�tag_to_element�s�zEHighPageTest.test_highlight_target_text_mouse.<locals>.tag_to_elementcsn��|�\}}}}||d7}||d7}�jdddd��jd||d��jd||d��jd||d�dS)Nrc�<Enter>rro�<Motion>�<ButtonPress-1>rr)ruri)�startrprqrvrw)�hsrr�click_it�sz?HighPageTest.test_highlight_target_text_mouse.<locals>.click_itrcr9)r:rLr�rhrtr Z	tag_names�
tag_rangesr�r_r�r;)r&r�r��countr�r�r��start_indexr)r3r�r� test_highlight_target_text_mouse�s&

��z-HighPageTest.test_highlight_target_text_mousecCs�|j}|j}|j}|��|�d�|��|jdddd�|jdddd�td�D]}|jdddd�|jdddd�q*||�d	�d
�dS)Nr�r�rror�rcr�rr�selr)	r:rLr�rhrtr ri�ranger�)r&r�r3r��_rrr�"test_highlight_sample_double_click�s
z/HighPageTest.test_highlight_sample_double_clickc	Cs�|j}|j}|j}|��|�d�|��|�d�\}}}}}|�d�|�d�|jd||d�|jd||d�|jd||d�|jd	||d�||�d
�d�dS)Nr�z1.0z<Leave>r�r�ror�z<B1-Motion>rrr�r)	r:rLr�rhrtr Z	dlineinforir�)	r&r�r3r�rprqrvrw�offsetrrr�test_highlight_sample_b1_motion�s


z,HighPageTest.test_highlight_sample_b1_motioncC�|j}|j}|`|j�d�|��||jdt�||jdt�||j	�
�d�|j�d�|��||jdt�||j�
�d�||jdt�||j	�
�d�t�|_dS�NTr�r�F��selectedr)
r:rLr�r�r[r�rr�r
�button_delete_customr�r�rr�rrr�test_set_theme_type��z HighPageTest.test_set_theme_typecCsX|j}|j}tjj}t�}tj_t�}|_|j�d�|j	�d�d|_
|j��||j	�
�d�d|j�|jdd�f|_
|j��||j	�
�d�d|_
|j	�d�|j�d�d|_
|j��||jd	�||j	�
�d�d
|_
|j��||j�
�|j
�||j	�
�d�|j	�d�|j�d�|j��||j	�
�d�|`|tj_dS)
NzEditor Breakpointz#ffffff)NNr�style�
background))g��k@�r��#de0000Tr9zMy New Themer�F)r:rLrZcolorchooserZaskcolorr�get_new_theme_namer�r[r��resultZbutton_set_colorr1r_r��lookup�frame_color_setr�r;r�)r&r�r3Zorig_chooserZchooser�gntnrrr�test_get_colors<




zHighPageTest.test_get_colorcCs�|j}d}|j�d�|j�d�|j�d�|j�|�|�|j�|j	dd�|�|�|j
�dd�|�|�tdd	|ii�dS)
Nz#3f7cae�Python�
Selected TextTr�r��hilite�
foregroundzhilite-foreground)
rLr�r[r��fg_bg_toggler�r:r�r�r�r��tag_cgetr�)r&r3r�rrr�test_on_new_color_set6s
�z"HighPageTest.test_on_new_color_setcC�>tj}tdd�}t_|j}d|_|�|�d�d�|t_dS)NT�Zreturn_selfz	New Themer)r�SectionNamerrLr�r:r��r&Zorig_sectionnameZsnr3rrr�test_get_new_theme_nameC�
z$HighPageTest.test_get_new_theme_namecCs�|j}t�}|_|j�d�d|_|j��|�|jt	j
d�d|_d|_|�|jt	j
d�|j��|�|jt	j
d�|`dS)NTrrzmy new themer)
rLrr�r�r[r�Zbutton_save_customr1r�r
rr;rj)r&r3r�rrr�test_save_as_new_themeMs

z#HighPageTest.test_save_as_new_themecCs(|j}|j}|j�d�|j�d�d}d}|�|tj�|�|�|t�	dd�|g�|t�
dd�t�
d|��||j��|�|�
|j���||jjd�t�d|d	d
�|�|tj�|�|�|t�	dd�||g�|�t�
d|�t�
d|��t�d|d	d
�|t�
d|�t�
d|��dS)NTr�zmy new custom themezmy second custom themer�rr�r9zhit-background�yellow)r:rLr�r[r�r�r
r�
create_newr�ZGetThemeDictr�r_r`r�r;r�
add_optionr^r��r&r�r3Z	first_newZ
second_newrrr�test_create_new_and_save_new`s4

�

�
�z)HighPageTest.test_create_new_and_save_newcCs�|j}|j}|`|j�d�||j��d�||j��d�|�|j	�||j
jd�|j�d�||j��d�||j��d�|�|j	�||j
jd�t�|_dS)	NZCursor)r�r�r�r9�Commentr�rrc)
r:rLr�r�r[�fg_onr��bg_onrEr�r�r;rr�rrr�test_set_highlight_target�sz&HighPageTest.test_set_highlight_targetcCs@|j}|j}|j��|�|jd�|j��|�|jd�dS)Nr9rc)rLr�r	r1r:r;r
)r&r3Zscsrrr�test_set_color_sample_binding�s

z*HighPageTest.test_set_color_sample_bindingcCs\|j}|`|j�d�|j�d�|��|�|j�|jdd�|j	�
dd��t�|_dS)Nr�Tr�r�r�r�)rLr�r�r[r�r:r�r�r�r�r�rr<rrr�test_set_color_sample�s�z"HighPageTest.test_set_color_samplec	Cs�|j}|j}|`|jj}tj}|j�d�|j	�d�d}|�
|�d|j_|��ddd�}|�
�D]
\}}|�|d|�|�q3||jjd	�|�
�D]\}}t�d
|d||�qL|��|�
�D]\}}||d|�|�qc||jjd�t�|_dS)
NTr�z	IDLE TestrZbluer)r�r�Zconsoler9rzconsole-rc)r:rLr�r�r�r
ZGetHighlightr�r[r�rr�r;r�r^rrr)	r&r�rLZhs_tagZghZthemeZnew_console�keyr�rrr�test_paint_theme_sample�s0
�z$HighPageTest.test_paint_theme_samplecC�2|j}|j}|j�d�t�}|_t�t_t�t_d}t	j
d�|dd�ddit|<d}t	j
d�|dd�dd	it|<|j
�d�|j
��|j�|�d
|_|j��||jd�|t|ddi�|t	�dd�||g�|tjjd
�|tjjd
�||jjd
�d|_|j��||jd�|�|t�|t	�dd�|g�||j
��d�||j��|�|tjjd�|tjjd�||jjd�|j�|�d|_|j��||jd�|�|t�|t	�dd�g�||j
��d�||j��d�|tjjd�|tjjd�||jjd�t`t`|`dS)Nr�z
spam themerr�r�r�r�zother themer�Fr9r�rTrcrr�r�r�)r:rLr�r�r�askyesnorr5r)r
rr�r�r�r1r�r[r�r;r�r�r�r_)r&r�r3�yesnoZ
theme_nameZtheme_name2rrr�test_delete_custom��\



zHighPageTest.test_delete_customN)r*r+r,r�rQrTrWr�r�r�r�r�r�r�r�r�r�r�r�rrrrrr
rrrrrrr�s6
	
)	%/

 
 r�c@s�eZdZ	edd��Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!S)"�KeysPageTestcCs,tj}|_tj�|�t�|_t�|_dSr)rrBrLr@rAr�
set_keys_type�load_keys_listrOrrrrQ
rRzKeysPageTest.setUpClasscCs|j}|`|`dSr)rLrrrOrrrrTszKeysPageTest.tearDownClasscCsD|j}t�dd�D]
}tjd�|�q	t��d|j_d|j	_dS)Nr�rr)
rLr
r�rr�rrrr;rr�rrrrWszKeysPageTest.setUpcCs�t��|j}|j}tjdd�t_|��|�	|j
���||j��d�||j
��d�||j��d�||jjd�||jjd�||jjd�t�ddd	d
�t�dddd
�|��||j��d�||j
��d�||jjd�||jjd�||jjd�tjdd�t_tjdd�t_t�dddd�|��|�|j
���||j��d�||j
��d�||jjd�||jjd�||jjd�t`t`t��dS)N�IDLE Classic OSXr��- no custom keys -r�r9�rrr�r�r�r�r�r�rczIDLE Modern Unixr�Keysr�r�r�)r�)rrrLr:rr.r
ZCurrentKeysZload_key_cfgrE�
keyset_sourcer_r�r��custom_keyset_onr�rr;r�argsr�Zdefault_keysr`rar�rrr�test_load_key_cfg#s@zKeysPageTest.test_load_key_cfgcCr�)Nrr�r�r9rr�r�)
r:rLrr�r�Zbuiltin_keyset_onr1r�r;rrrr�r�rrr�test_keyset_sourceMr�zKeysPageTest.test_keyset_sourcecCs0|j}|j}tjd�d�gd�}|j�|d�|tdddd�i�||jdd�||j	j
d	�||j	jd
�t�
�t�dddd�|j�|d�|tdd
dii�||jdd�||j	j
d�||j	jd
�t�
�|j�|d�|tdddd�i�||jdd�||j	j
d�||j	jd�dS)Nrr)�IDLE Classic Windowsr�IDLE Modern UNIXr"r!r�r�zNew key set, see Helpr9)r"r�zIDLE Classic Unixr�rcrrr�r)r:rLr
rr�r�r�r�Zkeys_messagerr;rrrr�r�rrrr�bs0
�zKeysPageTest.test_builtin_namecCr�)Nrrrr�r�r�r9)
rLr�r�r�r�r:rr;rrr<rrrr��r�zKeysPageTest.test_custom_namecCs�t�dddd�|j}|j�d�|j�dd�|j�dd�|j�d	d
�|j�d�|j�	d�|j
�d�|�tdddii�|j�d	�|j�	d	�|j
�d�|�t
dd
dii�dS)
NrZZzDummy�enabler�zmy custom keysr�end�copyr9zz-in�	<Key-F11>ZZzDummy_cfgBindings)r
r�rLr�r[�bindingslist�delete�insert�
selection_set�selection_anchor�
keybindingr:rBr6r<rrr�test_keybinding�s$
�
�zKeysPageTest.test_keybindingcCr�r�)
r:rLrrr[r�rr�r
�button_delete_custom_keysr�rrr�rrr�test_set_keys_type�r�zKeysPageTest.test_set_keys_typecCs�|j}|j}tj}tdd�}t_t�}|_|j�d�|j�	dd�|j�
dd�|j�d�|j�d�|j
�d�|j�d�d|_|j��||j�d	�d�||j
��d�d
|_d|_|j��||jd�||j�d	�d�d|_|j��||j��|j�||j�d	�d
�||j
��d
�|j�d�d|_d|_|j��||jd�||j�d	�d�||j
��d�|`|t_dS)NTr�r�rr$zcopy - <Control-Shift-Key-C>zKey-arrsr&r9zMy New Key Setzcopy - <Key-F11>Fz<Key-p>zcopy - <Key-p>)r:rLrZ
GetKeysWindowr�get_new_keys_name�button_new_keysr�r'r(r)r*r+r,r[rr�r1r_r;r�)r&r�r3Zorig_getkeysdialogZgkd�gnknrrr�test_get_new_keys�sF




zKeysPageTest.test_get_new_keyscCr�)NTr�zNew Keysr)rr�rrLr�r:r0r�rrr�test_get_new_keys_name�rz#KeysPageTest.test_get_new_keys_namecCst|j}t�}|_|j�d�d|_|j��d|_d|_|�	|jt
jd�|j��|�|jt
jd�|`dS)NTrzmy new key setrr)
rLrr0rr[r�Zbutton_save_custom_keysr1r;r�r
rrj)r&r3r2rrr�test_save_as_new_key_set�s

z%KeysPageTest.test_save_as_new_key_setcCs�|j}|j}|�dd�|�dd�|�dd�|�d�|��|�d�|��|�d�\}}}}||d7}||d7}|j	dddd�|j	d	||d�|j	d
||d�|j	d||d�|�
|�d�d�|�
|j�
�d
�dS)Nrr$r%r9�findrcr�ror�rnrrrsr)rLr'r(r)r7rhrtrNrurir:r_r1r�)r&r3r�rprqrvrwrrr�test_on_bindingslist_selects$

z(KeysPageTest.test_on_bindingslist_selectcCs|j}|j}|j�d�|j�d�d}d}|�|tj�|�|�|t�	dd�|g�|t�
d�t�
|��||j��|�|�
|j���||jjd�t�d|dd	�|�|tj�|�|�|t�	dd�||g�|�t�
|�t�
|��t�d|dd	�|t�
|�t�
|��dS)
NTr!zmy new custom key setzmy second custom keysetr�rr9r%r&)r:rLrr[r�r�r
rZcreate_new_key_setr��	GetKeySetr�r_r`rr;rrr^r�rrrr�,test_create_new_key_set_and_save_new_key_sets0

�
�z9KeysPageTest.test_create_new_key_set_and_save_new_key_setcCsV|j}|j}t�}t_|`|j}|�dd�|�dd�|�dd�ddgdgd	gd
�|_	t
�ddd
d�d}|�d�||�dd�|�||�d�d�||�
�d�|�d�|�d�|�d�||�dd�|�||�d�d�||�
�d�|�d�|�d�|�d�||�dd�|�||�d�d�||�
�d�t�|_t`dS)Nrr$z<<find>>r9z<<help>>z<Control-Key-c>z<Control-Key-C>z<Control-Key-space>r&)z<<copy>>z<<force-open-completions>>z<<spam>>rzmy keysr�z
<Shift-Key-a>)z&copy - <Control-Key-c> <Control-Key-C>�,force-open-completions - <Control-Key-space>�spam - <Shift-Key-a>rsrrr:)r9rcr;)rc)r:rLrr
r8rr'r(r)r�rrr_Zcurselectionr*r+)r&r�r3Zgksr�r�rrr�test_load_keys_list:s@�






z KeysPageTest.test_load_keys_listcCr)Nr�zspam key setrr�r�r�r�z
other key setr�Fr9r�rTrcrr�r�r)r:rLr.r�rrrr5r)r
rr�rBrr1r�r[r�r;r�rr�r_)r&r�r3rZkeyset_nameZkeyset_name2rrr�test_delete_custom_keyserz$KeysPageTest.test_delete_custom_keysN)r*r+r,r�rQrTrWrr r�r�r-r/r3r4r5r7r9r<r=rrrrrs(


* 0
+rc@sbeZdZ	edd��Zdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dS)�WinPageTestcC�$tj}|_tj�|�|��dSr)rZwinpagerLr@rArNrOrrrrQ��zWinPageTest.setUpClasscCrUrrVr%rrrrW�rXzWinPageTest.setUpcCsl|j}|j}|j�d�|j�d�|j�d�|��||j��d�||j��d�||j��d�dS)Nr9rZ80rz)r:rLZstartup_editr[Z	win_widthZ
win_heightZload_windows_cfgr_r�rrr�test_load_windows_cfg�sz!WinPageTest.test_load_windows_cfgcCsN|j}|j��|�tdddii�t��|j��|�tdddii�dS)N�Generalzeditor-on-startuprYr�)rLZstartup_editor_onr1r:r�rrZstartup_shell_onr<rrr�test_startup�s

�

�zWinPageTest.test_startupcCsr|j}|j�dd�|j�dd�|�tdddii�t��|j�dd�|j�dd�|�tdddii�dS)Nrr$�11r~Zheight�width)	rLZwin_height_intr(r)r:r�rrZ
win_width_intr<rrr�test_editor_size�szWinPageTest.test_editor_sizecCs<|j}|j�d�|�|j��d�|�tdddii�dS)N��6ZIndentz
num-spaces)rLZindent_chooserr[r:Z
indent_spacesr_r�r<rrr�test_indent_spaces�szWinPageTest.test_indent_spacescCs$|jj��|�tdddii�dS)Nr~zcursor-blinkr�)rLZcursor_blink_boolr1r:r�r%rrr�test_cursor_blink�szWinPageTest.test_cursor_blinkcC�8|jj�dd�|jj�dd�|�tdddii�dS)Nrr$rDZAutoCompleteZ	popupwait)rLZ
auto_wait_intr(r)r:r6r%rrr�test_autocomplete_wait��z"WinPageTest.test_autocomplete_waitcCs�|j}|j}|jd�d�|tdddii�t��|j�dd�|j�	dd�|tdddii�t��|j
��|tdd	d
ii�dS)NZmenurZ
ParenMatchr��openerr$rDzflash-delayZbellr�)rLr:Zparen_style_typer1r6rrZparen_flash_timer(r)Zbell_onr�rrr�test_parenmatch�s
zWinPageTest.test_parenmatchcCrK)Nrr$rDZFormatParagraphz	max-width)rLZformat_width_intr(r)r:r6r%rrr�test_paragraph�rMzWinPageTest.test_paragraphN)r*r+r,r�rQrWrArCrFrIrJrLrOrPrrrrr>�s



r>c@s:eZdZ	edd��Zdd�Zdd�Zdd�Zd	d
�ZdS)�ShedPageTestcCr?r)rZshedpagerLr@rArNrOrrrrQ�r@zShedPageTest.setUpClasscCrUrrVr%rrrrW�rXzShedPageTest.setUpcCs4|j}|j}|j�d�|��||j��d�dS)Nr9r)r:rL�autosaver[Zload_shelled_cfgr_r�rrr�test_load_shelled_cfgs
z"ShedPageTest.test_load_shelled_cfgcCsF|j}|j��|�tdddii�|j��|�tdddii�dS)NrBrRrYr�)rLZsave_auto_onr1r:r�Zsave_ask_onr<rrr�
test_autosave	s


zShedPageTest.test_autosavecCrK)Nrr$rYZCodeContextZmaxlines)rLZcontext_intr(r)r:r6r%rrr�test_contextrMzShedPageTest.test_contextN)	r*r+r,r�rQrWrSrTrUrrrrrQ�s
rQc@seZdZ	edd��ZdS)�ExtPageTestcCstj}tj�|�dSr)rr6r@rArOrrrrQszExtPageTest.setUpClassN)r*r+r,r�rQrrrrrVsrVc@rJ)�HelpSourceTestcCsFtj}tj�|�|j}|_t�|_|_t�|_	|_
|��dSr)rr6r@rAZ
frame_help�framerr[�set_add_delete_state�upc�update_help_changesrN)rPrLrXrrrrQ!szHelpSourceTest.setUpClasscCs2|j}|`|`|`|`|j�dd�|j��dS)Nrr$)	rXr[rYrZr[�helplistr(�
user_helplistr)rPrXrrrrT*s
zHelpSourceTest.tearDownClasscCrUrrVr%rrrrW2rXzHelpSourceTest.setUpcCsb|j}|j}|j�dd�ddg|_t�dddd�|��||j�dd�d	�||jd
g�dS)Nr$ZbadZworser�	HelpFilesrYz	name;filer)r�)r��filerY)	r:rXr\r)r]r
r�Z
load_helplistr_�r&r��frrrr�test_load_helplist5s
z!HelpSourceTest.test_load_helplistcCs�|j}|j|_|j|_|j}d}|�|d�|�|�|��|�	|�|�
�|�|�\}}}}||d7}||d7}d|j_|j_|j
dddd�|j
d||d�|j
d||d�|j
d	||d�|�|�d
�d�|�|jj�|�|jj�dS)Nr$�sourcercrr�ror�rnrrrs)rXrYr[r[rZr\r)r7rhrtrNrur;rir:r_rEr`)r&rar\Zdexrprqrvrwrrr�test_source_selected?s*

z#HelpSourceTest.test_source_selectedcCs�|j}|j}|`|j}|j}|�dd�|�||j��d�||j��d�|�dd�|�||j��d�||j��d�|�	d�|�||j��d�||j��d�t
�|_dS)Nrr$r�rcr)r:rXrYr\r(Zbutton_helplist_editr�Zbutton_helplist_remover)r*r)r&r�raZsad�hrrr�test_set_add_delete_stateWs$
z(HelpSourceTest.test_set_add_delete_statecCs�|j}tj}tdd�}t_|j}|j�dd�|j��d|j	_
|j_
d|_|�
�|�t|j�dd��|jko?gkn�|�|jj
�d|_|�
�d|_|�
�||j�dd�d�||jddg�||jj
d	�|�|j	j
�|t_dS)
NTr�rr$r��name1Zfile1�r�Zfile2)rhr�rc)r:r�
HelpSourcerrXr\r(r]rr[r;rZr�Zhelplist_item_addrE�listr_r`�r&r�Zorig_helpsourcer�rarrr�test_helplist_item_addos0
��
z%HelpSourceTest.test_helplist_item_addcCs(|j}tj}tdd�}t_|j}|j�dd�|j�dd�|j�d�|j�	d�|j
��|j
�d�d|j
_|j_d|_|��d|_|��||j�dd�d�||j
dg�|�|jj�d	|_|��||j�dd�d
�||j
d	g�|�|jj|j
jko�dkn�|t_dS)NTr�rr$rhrgr)rhri)r�r9)r:rrjrrXr\r(r)r*r+r]r�appendr[r;rZr�Zhelplist_item_editr_r`rErlrrr�test_helplist_item_edit�s0
&
z&HelpSourceTest.test_helplist_item_editcCs�|j}|j}|j�dd�|j�dd�|j�d�|j�d�|j��|j�	d�d|j
_|j_|�
�||j�dd�d�||jg�|�|jj|j
jkoYdk�dS�dS)Nrr$rhrgrr9)r:rXr\r(r)r*r+r]rrnr[r;rZZhelplist_item_remover_rEr`rrr�test_helplist_item_remove�s
0z(HelpSourceTest.test_helplist_item_removecCsV|j}|`|j��|j�d�|j�d�|��|�tdddd��t�|_dS)Nrgrir^zname1;file1zname2;file2)rY�2)rXr[r]rrnr:r�r)r&rarrr�test_update_help_changes�s

�z'HelpSourceTest.test_update_help_changesN)r*r+r,r�rQrTrWrbrdrfrmrorprrrrrrrWs


rWc@sdeZdZedd��Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dS)�VarTraceTestcCs"t��|_tt�|_tt�|_dSr)rZVarTracerrr�ivr	�bvrSrrrrQ�s

zVarTraceTest.setUpClasscCs|`|`|`dSr)rrtrurSrrrrT�szVarTraceTest.tearDownClasscCs|j��d|_dSr�)rrr;r%rrrrW�s

zVarTraceTest.setUpcGs|jd7_dS)N�
)r;�r&�paramsrrr�var_changed_increment�sz"VarTraceTest.var_changed_incrementcGr$rrrwrrr�var_changed_boolean�r(z VarTraceTest.var_changed_booleancCs.|j}|��|�|jg�|�|jg�dSr)r�__init__r:�untraced�traced�r&�trrrr�	test_init�szVarTraceTest.test_initcCsF|j}|j�d�|j�d�|��|�|jg�|�|jg�dS)Nrr9)rr|rnr}rr:r~rrr�
test_clear�szVarTraceTest.test_clearc	Cs�|j}t�}tj|d�}|_|�|j|j�}|�||j�|�|j	|j
�}|�||j	�tt�}|�|d�}|�||�|�
�|�|d�||jf||j
f||fg}|�|jg�|�|j|�|`dS)Nr��rr�r�)rrrr.�
make_callback�addrtryZassertIsrurzrrr2Zassert_called_withr:r}r|)	r&r�func�cbrtru�svZsv2r�rrr�test_add�s&�zVarTraceTest.test_addcCst|j�|jd�}|�t|��|j�d�|�dtd�|�|�dtd�|�	tdddd�t�
�dS)Nr��*r�rr�Z42)rr�rtrE�callabler[r�rrjr:r)r&r�rrr�test_make_callbackszVarTraceTest.test_make_callbackcCs�|j}|�|j|j�}|�|j|j�}||jf||jfg}|��|�|jg�|�	|j
|�|�d�|�|��d�|�|j
d�d|_
|��|�d�|�|j
d�d|_
|��|�|j
g�|�	|j|�|�d�|�|j
d�dS)Nr9rvr)rr�rtryrurzrar:r|ZassertCountEqualr}r[r_r;r)r&rrtrur�rrr�test_attach_detachs,�


zVarTraceTest.test_attach_detachN)r*r+r,r�rQrTrWryrzr�r�r�r�r�rrrrrs�s

rs�__main__rc)�	verbosity)-ZidlelibrZtest.supportrZunittestrZidlelib.idle_test.mock_idler�tkinterrrrr	r
rrZidlelib.configdialogr
rrrrZIdleUserConfParserrrrr�r�rBr6rr"ZTestCaser#r-rKr�rr>rQrVrWrsr*rrrrr�<module>s\ �	+Q%(h�