o
    JAf0Ø  ã                   @   s¸  d Z ddlmZ ddlmZ edƒ ddlZddlmZ ddlmZ ddl	m
Z
mZmZmZmZmZ dd	lmZ dd
lmZmZmZ ejZe d¡e d¡e d¡e d¡dœZdadaed Zed Zed Zed Zdd„ Zdd„ Z G dd„ dej!ƒZ"G dd„ dej!ƒZ#G dd„ dej!ƒZ$G dd„ dej!ƒZ%G dd„ dej!ƒZ&G dd „ d ej!ƒZ'G d!d"„ d"ej!ƒZ(G d#d$„ d$ej!ƒZ)G d%d&„ d&ej!ƒZ*G d'd(„ d(ej!ƒZ+e,d)krÚej-d*d+ dS dS ),zfTest configdialog, coverage 94%.

Half the class creates dialog, half works with user customizations.
é    )Úconfigdialog)ÚrequiresZguiN)Úmock)ÚFunc)ÚTkÚ	StringVarÚIntVarÚ
BooleanVarÚDISABLEDÚNORMAL)Úconfig)ÚidleConfÚchangesÚtracersÚ )ÚmainÚ	highlightÚkeysÚ
extensionsr   r   r   r   c                   C   s    t t_tƒ atjtdddad S )NZTestT)Z_utest)Útestcfgr   ÚuserCfgr   Úrootr   ZConfigDialogÚdialog© r   r   ú:/usr/lib/python3.10/idlelib/idle_test/test_configdialog.pyÚsetUpModule"   s   r   c                   C   s:   t t_t ¡  t ¡  t ¡  t ¡  t 	¡  d  aa
d S ©N)Úusercfgr   r   r   ÚdetachÚclearr   r   Úupdate_idletasksÚdestroyr   r   r   r   r   ÚtearDownModule*   s   r"   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚConfigDialogTestc                 C   ó   d S r   r   ©Úselfr   r   r   Útest_deactivate_current_config7   ó   z/ConfigDialogTest.test_deactivate_current_configc                 C   r$   r   r   r%   r   r   r   Úactivate_config_changes:   r(   z(ConfigDialogTest.activate_config_changesN)Ú__name__Ú
__module__Ú__qualname__r'   r)   r   r   r   r   r#   5   s    r#   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú
ButtonTestc                 C   sJ   t }t ¡  }|_t ¡  }|_|jd  ¡  | ¡  | ¡  |`|`d S )NZOk)r   r   ÚMockÚapplyr!   ÚbuttonsÚinvokeÚassert_called_once)r&   Údr/   r!   r   r   r   Útest_click_ok@   s   zButtonTest.test_click_okc                 C   sh   t }t ¡  }|_t ¡  }|j_t ¡  }|_|jd  ¡  | 	¡  | 	¡  | 	¡  |j`|`|`d S )NZApply)
r   r   r.   Údeactivate_current_configÚextpageZsave_all_changed_extensionsr)   r0   r1   r2   )r&   r3   Z
deactivateZsave_extÚactivater   r   r   Útest_click_applyI   s   zButtonTest.test_click_applyc                 C   sN   t }tƒ |_dtd d< |jd  ¡  |  td i ¡ |  |jjd¡ |`d S )Né   r   Z	somethingZCancel)r   r   r!   r   r0   r1   ÚassertEqualÚcalled©r&   r3   r   r   r   Útest_click_cancelU   s   zButtonTest.test_click_cancelc                 C   sŽ   t j t j¡ tjjtdtd}t j	d  
¡  |jd |jd }}W d   ƒ n1 s-w   Y  |  |d¡ |  | d¡oC| d¡¡ d S )	NZ	view_text)Znew_callableZHelpÚtitleÚcontentszHelp for IDLE preferenceszWhen you clickza different name.
)r   ÚnoteÚselectÚkeyspager   ZpatchÚobjectr   r   r0   r1   Úkwdsr:   Ú
assertTrueÚ
startswithÚendswith)r&   Úviewr>   r?   r   r   r   Útest_click_help^   s   
ÿýÿzButtonTest.test_click_helpN)r*   r+   r,   r4   r8   r=   rI   r   r   r   r   r-   >   s
    		r-   c                   @   óh   e Zd ZdZedd„ ƒZedd„ ƒZdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )Ú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.
    c                 C   s,   t j }| _t j |¡ tƒ |_| ¡  d S r   )r   ZfontpageÚpager@   rA   r   Úset_samplesÚupdate©ÚclsrL   r   r   r   Ú
setUpClassp   ó   zFontPageTest.setUpClassc                 C   s
   | j `d S r   )rL   rM   ©rP   r   r   r   ÚtearDownClassw   s   
zFontPageTest.tearDownClassc                 C   ó   t  ¡  d S r   ©r   r   r%   r   r   r   ÚsetUp{   ó   zFontPageTest.setUpc                 C   s’   t  ¡  | j}|j d¡ |j d¡ |j d¡ d|j_| 	¡  |  
|j ¡ d¡ |  
|j ¡ d¡ |  |j ¡ ¡ |  |jjd¡ t  ¡  d S )NZFakeÚ1Tr   r9   )r   r   rL   Ú	font_nameÚsetÚ	font_sizeÚ	font_boldrM   r;   Zload_font_cfgÚassertNotEqualÚgetÚassertFalser:   Úattachr<   r   r   r   Útest_load_font_cfg~   s   zFontPageTest.test_load_font_cfgc                 C   sÞ   | j }|j ¡ dk r|  d¡ |j}| d¡ |j d¡}| ¡  | ¡  | d¡ | d¡ | d¡}|  	||¡ |  
|j ¡ | ¡ ¡ | ¡  | ¡  | d¡ | d¡ | d¡}|  ||¡ |  
|j ¡ | ¡ ¡ d S )	Né   úneed at least 2 fontsr   Zactivez
<Key-Down>z<KeyRelease-Down>z<Key-Up>z<KeyRelease-Up>)rL   ÚfontlistÚsizeÚskipTestr7   r_   Úfocus_forcerN   Úevent_generater^   ÚassertInrZ   Úlowerr:   )r&   r3   re   ÚfontZ	down_fontZup_fontr   r   r   Útest_fontlist_keyŽ   s(   







zFontPageTest.test_fontlist_keyc           	      C   sÌ   | j }|j ¡ dk r|  d¡ |j}| d¡ | ¡  | d¡ | ¡  | d¡\}}}}||d 7 }||d 7 }|j	d||d |j	d||d | 
d¡}| 
d¡}|  ||¡ |  |j 
¡ | ¡ ¡ d S )	Nrc   rd   r   r9   ú
<Button-1>©ÚxÚyú<ButtonRelease-1>Úanchor)rL   re   rf   rg   r7   rh   ÚseerN   Úbboxri   r_   r:   rj   rZ   rk   )	r&   r3   re   rp   rq   ÚdxÚdyZfont1Zselect_fontr   r   r   Útest_fontlist_mouse«   s"   




z FontPageTest.test_fontlist_mousec                 C   s*   | j }|jj d¡ |  |j ¡ d¡ d S )Né(   Ú40)rL   ZsizelistÚvariabler[   r:   r\   r_   r<   r   r   r   Útest_sizelistÂ   s   zFontPageTest.test_sizelistc                 C   sJ   | j }|j d¡ |j ¡  |  |j ¡ ¡ |j ¡  |  |j ¡ ¡ d S )NF)rL   r]   r[   Zbold_toggler1   rE   r_   r`   r<   r   r   r   Útest_bold_toggleÈ   s   

zFontPageTest.test_bold_togglec                 C   s  t  tdd¡}t|d ƒ}|d dk}| j}|j |¡ |j |¡ d|j_	|j
 d¡ dd|t|ƒdœi}|  t|¡ |  |jj	d¡ t ¡  |j d	¡ ddd	t|ƒdœi}|  t|¡ |  |jj	d¡ t ¡  |j | ¡ ddd	t| ƒdœi}|  t|¡ |  |jj	d
¡ d S )Nr   ÚEditorWindowr9   rc   Úboldr   z	Test Font)rl   z	font-sizez	font-boldZ20é   )r   ZGetFontr   ÚstrrL   r\   r[   r]   rM   r;   rZ   r:   Úmainpager   r   )r&   Zdefault_fontZdefault_sizeZdefault_boldr3   Úexpectedr   r   r   Útest_font_setÑ   s<   þþþzFontPageTest.test_font_setc                 C   s’   | j }|`|j|jf}i i |_|_|j d¡ |j d¡ |j d¡ ddi}| ¡  |  |j|j  ko9|kn  ¡ |\|_|_t	ƒ |_d S )NÚtestÚ5r9   rl   )r…   r†   r   )
rL   rM   Zfont_sampleÚhighlight_samplerZ   r[   r\   r]   rE   r   )r&   r3   Zorig_samplesrƒ   r   r   r   Útest_set_samplesõ   s   "zFontPageTest.test_set_samplesN)r*   r+   r,   Ú__doc__ÚclassmethodrQ   rT   rW   rb   rm   rx   r|   r}   r„   rˆ   r   r   r   r   rK   i   s    

	$rK   c                   @   sÐ   e Zd ZdZedd„ ƒZedd„ ƒZdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0S )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.
    c                 C   sD   t j }| _t j |¡ tƒ |_tƒ |_tƒ |_tƒ |_	| 
¡  d S r   )r   ÚhighpagerL   r@   rA   r   Úset_theme_typeÚpaint_theme_sampleÚset_highlight_targetÚset_color_samplerN   rO   r   r   r   rQ     s   zHighPageTest.setUpClassc                 C   s   | j }|`|`|`|`d S r   )rL   r   rŽ   r   r   )rP   r3   r   r   r   rT     s   zHighPageTest.tearDownClassc                 C   sT   | j }t dd¡D ]
}tjd  |¡ q	t ¡  d|j_d|j	_d|j
_d|j_d S )NÚuserr   r   )rL   r   ÚGetSectionListr   Úremove_sectionr   r   r   r;   rŽ   r   r   ©r&   r3   Úsectionr   r   r   rW     s   zHighPageTest.setUpc                 C   s–  t  ¡  | j}| j}tjddt_| ¡  |  	|j
 ¡ ¡ ||j ¡ dƒ ||j ¡ dƒ ||j ¡ dƒ ||jjdƒ ||jjdƒ ||jjdƒ t dddd	¡ t dd
dd¡ | ¡  ||j ¡ dƒ ||j ¡ dƒ ||jjdƒ ||jjdƒ ||jjdƒ tjd
dt_t dddd¡ | ¡  |  |j
 ¡ ¡ ||j ¡ dƒ ||j ¡ d
ƒ ||jjdƒ ||jjdƒ ||jjdƒ t`t  ¡  d S )NúIDLE Classic©Zreturn_valueú- no custom themes -©Údisabledr9   r   Útest1ÚoptionÚvalueÚtest2Úoption2Úvalue2rc   r   ÚThemeÚdefaultÚ0r€   )r   r   rL   r:   r   r.   r   ZCurrentThemeZload_theme_cfgrE   Útheme_sourcer_   Úbuiltin_nameÚcustom_nameÚcustom_theme_onÚstater   r;   rŽ   r   Ú	SetOptionr`   ra   ©r&   r3   Úeqr   r   r   Útest_load_theme_cfg*  s>   z HighPageTest.test_load_theme_cfgc                 C   ó®   | j }| j}tƒ |_tƒ |_|j ¡  |tdddiiƒ ||jjdƒ ||jjdƒ t	 
¡  |j d¡ |j ¡  |   tdddii¡ ||jjdƒ ||jjdƒ |`|`d S )Nr¡   r¢   ÚTruer9   r   ©z	!disabledÚFalse)r:   rL   r   Úvar_changed_builtin_nameÚvar_changed_custom_nameZbuiltin_theme_onr1   r‚   r;   r   r   r§   r¨   ©r&   r«   r3   r   r   r   Útest_theme_sourceS  ó   

zHighPageTest.test_theme_sourcec                 C   s  | j }| j}g d¢}t dddd¡ |j |d¡ |tddddœiƒ ||jd	 d
ƒ ||jj	dƒ t
 ¡  t dddd¡ |j |d¡ |tdddiiƒ ||jd	 d
ƒ ||jj	dƒ t
 ¡  |j |d¡ |tddddœiƒ ||jd	 dƒ ||jj	dƒ d S )N)r–   ú	IDLE DarkúIDLE Newr   r¡   ÚnameÚspamr¶   r–   ©r¸   Úname2ÚtextzNew theme, see Helpr9   r·   r»   rc   r   r€   )r:   rL   r   r©   ÚbuiltinlistÚSetMenur‚   Ztheme_messagerŽ   r;   r   r   ©r&   r«   r3   Z	item_listr   r   r   Útest_builtin_nameh  s*   
ÿzHighPageTest.test_builtin_namec                 C   ór   | j }|j g d¡ |  dt¡ |  |jjd¡ t 	¡  |j g d¢d¡ |  tdddii¡ |  |jjd¡ d S )Nr˜   r¡   r   ©ÚaÚbÚcrÅ   r¸   r9   )
rL   Ú
customlistr¾   ÚassertNotInr‚   r:   rŽ   r;   r   r   r<   r   r   r   Útest_custom_name„  ó   zHighPageTest.test_custom_namec                 C   s2   | j }tƒ |_|j d¡ |  |jjd¡ |`d S )NZgreenr9   )rL   r   Zon_new_color_setÚcolorr[   r:   r;   r<   r   r   r   Ú
test_color’  s
   zHighPageTest.test_colorc                 C   s@   | j }| j}|j g d¢d¡ ||j ¡ dƒ ||jjdƒ d S )NrÂ   rÅ   r9   )r:   rL   Z
targetlistr¾   Úhighlight_targetr_   r   r;   r³   r   r   r   Ú test_highlight_target_list_mouseš  s
   z-HighPageTest.test_highlight_target_list_mousec                    s²   | j }| j‰ i }d}ˆ j‰ˆ ¡  ˆ d¡ ˆ ¡  ‡ fdd„}‡fdd„}||ƒ ˆ ¡ D ](}ˆ |¡dd d… D ]}|d7 }||ƒ |ˆ j 	¡ || ƒ |ˆ j
j|ƒ q:q.d S )	Nr   ç      ð?c                    s$   ˆ j  ¡ D ]
\}}|| |d < qd S ©Nr   )Ztheme_elementsÚitems)ÚelemÚelementÚtag)r3   r   r   Útag_to_element¯  s   ÿzEHighPageTest.test_highlight_target_text_mouse.<locals>.tag_to_elementc                    sn   ˆ   | ¡\}}}}||d 7 }||d 7 }ˆ jdddd ˆ jd||d ˆ jd||d ˆ jd||d d S )Nrc   ú<Enter>r   ro   ú<Motion>ú<ButtonPress-1>rr   )ru   ri   )Ústartrp   rq   rv   rw   )Úhsr   r   Úclick_it³  s   z?HighPageTest.test_highlight_target_text_mouse.<locals>.click_itrc   r9   )r:   rL   r‡   rh   rt   r    Z	tag_namesÚ
tag_rangesrÌ   r_   r   r;   )r&   r«   rÑ   ÚcountrÔ   rÚ   rÓ   Ústart_indexr   )r3   rÙ   r   Ú test_highlight_target_text_mouse£  s&   

üÿz-HighPageTest.test_highlight_target_text_mousec                 C   sŽ   | j }| j}|j}| ¡  | d¡ | ¡  |jdddd |jdddd tdƒD ]}|jdddd |jdddd q*|| d	¡d
ƒ d S )NrÎ   rÕ   r   ro   rÖ   rc   r×   rr   Úselr   )	r:   rL   r‡   rh   rt   r    ri   ÚrangerÛ   )r&   r«   r3   rÙ   Ú_r   r   r   Ú"test_highlight_sample_double_clickÈ  s   
z/HighPageTest.test_highlight_sample_double_clickc           	      C   s¨   | j }| j}|j}| ¡  | d¡ | ¡  | d¡\}}}}}| d¡ | d¡ |jd||d |jd||d |jd||d |jd	||d || d
¡dƒ d S )NrÎ   z1.0z<Leave>rÕ   rÖ   ro   r×   z<B1-Motion>rr   rß   r   )	r:   rL   r‡   rh   rt   r    Z	dlineinfori   rÛ   )	r&   r«   r3   rÙ   rp   rq   rv   rw   Úoffsetr   r   r   Útest_highlight_sample_b1_motionÜ  s   


z,HighPageTest.test_highlight_sample_b1_motionc                 C   ó´   | j }| j}|`|j d¡ | ¡  ||jd tƒ ||jd tƒ ||j	 
¡ dƒ |j d¡ | ¡  ||jd tƒ ||j 
¡ dƒ ||jd tƒ ||j	 
¡ dƒ tƒ |_d S ©NTr¨   r™   F©Úselectedr   )r:   rL   r   r¤   r[   r½   r   rÆ   r
   Úbutton_delete_customr¨   r§   r   r³   r   r   r   Útest_set_theme_typeò  ó   z HighPageTest.test_set_theme_typec                 C   sX  | j }| j}tjj}tƒ  }tj_tƒ  }|_|j d¡ |j	 d¡ d|_
|j ¡  ||j	 ¡ dƒ d|j |jd d¡f|_
|j ¡  ||j	 ¡ dƒ d|_
|j	 d¡ |j d¡ d|_
|j ¡  ||jd	ƒ ||j	 ¡ dƒ d
|_
|j ¡  ||j ¡ |j
ƒ ||j	 ¡ dƒ |j	 d¡ |j d¡ |j ¡  ||j	 ¡ dƒ |`|tj_d S )NzEditor Breakpointz#ffffff)NNr   ÚstyleÚ
background))g    ÀÛk@ç        rî   ú#de0000Tr9   zMy New Themerï   F)r:   rL   r   ZcolorchooserZaskcolorr   Úget_new_theme_namerÌ   r[   rÊ   ÚresultZbutton_set_colorr1   r_   rì   ÚlookupÚframe_color_setr¤   r;   r¦   )r&   r«   r3   Zorig_chooserZchooserÚgntnr   r   r   Útest_get_color  s<   




zHighPageTest.test_get_colorc                 C   s„   | j }d}|j d¡ |j d¡ |j d¡ |j |¡ |  |j |j	d d¡|¡ |  |j
 dd¡|¡ |  tdd	|ii¡ d S )
Nz#3f7caeÚPythonúSelected TextTrì   rí   ÚhiliteÚ
foregroundzhilite-foreground)rL   r¦   r[   rÌ   Úfg_bg_togglerÊ   r:   rì   rò   ró   r‡   Útag_cgetrŒ   )r&   r3   rÊ   r   r   r   Útest_on_new_color_set6  s   
ÿz"HighPageTest.test_on_new_color_setc                 C   ó>   t j}tdd }t _| j}d|_|  | d¡d¡ |t _d S )NT©Zreturn_selfz	New Themer   )r   ÚSectionNamer   rL   rñ   r:   rð   ©r&   Zorig_sectionnameZsnr3   r   r   r   Útest_get_new_theme_nameC  ó   
z$HighPageTest.test_get_new_theme_namec                 C   sˆ   | j }tƒ  }|_|j d¡ d|_|j ¡  |  |jt	j
d ¡ d|_d|_|  |jt	j
d ¡ |j ¡  |  |jt	j
d ¡ |`d S )NTr   r   zmy new themer   )rL   r   rð   r¤   r[   rñ   Zbutton_save_customr1   rÇ   r   r   r;   rj   )r&   r3   rô   r   r   r   Útest_save_as_new_themeM  s   

z#HighPageTest.test_save_as_new_themec                 C   s(  | j }| j}|j d¡ |j d¡ d}d}|  |tj¡ | |¡ |t 	dd¡|gƒ |t 
dd¡t 
d|¡ƒ ||j ¡ |ƒ |  |j ¡ ¡ ||jjdƒ t d|d	d
¡ |  |tj¡ | |¡ |t 	dd¡||gƒ |  t 
d|¡t 
d|¡¡ t d|d	d
¡ |t 
d|¡t 
d|¡ƒ d S )NTr–   zmy new custom themezmy second custom themer‘   r   r¢   r9   zhit-backgroundÚyellow)r:   rL   r¤   r[   r¥   rÇ   r   r   Ú
create_newr’   ZGetThemeDictr¦   r_   r`   r   r;   r   Ú
add_optionr^   r©   ©r&   r«   r3   Z	first_newZ
second_newr   r   r   Útest_create_new_and_save_new`  s4   

ÿ

ÿ
ÿz)HighPageTest.test_create_new_and_save_newc                 C   s¨   | j }| j}|`|j d¡ ||j ¡ dƒ ||j ¡ dƒ |  |j	¡ ||j
jdƒ |j d¡ ||j ¡ dƒ ||j ¡ dƒ |  |j	¡ ||j
jdƒ tƒ |_d S )	NZCursor)rš   rè   r™   r9   ÚCommentrç   r   rc   )r:   rL   r   rÌ   r[   Úfg_onr¨   Úbg_onrE   rú   r   r;   r   r³   r   r   r   Útest_set_highlight_target€  s   z&HighPageTest.test_set_highlight_targetc                 C   s@   | j }|j}|j ¡  |  |jd¡ |j ¡  |  |jd¡ d S )Nr9   rc   )rL   r   r
  r1   r:   r;   r  )r&   r3   Zscsr   r   r   Útest_set_color_sample_binding•  s   

z*HighPageTest.test_set_color_sample_bindingc                 C   s\   | j }|`|j d¡ |j d¡ | ¡  |  |j |jd d¡|j	 
dd¡¡ tƒ |_d S )Nr÷   Trì   rí   rø   rù   )rL   r   rÌ   r[   rú   r:   rì   rò   ró   r‡   rû   r   r<   r   r   r   Útest_set_color_sampleŸ  s   þz"HighPageTest.test_set_color_samplec           	      C   sú   | j }| j}|`|jj}tj}|j d¡ |j	 d¡ d}| 
|¡ d|j_| ¡  dddœ}| ¡ D ]\}}|  |d|ƒ|¡ q3||jjd	ƒ | ¡ D ]\}}t d
|d| |¡ qL| ¡  | ¡ D ]\}}||d|ƒ|ƒ qc||jjdƒ tƒ |_d S )NTr¶   z	IDLE Testr   Zbluer  )rù   rí   Zconsoler9   r   zconsole-rc   )r:   rL   rŽ   r‡   rû   r   ZGetHighlightr¤   r[   r¥   r  r   r;   rÐ   r^   r   r  r   )	r&   r«   rL   Zhs_tagZghZthemeZnew_consoleÚkeyr   r   r   r   Útest_paint_theme_sampleª  s0   
ÿz$HighPageTest.test_paint_theme_samplec                 C   ó2  | j }| j}|j d¡ tƒ  }|_tƒ t_tƒ t_d}t	j
d  |dd¡ ddit|< d}t	j
d  |dd¡ dd	it|< |j d¡ |j ¡  |j |¡ d
|_|j ¡  ||jdƒ |t| ddiƒ |t	 dd¡||gƒ |tjjdƒ |tjjdƒ ||jjdƒ d|_|j ¡  ||jdƒ |  |t¡ |t	 dd¡|gƒ ||j ¡ dƒ ||j ¡ |ƒ |tjjdƒ |tjjdƒ ||jjdƒ |j |¡ d|_|j ¡  ||jdƒ |  |t¡ |t	 dd¡g ƒ ||j ¡ dƒ ||j ¡ dƒ |tjjdƒ |tjjdƒ ||jjdƒ t`t`|`d S )Nr¯   z
spam themer   r¸   r   rœ   r®   zother themer°   Fr9   r‘   r   Trc   r   r€   r™   r˜   )r:   rL   ré   r¨   r   Úaskyesnor   r5   r)   r   r   r©   rŒ   r§   r1   r¦   r[   rñ   r;   r’   r   rÇ   r_   )r&   r«   r3   ÚyesnoZ
theme_nameZtheme_name2r   r   r   Útest_delete_customÊ  ó\   



zHighPageTest.test_delete_customN)r*   r+   r,   r‰   rŠ   rQ   rT   rW   r¬   r´   rÀ   rÈ   rË   rÍ   rÞ   râ   rä   rê   rõ   rü   r  r  r  r  r  r  r  r  r   r   r   r   r‹     s6    
	
)	%/
 
 r‹   c                   @   s˜   e Zd ZdZedd„ ƒZedd„ ƒZdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"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.
    c                 C   s,   t j }| _t j |¡ tƒ |_tƒ |_d S r   )r   rB   rL   r@   rA   r   Úset_keys_typeÚload_keys_listrO   r   r   r   rQ     rR   zKeysPageTest.setUpClassc                 C   s   | j }|`|`d S r   )rL   r  r  rO   r   r   r   rT     s   zKeysPageTest.tearDownClassc                 C   sD   | j }t dd¡D ]
}tjd  |¡ q	t ¡  d|j_d|j	_d S )Nr‘   r   r   )
rL   r   r’   r   r“   r   r   r  r;   r  r”   r   r   r   rW     s   zKeysPageTest.setUpc                 C   s¨  t  ¡  | j}| j}tjddt_| ¡  |  	|j
 ¡ ¡ ||j ¡ dƒ ||j ¡ dƒ ||j ¡ dƒ ||jjdƒ ||jjdƒ ||jjdƒ t ddd	d
¡ t dddd¡ | ¡  ||j ¡ dƒ ||j ¡ dƒ ||jjdƒ ||jjdƒ ||jjdƒ tjddt_tjddt_t dddd¡ | ¡  |  |j
 ¡ ¡ ||j ¡ dƒ ||j ¡ dƒ ||jjdƒ ||jjdƒ ||jjdƒ t`t`t  ¡  d S )NúIDLE Classic OSXr—   ú- no custom keys -r™   r9   ©r  r   r›   rœ   r   rž   rŸ   r    rc   zIDLE Modern Unixr   ÚKeysr¢   r£   r€   )rž   )r   r   rL   r:   r   r.   r   ZCurrentKeysZload_key_cfgrE   Úkeyset_sourcer_   r¥   r¦   Úcustom_keyset_onr¨   r  r;   r  Úargsr©   Zdefault_keysr`   ra   rª   r   r   r   Útest_load_key_cfg#  s@   zKeysPageTest.test_load_key_cfgc                 C   r­   )Nr  r¢   r®   r9   r   r¯   r°   )r:   rL   r   r±   r²   Zbuiltin_keyset_onr1   r‚   r;   r   r   r  r¨   r³   r   r   r   Útest_keyset_sourceM  rµ   zKeysPageTest.test_keyset_sourcec                 C   s0  | j }| j}tjd  d¡ g d¢}|j |d¡ |tddddœiƒ ||jd dƒ ||j	j
d	ƒ ||j	jd
ƒ t ¡  t dddd¡ |j |d¡ |tdddiiƒ ||jd dƒ ||j	j
dƒ ||j	jd
ƒ t ¡  |j |d¡ |tddddœiƒ ||jd dƒ ||j	j
dƒ ||j	jdƒ d S )Nr   r  )úIDLE Classic Windowsr  úIDLE Modern UNIXr#  r"  rº   r¼   zNew key set, see Helpr9   )r#  r¸   zIDLE Classic Unixr»   rc   r  r   r€   r  )r:   rL   r   r   r“   r½   r¾   r‚   Zkeys_messager  r;   r  r   r   r©   r¿   r   r   r   rÀ   b  s0   
ÿzKeysPageTest.test_builtin_namec                 C   rÁ   )Nr  r  r   rÂ   rÅ   r¸   r9   )
rL   rÆ   r¾   rÇ   r‚   r:   r  r;   r   r   r<   r   r   r   rÈ   ‚  rÉ   zKeysPageTest.test_custom_namec                 C   sÀ   t  dddd¡ | j}|j d¡ |j dd¡ |j dd¡ |j d	d
¡ |j d¡ |j 	d¡ |j
 d¡ |  tdddii¡ |j d	¡ |j 	d	¡ |j
 d¡ |  tdd
dii¡ d S )Nr   ZZzDummyÚenabler®   zmy custom keysr   ÚendÚcopyr9   zz-inú	<Key-F11>ZZzDummy_cfgBindings)r   r©   rL   r¦   r[   ÚbindingslistÚdeleteÚinsertÚselection_setÚselection_anchorÚ
keybindingr:   rB   r6   r<   r   r   r   Útest_keybinding  s$   
ÿ
ÿzKeysPageTest.test_keybindingc                 C   rå   ræ   )r:   rL   r  r  r[   r½   r   rÆ   r
   Úbutton_delete_custom_keysr¨   r  r   r³   r   r   r   Útest_set_keys_type¥  rë   zKeysPageTest.test_set_keys_typec                 C   sŽ  | j }| j}tj}tdd }t_tƒ  }|_|j d¡ |j 	dd¡ |j 
dd¡ |j d¡ |j d¡ |j d¡ |j d¡ d|_|j ¡  ||j d	¡dƒ ||j ¡ dƒ d
|_d|_|j ¡  ||jdƒ ||j d	¡dƒ d|_|j ¡  ||j ¡ |jƒ ||j d	¡dƒ ||j ¡ d
ƒ |j d¡ d|_d|_|j ¡  ||jdƒ ||j d	¡dƒ ||j ¡ dƒ |`|t_d S )NTrþ   r¯   r   r%  zcopy - <Control-Shift-Key-C>zKey-ar   rs   r'  r9   zMy New Key Setzcopy - <Key-F11>Fz<Key-p>zcopy - <Key-p>)r:   rL   r   ZGetKeysWindowr   Úget_new_keys_nameÚbutton_new_keysr¨   r(  r)  r*  r+  r,  r-  r[   r  rñ   r1   r_   r;   r¦   )r&   r«   r3   Zorig_getkeysdialogZgkdÚgnknr   r   r   Útest_get_new_keysº  sF   




zKeysPageTest.test_get_new_keysc                 C   rý   )NTrþ   zNew Keysr   )r   rÿ   r   rL   rñ   r:   r1  r   r   r   r   Útest_get_new_keys_nameê  r  z#KeysPageTest.test_get_new_keys_namec                 C   st   | j }tƒ  }|_|j d¡ d|_|j ¡  d|_d|_|  	|jt
jd ¡ |j ¡  |  |jt
jd ¡ |`d S )NTr   zmy new key setr   r   )rL   r   r1  r  r[   rñ   Zbutton_save_custom_keysr1   r;   rÇ   r   r   rj   )r&   r3   r3  r   r   r   Útest_save_as_new_key_setô  s   

z%KeysPageTest.test_save_as_new_key_setc                 C   sæ   | j }|j}| dd¡ | dd¡ | dd¡ | d¡ | ¡  | d¡ | ¡  | d¡\}}}}||d 7 }||d 7 }|j	dddd |j	d	||d |j	d
||d |j	d||d |  
| d¡d¡ |  
|j ¡ d¡ d S )Nr   r%  r&  r9   Úfindrc   rÕ   ro   rÖ   rn   rr   rs   r   )rL   r(  r)  r*  r7   rh   rt   rN   ru   ri   r:   r_   r2  r¨   )r&   r3   rÄ   rp   rq   rv   rw   r   r   r   Útest_on_bindingslist_select  s$   

z(KeysPageTest.test_on_bindingslist_selectc                 C   s  | j }| j}|j d¡ |j d¡ d}d}|  |tj¡ | |¡ |t 	dd¡|gƒ |t 
d¡t 
|¡ƒ ||j ¡ |ƒ |  |j ¡ ¡ ||jjdƒ t d|dd	¡ |  |tj¡ | |¡ |t 	dd¡||gƒ |  t 
|¡t 
|¡¡ t d|dd	¡ |t 
|¡t 
|¡ƒ d S )
NTr"  zmy new custom key setzmy second custom keysetr‘   r   r9   r&  r'  )r:   rL   r  r[   r¥   rÇ   r   r   Zcreate_new_key_setr’   Ú	GetKeySetr¦   r_   r`   r  r;   r   r  r^   r©   r  r   r   r   Ú,test_create_new_key_set_and_save_new_key_set  s0   

ÿ
ÿz9KeysPageTest.test_create_new_key_set_and_save_new_key_setc                 C   sV  | j }| j}tƒ  }t_|`|j}| dd¡ | dd¡ | dd¡ ddgdgd	gd
œ|_	t
 dddd¡ d}| d¡ || dd¡|ƒ || d¡dƒ || ¡ dƒ | d¡ | d¡ | d¡ || dd¡|ƒ || d¡dƒ || ¡ dƒ | d¡ | d¡ | d¡ || dd¡|ƒ || d¡dƒ || ¡ dƒ tƒ |_t`d S )Nr   r%  z<<find>>r9   z<<help>>z<Control-Key-c>z<Control-Key-C>z<Control-Key-space>r'  )z<<copy>>z<<force-open-completions>>z<<spam>>r   zmy keysr¹   z<Shift-Key-a>)z&copy - <Control-Key-c> <Control-Key-C>ú,force-open-completions - <Control-Key-space>úspam - <Shift-Key-a>rs   r   r   r;  )r9   rc   r<  )rc   )r:   rL   r   r   r9  r  r(  r)  r*  rñ   r   r  r_   Zcurselectionr+  r,  )r&   r«   r3   ZgksrÄ   rƒ   r   r   r   Útest_load_keys_list:  s@   þ






z KeysPageTest.test_load_keys_listc                 C   r  )Nr¯   zspam key setr   r¸   r   rœ   r®   zother key setr°   Fr9   r‘   r   Trc   r   r€   r™   r  )r:   rL   r/  r¨   r   r  r   r5   r)   r   r   r©   rB   r  r1   r¦   r[   rñ   r;   r’   r  rÇ   r_   )r&   r«   r3   r  Zkeyset_nameZkeyset_name2r   r   r   Útest_delete_custom_keyse  r  z$KeysPageTest.test_delete_custom_keysN)r*   r+   r,   r‰   rŠ   rQ   rT   rW   r   r!  rÀ   rÈ   r.  r0  r4  r5  r6  r8  r:  r=  r>  r   r   r   r   r    s(    


* 0
+r  c                   @   sd   e Zd ZdZedd„ ƒZdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚWinPageTestz•Test that general tab widgets enable users to make changes.

    Test that widget actions set vars, that var changes add
    options to changes.
    c                 C   ó$   t j }| _t j |¡ | ¡  d S r   )r   ZwinpagerL   r@   rA   rN   rO   r   r   r   rQ   §  ó   zWinPageTest.setUpClassc                 C   rU   r   rV   r%   r   r   r   rW   ­  rX   zWinPageTest.setUpc                 C   sl   | j }| j}|j d¡ |j d¡ |j d¡ | ¡  ||j ¡ dƒ ||j ¡ dƒ ||j ¡ dƒ d S )Nr9   r   Z80rz   )r:   rL   Zstartup_editr[   Z	win_widthZ
win_heightZload_windows_cfgr_   r³   r   r   r   Útest_load_windows_cfg°  s   z!WinPageTest.test_load_windows_cfgc                 C   sN   | j }|j ¡  |  tdddii¡ t ¡  |j ¡  |  tdddii¡ d S )NÚGeneralzeditor-on-startuprY   r£   )rL   Zstartup_editor_onr1   r:   r‚   r   r   Zstartup_shell_onr<   r   r   r   Útest_startup¼  s   

ÿ

ÿzWinPageTest.test_startupc                 C   sr   | j }|j dd¡ |j dd¡ |  tdddii¡ t ¡  |j dd¡ |j dd¡ |  tdddii¡ d S )Nr   r%  Ú11r~   ZheightÚwidth)	rL   Zwin_height_intr)  r*  r:   r‚   r   r   Zwin_width_intr<   r   r   r   Útest_editor_sizeÆ  s   zWinPageTest.test_editor_sizec                 C   s<   | j }|j d¡ |  |j ¡ d¡ |  tdddii¡ d S )Né   Ú6ZIndentz
num-spaces)rL   Zindent_chooserr[   r:   Zindent_spacesr_   r‚   r<   r   r   r   Útest_indent_spacesÐ  s   zWinPageTest.test_indent_spacesc                 C   s$   | j j ¡  |  tdddii¡ d S )Nr~   zcursor-blinkr°   )rL   Zcursor_blink_boolr1   r:   r‚   r%   r   r   r   Útest_cursor_blinkÖ  s   zWinPageTest.test_cursor_blinkc                 C   ó8   | j j dd¡ | j j dd¡ |  tdddii¡ d S )Nr   r%  rE  ZAutoCompleteZ	popupwait)rL   Zauto_wait_intr)  r*  r:   r6   r%   r   r   r   Útest_autocomplete_waitÚ  ó   z"WinPageTest.test_autocomplete_waitc                 C   sŒ   | j }| j}|jd  d¡ |tdddiiƒ t ¡  |j dd¡ |j 	dd¡ |tdddiiƒ t ¡  |j
 ¡  |tdd	d
iiƒ d S )NZmenur   Z
ParenMatchrì   Úopenerr%  rE  zflash-delayZbellr°   )rL   r:   Zparen_style_typer1   r6   r   r   Zparen_flash_timer)  r*  Zbell_onrª   r   r   r   Útest_parenmatchß  s   
zWinPageTest.test_parenmatchc                 C   rL  )Nr   r%  rE  ZFormatParagraphz	max-width)rL   Zformat_width_intr)  r*  r:   r6   r%   r   r   r   Útest_paragraphì  rN  zWinPageTest.test_paragraphN)r*   r+   r,   r‰   rŠ   rQ   rW   rB  rD  rG  rJ  rK  rM  rP  rQ  r   r   r   r   r?  ¡  s    


r?  c                   @   s<   e Zd ZdZedd„ ƒZdd„ Zdd„ Zdd	„ Zd
d„ Z	dS )ÚShedPageTestz’Test that shed tab widgets enable users to make changes.

    Test that widget actions set vars, that var changes add
    options to changes.
    c                 C   r@  r   )r   ZshedpagerL   r@   rA   rN   rO   r   r   r   rQ   ø  rA  zShedPageTest.setUpClassc                 C   rU   r   rV   r%   r   r   r   rW   þ  rX   zShedPageTest.setUpc                 C   s4   | j }| j}|j d¡ | ¡  ||j ¡ dƒ d S )Nr9   r   )r:   rL   Úautosaver[   Zload_shelled_cfgr_   r³   r   r   r   Útest_load_shelled_cfg  s
   z"ShedPageTest.test_load_shelled_cfgc                 C   sF   | j }|j ¡  |  tdddii¡ |j ¡  |  tdddii¡ d S )NrC  rS  rY   r£   )rL   Zsave_auto_onr1   r:   r‚   Zsave_ask_onr<   r   r   r   Útest_autosave	  s
   

zShedPageTest.test_autosavec                 C   rL  )Nr   r%  rY   ZCodeContextZmaxlines)rL   Zcontext_intr)  r*  r:   r6   r%   r   r   r   Útest_context  rN  zShedPageTest.test_contextN)
r*   r+   r,   r‰   rŠ   rQ   rW   rT  rU  rV  r   r   r   r   rR  ò  s    
rR  c                   @   s   e Zd ZdZedd„ ƒZdS )ÚExtPageTestú/Test that the help source list works correctly.c                 C   s   t j}t j |¡ d S r   )r   r6   r@   rA   rO   r   r   r   rQ     s   zExtPageTest.setUpClassN)r*   r+   r,   r‰   rŠ   rQ   r   r   r   r   rW    s    rW  c                   @   rJ   )ÚHelpSourceTestrX  c                 C   sF   t j}t j |¡ |j }| _tƒ  |_|_tƒ  |_	|_
| ¡  d S r   )r   r6   r@   rA   Z
frame_helpÚframer   r[   Úset_add_delete_stateÚupcÚupdate_help_changesrN   )rP   rL   rZ  r   r   r   rQ   !  s   zHelpSourceTest.setUpClassc                 C   s2   | j }|`|`|`|`|j dd¡ |j ¡  d S )Nr   r%  )	rZ  r[   r[  r\  r]  Úhelplistr)  Úuser_helplistr   )rP   rZ  r   r   r   rT   *  s
   zHelpSourceTest.tearDownClassc                 C   rU   r   rV   r%   r   r   r   rW   2  rX   zHelpSourceTest.setUpc                 C   sb   | j }| j}|j dd¡ ddg|_t dddd¡ | ¡  ||j dd¡d	ƒ ||jd
gƒ d S )Nr%  ZbadZworser   Ú	HelpFilesrY   z	name;filer   )r¸   )r¸   ÚfilerY   )	r:   rZ  r^  r*  r_  r   r©   Zload_helplistr_   ©r&   r«   Úfrr   r   r   Útest_load_helplist5  s   
z!HelpSourceTest.test_load_helplistc                 C   sü   | j }|j|_|j|_|j}d}| |d¡ | |¡ | ¡  | 	|¡ | 
¡  | |¡\}}}}||d 7 }||d 7 }d |j_|j_|jdddd |jd||d |jd||d |jd	||d |  | d
¡d¡ |  |jj¡ |  |jj¡ d S )Nr%  Úsourcerc   r   rÕ   ro   rÖ   rn   rr   rs   )rZ  r[  r[   r]  r\  r^  r*  r7   rh   rt   rN   ru   r;   ri   r:   r_   rE   r`   )r&   rc  r^  Zdexrp   rq   rv   rw   r   r   r   Útest_source_selected?  s*   

z#HelpSourceTest.test_source_selectedc                 C   s¼   | j }| j}|`|j}|j}| dd¡ |ƒ  ||j ¡ dƒ ||j ¡ dƒ | dd¡ |ƒ  ||j ¡ dƒ ||j ¡ dƒ | 	d¡ |ƒ  ||j ¡ dƒ ||j ¡ dƒ t
ƒ |_d S )Nr   r%  r™   re  r   )r:   rZ  r[  r^  r)  Zbutton_helplist_editr¨   Zbutton_helplist_remover*  r+  r   )r&   r«   rc  ZsadÚhr   r   r   Útest_set_add_delete_stateW  s$   
z(HelpSourceTest.test_set_add_delete_statec                 C   sú   | j }tj}tdd }t_| j}|j dd¡ |j ¡  d |j	_
|j_
d|_| ¡  |  t|j dd¡ƒ|j  ko?g kn  ¡ |  |jj
¡ d|_| ¡  d|_| ¡  ||j dd¡dƒ ||jddgƒ ||jj
d	ƒ |  |j	j
¡ |t_d S )
NTrþ   r   r%  r   ©Úname1Zfile1©r»   Zfile2)rj  r»   rc   )r:   r   Ú
HelpSourcer   rZ  r^  r)  r_  r   r[   r;   r\  rñ   Zhelplist_item_addrE   Úlistr_   r`   ©r&   r«   Zorig_helpsourcerÙ   rc  r   r   r   Útest_helplist_item_addo  s0   
ÿÿ
z%HelpSourceTest.test_helplist_item_addc                 C   s(  | j }tj}tdd }t_| j}|j dd¡ |j dd¡ |j d¡ |j 	d¡ |j
 ¡  |j
 d¡ d |j_|j_d|_| ¡  d|_| ¡  ||j dd¡dƒ ||j
dgƒ |  |jj¡ d	|_| ¡  ||j dd¡d
ƒ ||j
d	gƒ |  |jj|jj  ko‹dkn  ¡ |t_d S )NTrþ   r   r%  rj  ri  r   )rj  rk  )r»   r9   )r:   r   rl  r   rZ  r^  r)  r*  r+  r,  r_  r   Úappendr[   r;   r\  rñ   Zhelplist_item_editr_   r`   rE   rn  r   r   r   Útest_helplist_item_edit‹  s0   
&
z&HelpSourceTest.test_helplist_item_editc                 C   s¾   | j }| j}|j dd¡ |j dd¡ |j d¡ |j d¡ |j ¡  |j 	d¡ d |j
_|j_| ¡  ||j dd¡dƒ ||jg ƒ |  |jj|j
j  koYdk¡ d S   ¡ d S )Nr   r%  rj  ri  r   r9   )r:   rZ  r^  r)  r*  r+  r,  r_  r   rp  r[   r;   r\  Zhelplist_item_remover_   rE   rb  r   r   r   Útest_helplist_item_remove©  s   
0z(HelpSourceTest.test_helplist_item_removec                 C   sV   | j }|`|j ¡  |j d¡ |j d¡ | ¡  |  td dddœ¡ tƒ |_d S )Nri  rk  r`  zname1;file1zname2;file2)rY   Ú2)rZ  r]  r_  r   rp  r:   r‚   r   )r&   rc  r   r   r   Útest_update_help_changes¹  s   

ÿz'HelpSourceTest.test_update_help_changesN)r*   r+   r,   r‰   rŠ   rQ   rT   rW   rd  rf  rh  ro  rq  rr  rt  r   r   r   r   rY    s    


rY  c                   @   sd   e Zd Zedd„ ƒZedd„ ƒZdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚVarTraceTestc                 C   s"   t  ¡ | _ttƒ| _ttƒ| _d S r   )r   ZVarTracer   r   r   Úivr	   ÚbvrS   r   r   r   rQ   È  s   

zVarTraceTest.setUpClassc                 C   s   | ` | `| `d S r   )r   rv  rw  rS   r   r   r   rT   Î  s   zVarTraceTest.tearDownClassc                 C   s   | j  ¡  d| _d S rÏ   )r   r   r;   r%   r   r   r   rW   Ò  s   

zVarTraceTest.setUpc                 G   s   |  j d7  _ d S )Né   )r;   ©r&   Úparamsr   r   r   Úvar_changed_incrementÖ  s   z"VarTraceTest.var_changed_incrementc                 G   r$   r   r   ry  r   r   r   Úvar_changed_booleanÙ  r(   z VarTraceTest.var_changed_booleanc                 C   s.   | j }| ¡  |  |jg ¡ |  |jg ¡ d S r   )r   Ú__init__r:   ÚuntracedÚtraced©r&   Útrr   r   r   Ú	test_initÜ  s   zVarTraceTest.test_initc                 C   sF   | j }|j d¡ |j d¡ | ¡  |  |jg ¡ |  |jg ¡ d S )Nr   r9   )r   r~  rp  r  r   r:   r€  r   r   r   Ú
test_clearâ  s   zVarTraceTest.test_clearc           	      C   sÌ   | j }tƒ }tj|d }|_| | j| j¡}|  || j¡ | | j	| j
¡}|  || j	¡ ttƒ}| |d¡}|  ||¡ | ¡  | |d¡ || jf|| j
f||fg}|  |jg ¡ |  |j|¡ |`d S )Nr—   ©r   r•   rœ   )r   r   r   r.   Úmake_callbackÚaddrv  r{  ZassertIsrw  r|  r   r   r2   Zassert_called_withr:   r  r~  )	r&   r  ÚfuncÚcbrv  rw  ÚsvZsv2rƒ   r   r   r   Útest_addê  s&   þzVarTraceTest.test_addc                 C   st   | j  | jd¡}|  t|ƒ¡ | j d¡ |  dtd ¡ |ƒ  |  dtd ¡ |  	td d d d¡ t 
¡  d S )Nr„  é*   r•   r   rœ   Z42)r   r…  rv  rE   Úcallabler[   rÇ   r   rj   r:   r   )r&   rˆ  r   r   r   Útest_make_callback  s   zVarTraceTest.test_make_callbackc                 C   sò   | j }| | j| j¡}| | j| j¡}|| jf|| jfg}| ¡  |  |jg ¡ |  	|j
|¡ | d¡ |  | ¡ d¡ |  | jd¡ d| _| ¡  | d¡ |  | jd¡ d| _| ¡  |  |j
g ¡ |  	|j|¡ | d¡ |  | jd¡ d S )Nr9   rx  r   )r   r†  rv  r{  rw  r|  ra   r:   r~  ZassertCountEqualr  r[   r_   r;   r   )r&   r  rv  rw  rƒ   r   r   r   Útest_attach_detach  s,   ÿ


zVarTraceTest.test_attach_detachN)r*   r+   r,   rŠ   rQ   rT   rW   r{  r|  r‚  rƒ  rŠ  r  rŽ  r   r   r   r   ru  Æ  s    

ru  Ú__main__rc   )Ú	verbosity).r‰   Zidlelibr   Ztest.supportr   Zunittestr   Zidlelib.idle_test.mock_idler   Útkinterr   r   r   r	   r
   r   r   Zidlelib.configdialogr   r   r   r   r   ZIdleUserConfParserr   r   r   r‚   rŒ   rB   r6   r   r"   ZTestCaser#   r-   rK   r‹   r  r?  rR  rW  rY  ru  r*   r   r   r   r   r   Ú<module>   s\     ü	+        Q% (hÿ