Your IP : 3.135.224.236


Current Path : /opt/alt/python37/lib64/python3.7/idlelib/idle_test/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/idlelib/idle_test/__pycache__/test_configdialog.cpython-37.pyc

B

� fN��@s�dZddlmZddlmZed�ddlZddlmZddlmZddl	m
Z
mZmZm
Z
mZmZdd	lmZdd
lmZmZmZejZe�d�e�d�e�d�e�d�d�Zdadaed
ZedZedZedZdd�Zdd�Z Gdd�dej!�Z"Gdd�dej!�Z#Gdd�dej!�Z$Gdd�dej!�Z%Gdd�dej!�Z&Gdd �d ej!�Z'Gd!d"�d"ej!�Z(Gd#d$�d$ej!�Z)e*d%k�r�ej+d&d'�dS)(zfTest configdialog, coverage 94%.

Half the class creates dialog, half works with user customizations.
�)�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�H/opt/alt/python37/lib64/python3.7/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*sr!c@seZdZdd�Zdd�ZdS)�ConfigDialogTestcCsdS)Nr)�selfrrr�test_deactivate_current_config7sz/ConfigDialogTest.test_deactivate_current_configcCsdS)Nr)r#rrr�activate_config_changes:sz(ConfigDialogTest.activate_config_changesN)�__name__�
__module__�__qualname__r$r%rrrrr"5sr"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@szButtonTest.test_click_okcCsdt}t��}|_t��}|_t��}|_|jd��|��|��|��|`|`|`dS)NZApply)	rrr*�deactivate_current_configZsave_all_changed_extensionsr%r,r-r.)r#r/Z
deactivateZsave_ext�activaterrr�test_click_applyIszButtonTest.test_click_applycCsNt}t�|_dtdd<|jd��|�tdi�|�|jjd�|`dS)N�rZ	somethingZCancel)rrr rr,r-�assertEqual�called)r#r/rrr�test_click_cancelUszButtonTest.test_click_cancelc	Csztj�tj�tjjtdtd��*}tj	d�
�|jd|jd}}WdQRX|�|d�|�
|�d�or|�d��dS)	NZ	view_text)Znew_callableZHelp�title�contentszHelp for IDLE preferenceszWhen you clickza different name.
)r�note�select�keyspagerZpatch�objectrrr,r-�kwdsr5�
assertTrue�
startswith�endswith)r#Zviewr8r9rrr�test_click_help^s

 zButtonTest.test_click_helpN)r&r'r(r0r3r7rBrrrrr)>s		r)c@sheZdZdZedd��Zedd��Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�ZdS)�FontPageTestz�Test that font widgets enable users to make font changes.

    Test that widget actions set vars, that var changes add three
    options to changes and call set_samples, and that set_samples
    changes the font of both sample boxes.
    cCs,tj}|_tj�|�t�|_|��dS)N)r�fontpage�pager:r;r�set_samples�update)�clsrErrr�
setUpClasspszFontPageTest.setUpClasscCs
|j`dS)N)rErF)rHrrr�
tearDownClasswszFontPageTest.tearDownClasscCst��dS)N)rr)r#rrr�setUp{szFontPageTest.setUpcCs�t��|j}|j�d�|j�d�|j�d�d|j_|�	�|�
|j��d�|�
|j��d�|�|j���|�
|jjd�t��dS)NZFake�1Trr4)rrrE�	font_name�set�	font_size�	font_boldrFr6Z
load_font_cfg�assertNotEqual�get�assertFalser5�attach)r#r/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�zneed at least 2 fontsrZactivez
<Key-Down>z<KeyRelease-Down>z<Key-Up>z<KeyRelease-Up>)rE�fontlist�size�skipTestr2rR�focus_forcerG�event_generaterQ�assertInrM�lowerr5)r#r/rW�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)	NrVzneed at least 2 fontsrr4z
<Button-1>)�x�yz<ButtonRelease-1>�anchor)rErWrXrYr2rZ�seerG�bboxr[rRr5r\rMr])	r#r/rWr`ra�dx�dyZfont1Zselect_fontrrr�test_fontlist_mouse�s"




z FontPageTest.test_fontlist_mousecCs*|j}|jj�d�|�|j��d�dS)N�(�40)rEZsizelistZvariablerNr5rOrR)r#r/rrr�
test_sizelist�szFontPageTest.test_sizelistcCsJ|j}|j�d�|j��|�|j���|j��|�|j���dS)NF)rErPrNZbold_toggler-r?rRrS)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�EditorWindowr4rV�boldrz	Test Font)r^z	font-sizez	font-boldZ20�)r
ZGetFontr�strrErOrNrPrFr6rMr5�mainpagerr)r#Zdefault_fontZdefault_sizeZdefault_boldr/�expectedrrr�
test_font_set�s6zFontPageTest.test_font_setcCs�|j}|`|j|jf}ii|_|_|j�d�|j�d�|j�d�ddi}|��|�|j|jkor|kn�|\|_|_t	�|_dS)N�test�5r4r^)rsrtrm)
rErFZfont_sample�highlight_samplerMrNrOrPr?r)r#r/Zorig_samplesrqrrr�test_set_samples�s"zFontPageTest.test_set_samplesN)r&r'r(�__doc__�classmethodrIrJrKrUr_rgrjrkrrrvrrrrrCis	$rCc@s(eZdZedd��Zdd�Zdd�ZdS)�
IndentTestcCstj|_|j��dS)N)rrDrErG)rHrrrrI	szIndentTest.setUpClasscCs0|j}|j�d�|��|�|j��d�dS)N��)rE�	space_numrNZload_tab_cfgr5rR)r#r/rrr�test_load_tab_cfgszIndentTest.test_load_tab_cfgcCsD|j}t��|j�d�|�|j��d�|�tdddii�dS)N�rzZIndentz
num-spacesZ16)	rErrZindent_scalerNr5r|rRrp)r#r/rrr�test_indent_scales
zIndentTest.test_indent_scaleN)r&r'r(rxrIr}rrrrrrysryc@s�eZdZdZedd��Zedd��Zdd�Zdd	�Zd
d�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.d/�Zd0S)1�HighPageTestz�Test that highlight tab widgets enable users to make changes.

    Test that widget actions set vars, that var changes add
    options to changes and that themes work correctly.
    cCsDtj}|_tj�|�t�|_t�|_t�|_t�|_	|�
�dS)N)r�highpagerEr:r;r�set_theme_type�paint_theme_sample�set_highlight_target�set_color_samplerG)rHrErrrrI#szHighPageTest.setUpClasscCs|j}|`|`|`|`dS)N)rEr�r�r�r�)rHr/rrrrJ-szHighPageTest.tearDownClasscCsX|j}x$t�dd�D]}tjd�|�qWt��d|j_d|j	_d|j
_d|j_dS)N�userrr)rEr
�GetSectionListr�remove_sectionrrr�r6r�r�r�)r#r/�sectionrrrrK3szHighPageTest.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)NzIDLE Classic)�return_valuez- no custom themes -)�disabledr4r�test1�option�value�test2�option2�value2rVr�Theme�default�0rn)rrrEr5rr*r
ZCurrentThemeZload_theme_cfgr?�theme_sourcerR�builtin_name�custom_name�custom_theme_on�stater�r6r�r��	SetOptionrSrT)r#r/�eqrrr�test_load_theme_cfg?s>z HighPageTest.test_load_theme_cfgcCs�|j}|j}t�|_t�|_|j��|tdddii�||jjd�||jjd�t	�
�|j�d�|j��|�tdddii�||jjd�||jjd�|`|`dS)Nr�r��Truer4r)z	!disabled�False)
r5rEr�var_changed_builtin_name�var_changed_custom_nameZbuiltin_theme_onr-rpr6rrr�r�)r#r�r/rrr�test_theme_sourcehs

zHighPageTest.test_theme_sourcecCs|j}|j}dddg}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)NzIDLE Classicz	IDLE DarkzIDLE Newrr��name�spam)r��name2�textzNew theme, see Helpr4r�rVrrn)r5rEr
r��builtinlist�SetMenurpZ
theme_messager�r6rr)r#r�r/�	item_listrrr�test_builtin_name}s(
zHighPageTest.test_builtin_namecCst|j}|j�gd�|�dt�|�|jjd�t�	�|j�dddgd�|�tdddii�|�|jjd�dS)	Nz- no custom themes -r�r�a�b�cr�r4)
rE�
customlistr��assertNotInrpr5r�r6rr)r#r/rrr�test_custom_name�szHighPageTest.test_custom_namecCs2|j}t�|_|j�d�|�|jjd�|`dS)NZgreenr4)rErZon_new_color_set�colorrNr5r6)r#r/rrr�
test_color�s
zHighPageTest.test_colorcCsB|j}|j}|j�dddgd�||j��d�||jjd�dS)Nr�r�r�r4)r5rEZ
targetlistr��highlight_targetrRr�r6)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�}||�x`���D]T}xN��|�ddd�D]6}|d7}||�|�j�	�||�|�j
j|�qxWq^WdS)	Nrg�?cs(x"�j��D]\}}|||d<qWdS)Nr)Ztheme_elements�items)�elemZelement�tag)r/rr�tag_to_element�szEHighPageTest.test_highlight_target_text_mouse.<locals>.tag_to_elementcsn��|�\}}}}||d7}||d7}�jdddd��jd||d��jd||d��jd||d�dS)NrVz<Enter>r)r`raz<Motion>z<ButtonPress-1>z<ButtonRelease-1>)rdr[)�startr`rarerf)�hsrr�click_it�sz?HighPageTest.test_highlight_target_text_mouse.<locals>.click_itrVr4)r5rErurZrcrZ	tag_names�
tag_rangesr�rRr�r6)r#r�r��countr�r�r�Zstart_indexr)r/r�r� test_highlight_target_text_mouse�s"

z-HighPageTest.test_highlight_target_text_mousecCs�|j}|j}|j}|��|�d�|��|jdddd�|jdddd�x0td�D]$}|jdddd�|jdddd�qVW||�d	�d
�dS)Ng�?z<Enter>r)r`raz<Motion>rVz<ButtonPress-1>z<ButtonRelease-1>�selr)	r5rErurZrcrr[�ranger�)r#r�r/r��_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)Ng�?z1.0z<Leave>z<Enter>z<Motion>)r`raz<ButtonPress-1>z<B1-Motion>z<ButtonRelease-1>r�r)	r5rErurZrcrZ	dlineinfor[r�)	r#r�r/r�r`rarerf�offsetrrr�test_highlight_sample_b1_motion�s


z,HighPageTest.test_highlight_sample_b1_motioncCs�|j}|j}|`|j�d�|��||jdt�||jdt�||j	�
�d�|j�d�|��||jdt�||j�
�d�||jdt�||j	�
�d�t�|_dS)NTr�)r�F)�selectedr)
r5rEr�r�rNr�rr�r
�button_delete_customr�r�r)r#r�r/rrr�test_set_theme_types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@ggz#de0000Tr4zMy New Themez#de0000F)r5rErZtkColorChooserZaskcolorr�get_new_theme_namer�rNr��resultZbutton_set_colorr-rRr��lookup�frame_color_setr�r6r�)r#r�r/Z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�Pythonz
Selected TextTr�r��hilite�
foregroundzhilite-foreground)
rEr�rNr��fg_bg_toggler�r5r�r�r�ru�tag_cgetr�)r#r/r�rrr�test_on_new_color_setKsz"HighPageTest.test_on_new_color_setcCs>tj}tdd�}t_|j}d|_|�|�d�d�|t_dS)NT)�return_selfz	New Themer)r�SectionNamerrEr�r5r�)r#�orig_sectionname�snr/rrr�test_get_new_theme_nameXs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)
rErr�r�rNr�Zbutton_save_customr-r�r
rr6r\)r#r/r�rrr�test_save_as_new_themebs

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)NTzIDLE Classiczmy new custom themezmy second custom themer�rr�r4zhit-background�yellow)r5rEr�rNr�r�r
r�
create_newr�ZGetThemeDictr�rRrSr�r6r�
add_optionrQr�)r#r�r/�	first_new�
second_newrrr�test_create_new_and_save_newus.

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�r4�Comment)r�rrV)
r5rEr�r�rN�fg_onr��bg_onr?r�r�r6r)r#r�r/rrr�test_set_highlight_target�sz&HighPageTest.test_set_highlight_targetcCs@|j}|j}|j��|�|jd�|j��|�|jd�dS)Nr4rV)rEr�r�r-r5r6r�)r#r/Zscsrrr�test_set_color_sample_binding�s

z*HighPageTest.test_set_color_sample_bindingcCs\|j}|`|j�d�|j�d�|��|�|j�|jdd�|j	�
dd��t�|_dS)Nz
Selected TextTr�r�r�r�)rEr�r�rNr�r5r�r�r�rur�r)r#r/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�}x&|�
�D]\}}|�|d|�|�qhW||jjd	�x(|�
�D]\}}t�d
|d||�q�W|��x$|�
�D]\}}||d|�|�q�W||jjd�t�|_dS)
NTz	IDLE Darkz	IDLE TestrZbluer�)r�r�Zconsoler4rzconsole-rV)r5rEr�rur�r
ZGetHighlightr�rNr�r�r�r6r�rQrr�r)	r#r�rEZhs_tagZghZthemeZnew_console�keyr�rrr�test_paint_theme_sample�s.
z$HighPageTest.test_paint_theme_samplecCs2|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)N)z	!disabledz
spam themerr�r�r�r�zother themer�Fr4r�rTrVrrn)r�z- no custom themes -)r5rEr�r�r�askyesnorr1r%r
rr�r�r�r-r�rNr�r6r�r�r�rR)r#r�r/�yesnoZ
theme_nameZtheme_name2rrr�test_delete_custom�s\



zHighPageTest.test_delete_customN)r&r'r(rwrxrIrJrKr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�s0
)	%/

 
 r�c@s�eZdZdZedd��Zedd��Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"S)#�KeysPageTestz�Test that keys tab widgets enable users to make changes.

    Test that widget actions set vars, that var changes add
    options to changes and that key sets works correctly.
    cCs,tj}|_tj�|�t�|_t�|_dS)N)rr<rEr:r;r�
set_keys_type�load_keys_list)rHrErrrrI"szKeysPageTest.setUpClasscCs|j}|`|`dS)N)rEr�r�)rHrErrrrJ)szKeysPageTest.tearDownClasscCsH|j}x$t�dd�D]}tjd�|�qWt��d|j_d|j	_dS)Nr�rr)
rEr
r�rr�rrr�r6r�)r#r/r�rrrrK.s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)NzIDLE Classic OSX)r�z- no custom keys -)r�r4)zIDLE Classic OSXrr�r�r�r�r�r�rVzIDLE Modern Unixr�Keysr�r�rn)r�)rrrEr5rr*r
ZCurrentKeysZload_key_cfgr?�
keyset_sourcerRr�r��custom_keyset_onr�r�r6r��argsr�Zdefault_keysrSrT)r#r/r�rrr�test_load_key_cfg8s@zKeysPageTest.test_load_key_cfgcCs�|j}|j}t�|_t�|_|j��|tdddii�||jjd�||jjd�t	�
�|j�d�|j��|�tdddii�||jjd�||jjd�|`|`dS)Nr�r�r�r4r)z	!disabledr�)
r5rErr�r�Zbuiltin_keyset_onr-rpr6rrr�r�)r#r�r/rrr�test_keyset_sourcebs

zKeysPageTest.test_keyset_sourcecCs2|j}|j}tjd�d�dddg}|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�zIDLE Classic WindowszIDLE Classic OSXzIDLE Modern UNIX)r�r�r�zNew key set, see Helpr4)zIDLE Modern UNIXr�zIDLE Classic Unixr�rVrrn)zIDLE Classic OSX)r5rEr
rr�r�r�rpZkeys_messager�r6r�rrr�)r#r�r/r�rrrr�ws0zKeysPageTest.test_builtin_namecCst|j}|j�gd�|�dt�|�|jjd�t�	�|j�dddgd�|�tdddii�|�|jjd�dS)	Nz- no custom keys -r�rr�r�r�r�r4)
rEr�r�r�rpr5r�r6rr)r#r/rrrr��s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)
NrZZzDummyZenabler�zmy custom keysr�end�copyr4zz-inz	<Key-F11>ZZzDummy_cfgBindings)r
r�rEr�rN�bindingslist�delete�insert�
selection_set�selection_anchor�
keybindingr5r<�extpage)r#r/rrr�test_keybinding�s zKeysPageTest.test_keybindingcCs�|j}|j}|`|j�d�|��||jdt�||jdt�||j	�
�d�|j�d�|��||jdt�||j�
�d�||jdt�||j	�
�d�t�|_dS)NTr�)r�F)r�r)
r5rEr�r�rNr�rr�r
�button_delete_custom_keysr�r�r)r#r�r/rrr�test_set_keys_type�s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)NT)r�)z	!disabledrr�zcopy - <Control-Shift-Key-C>zKey-arrbz	<Key-F11>r4zMy New Key Setzcopy - <Key-F11>Fz<Key-p>zcopy - <Key-p>)r5rErZ
GetKeysDialogr�get_new_keys_name�button_new_keysr�r�r�r�r�r�r�rNr�r�r-rRr6r�)r#r�r/Zorig_getkeysdialogZgkd�gnknrrr�test_get_new_keys�sF



zKeysPageTest.test_get_new_keyscCs>tj}tdd�}t_|j}d|_|�|�d�d�|t_dS)NT)r�zNew Keysr)rr�rrEr�r5r)r#r�r�r/rrr�test_get_new_keys_name�sz#KeysPageTest.test_get_new_keys_namecCst|j}t�}|_|j�d�d|_|j��d|_d|_|�	|jt
jd�|j��|�|jt
jd�|`dS)NTrzmy new key setrr)
rErrr�rNr�Zbutton_save_custom_keysr-r6r�r
rr\)r#r/rrrr�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�r4�findrVz<Enter>)r`raz<Motion>z
<Button-1>z<ButtonRelease-1>rbr)rEr�r�r�r2rZrcrGrdr[r5rRrr�)r#r/r�r`rarerfrrr�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)
NTzIDLE Classic Windowszmy new custom key setzmy second custom keysetr�rr4r�z	<Key-F11>)r5rEr�rNr�r�r
rZcreate_new_key_setr��	GetKeySetr�rRrSr�r6rr�rQr�)r#r�r/r�r�rrr�,test_create_new_key_set_and_save_new_key_set0s,


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>>r4z<<help>>z<Control-Key-c>z<Control-Key-C>z<Control-Key-space>z	<Key-F11>)z<<copy>>z<<force-open-completions>>z<<spam>>rzmy keysr�z
<Shift-Key-a>)z&copy - <Control-Key-c> <Control-Key-C>z,force-open-completions - <Control-Key-space>zspam - <Shift-Key-a>rbrrz,force-open-completions - <Control-Key-space>)r4rVzspam - <Shift-Key-a>)rV)r5rErr
r	r�r�r�r�r�rr�rRZcurselectionr�r�)r#r�r/Zgksr�rqrrr�test_load_keys_listOs>






z KeysPageTest.test_load_keys_listcCs2|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)N)z	!disabledzspam key setrr�r�r�r�z
other key setr�Fr4r�rTrVrrn)r�z- no custom keys -)r5rEr�r�rr�rr1r%r
rr�r<r�r-r�rNr�r6r�r�r�rR)r#r�r/r�Zkeyset_nameZkeyset_name2rrr�test_delete_custom_keyszs\



z$KeysPageTest.test_delete_custom_keysN)r&r'r(rwrxrIrJrKr�r�r�r�r�rrrrrr
rrrrrrr�s"
* 0
+r�c@s�eZdZdZedd��Zedd��Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&S)'�GenPageTestz�Test that general tab widgets enable users to make changes.

    Test that widget actions set vars, that var changes add
    options to changes and that helplist works correctly.
    cCs@tj}|_tj�|�t�|_|_t�|_|_	|�
�dS)N)rZgenpagerEr:r;rrN�set_add_delete_state�upc�update_help_changesrG)rHrErrrrI�s
zGenPageTest.setUpClasscCs2|j}|`|`|`|`|j�dd�|j��dS)Nrr�)	rErNrrr�helplistr��
user_helplistr)rHrErrrrJ�s
zGenPageTest.tearDownClasscCst��dS)N)rr)r#rrrrK�szGenPageTest.setUpcCs�|j}|j}|j�d�|j�d�|j�d�|j�d�|j�dd�ddg|_	t
�dddd�|��||j�
�d	�||j�
�d	�||j�
�d
�||j�
�d�||j�
d	d�d�||j	d
g�dS)Nr4r�ZbadZworser�	HelpFilesrLz	name;filerZ80ri)r�)r��filerL)r5rEZstartup_editrN�autosaveZ	win_widthZ
win_heightrr�rr
r�Zload_general_cfgrR)r#r�r/rrr�test_load_general_cfg�s 
z!GenPageTest.test_load_general_cfgcCsN|j}|j��|�tdddii�t��|j��|�tdddii�dS)N�Generalzeditor-on-startuprLr�)rEZstartup_editor_onr-r5rprrZstartup_shell_on)r#r/rrr�test_startup�s

zGenPageTest.test_startupcCsr|j}|j�dd�|j�dd�|�tdddii�t��|j�dd�|j�dd�|�tdddii�dS)Nrr��11rlZheight�width)	rEZwin_height_intr�r�r5rprrZ
win_width_int)r#r/rrr�test_editor_size�szGenPageTest.test_editor_sizecCs$|jj��|�tdddii�dS)Nrlzcursor-blinkr�)rEZcursor_blink_boolr-r5rp)r#rrr�test_cursor_blink�szGenPageTest.test_cursor_blinkcCs8|jj�dd�|jj�dd�|�tdddii�dS)Nrr�rZAutoCompleteZ	popupwait)rEZ
auto_wait_intr�r�r5r�)r#rrr�test_autocomplete_wait�sz"GenPageTest.test_autocomplete_waitcCs�|j}|j}|jd�d�|tdddii�t��|j�dd�|j�	dd�|tdddii�t��|j
��|tdd	d
ii�dS)NZmenurZ
ParenMatchr��openerr�rzflash-delayZbellr�)rEr5Zparen_style_typer-r�rrZparen_flash_timer�r�Zbell_on)r#r/r�rrr�test_parenmatch�s
zGenPageTest.test_parenmatchcCsF|j}|j��|�tdddii�|j��|�tdddii�dS)NrrrLr�)rEZsave_auto_onr-r5rpZsave_ask_on)r#r/rrr�
test_autosaves


zGenPageTest.test_autosavecCs8|jj�dd�|jj�dd�|�tdddii�dS)Nrr�rZFormatParagraphz	max-width)rEZformat_width_intr�r�r5r�)r#rrr�test_paragraphszGenPageTest.test_paragraphcCs8|jj�dd�|jj�dd�|�tdddii�dS)Nrr�rLZCodeContextZmaxlines)rEZcontext_intr�r�r5r�)r#rrr�test_contextszGenPageTest.test_contextcCs�|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��sourcerVrz<Enter>)r`raz<Motion>z
<Button-1>z<ButtonRelease-1>rb)rErrNrrrr�r2rZrcrGrdr6r[r5rRr?rS)r#r/rZdexr`rarerfrrr�test_source_selecteds*

z GenPageTest.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�r#r)r5rErrr�Zbutton_helplist_editr�Zbutton_helplist_remover�r�r)r#r�r/Zsad�hrrr�test_set_add_delete_state5s$
z%GenPageTest.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)
NT)r�rr�r)�name1�file1)r��file2)r'r�rV)r5r�
HelpSourcerrErr�rrrNr6rr�Zhelplist_item_addr?�listrRrS)r#r��orig_helpsourcer�r/rrr�test_helplist_item_addMs*
z"GenPageTest.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
jk�odkn�|t_dS)NT)r�rr�r')r'r(r)r')r�r))r�r4)r5rr*rrErr�r�r�r�rr�appendrNr6rr�Zhelplist_item_editrRrSr?)r#r�r,r�r/rrr�test_helplist_item_editis0
(z#GenPageTest.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
jko�dkn�dS)Nrr�r')r'r(rr4)r5rErr�r�r�r�rrr.rNr6rZhelplist_item_removerRr?)r#r�r/rrr�test_helplist_item_remove�s
z%GenPageTest.test_helplist_item_removecCsV|j}|`|j��|j�d�|j�d�|��|�tdddd��t�|_dS)N)r'r()r�r)rzname1;file1zname2;file2)rL�2)rErrrr.r5rpr)r#r/rrr�test_update_help_changes�s

z$GenPageTest.test_update_help_changesN)r&r'r(rwrxrIrJrKrrrrrrr r!r"r$r&r-r/r0r2rrrrr
�s&


r
c@sdeZdZedd��Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dS)�VarTraceTestcCs"t��|_tt�|_tt�|_dS)N)rZVarTracerrr�ivr	�bv)rHrrrrI�s

zVarTraceTest.setUpClasscCs|`|`|`dS)N)rr4r5)rHrrrrJ�szVarTraceTest.tearDownClasscCs|j��d|_dS)Nr)rrr6)r#rrrrK�s
zVarTraceTest.setUpcGs|jd7_dS)N�
)r6)r#�paramsrrr�var_changed_increment�sz"VarTraceTest.var_changed_incrementcGsdS)Nr)r#r7rrr�var_changed_boolean�sz VarTraceTest.var_changed_booleancCs.|j}|��|�|jg�|�|jg�dS)N)r�__init__r5�untraced�traced)r#�trrrr�	test_init�szVarTraceTest.test_initcCsF|j}|j�d�|j�d�|��|�|jg�|�|jg�dS)Nrr4)rr;r.r<rr5)r#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)N)r�)rr�r�)rrrr*�
make_callback�addr4r8ZassertIsr5r9rrr.Zassert_called_withr5r<r;)	r#r=�func�cbr4r5ZsvZsv2rqrrr�test_add�s$
zVarTraceTest.test_addcCst|j�|jd�}|�t|��|j�d�|�dtd�|�|�dtd�|�	tdddd�t�
�dS)N)rr�r��*r�rr�Z42)rr@r4r?�callablerNr�rr\r5r)r#rCrrr�test_make_callback�s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)Nr4r6r)rrAr4r8r5r9rTr5r;ZassertCountEqualr<rNrRr6r)r#r=r4r5rqrrr�test_attach_detach�s*


zVarTraceTest.test_attach_detachN)r&r'r(rxrIrJrKr8r9r>r?rDrGrHrrrrr3�sr3�__main__rV)�	verbosity),rwZidlelibrZtest.supportrZunittestrZidlelib.idle_test.mock_idlerZtkinterrrrr	r
rrZidlelib.configdialogr
rrrrZIdleUserConfParserrrrrpr�r<r�rr!ZTestCaser"r)rCryr�r�r
r3r&rrrrr�<module>sR 	+oh


?>