<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2ag                 @   sj  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jd
ejd
ejd
ej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&e'd krfej(d!d" dS )#    )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   6/opt/alt/python36/lib64/python3.6/test_configdialog.pysetUpModule!   s    r   c               C   s:   t t_tj  tj  tj  tj  tj	  d  aa
d S )N)usercfgr   r   r   detachclearr   r   update_idletasksZdestroyr   r   r   r   r   tearDownModule(   s    r    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 )FontPageTestc             C   s,   t j }| _t jj| t |_|j  d S )N)r   fontpagepagenoteselectr   set_samplesupdate)clsr#   r   r   r   
setUpClass:   s    zFontPageTest.setUpClassc             C   s
   | j `d S )N)r#   r&   )r(   r   r   r   tearDownClassA   s    zFontPageTest.tearDownClassc             C   s   t j  d S )N)r   r   )selfr   r   r   setUpE   s    zFontPageTest.setUpc             C   s   t j  | j}|jjd |jjd |jjd d|j_|j	  | j
|jj d | j
|jj d | j|jj  | j|jjd t j  d S )NZFake1Tr      )r   r   r#   	font_nameset	font_size	font_boldr&   calledZload_font_cfgassertNotEqualgetassertFalseassertEqualattach)r+   dr   r   r   test_load_font_cfgH   s    zFontPageTest.test_load_font_cfgc             C   s   | j }|jj dk r| jd |j}|jd |jjd}|j  |j  |jd |jd |jd}| j	|| | j
|jj |j  |j  |j  |jd |jd |jd}| j|| | j
|jj |j  d S )	N   zneed at least 2 fontsr   Zactivez
<Key-Down>z<KeyRelease-Down>z<Key-Up>z<KeyRelease-Up>)r#   fontlistsizeskipTestactivater5   focus_forcer'   event_generater4   assertInr/   lowerr7   )r+   r9   r<   fontZ	down_fontZup_fontr   r   r   test_fontlist_keyX   s(    







zFontPageTest.test_fontlist_keyc       	      C   s   | j }|jj dk r| jd |j}|jd |j  |jd |j  |jd\}}}}||d 7 }||d 7 }|j	d||d |j	d||d |j
d}|j
d}| j|| | j|jj
 |j  d S )	Nr;   zneed at least 2 fontsr   r.   z
<Button-1>)xyz<ButtonRelease-1>anchor)r#   r<   r=   r>   r?   r@   seer'   bboxrA   r5   r7   rB   r/   rC   )	r+   r9   r<   rF   rG   dxdyZfont1Zselect_fontr   r   r   test_fontlist_mouseu   s"    




z FontPageTest.test_fontlist_mousec             C   s*   | j }|jjjd | j|jj d d S )N(   40)r#   Zsizelistvariabler0   r7   r1   r5   )r+   r9   r   r   r   test_sizelist   s    zFontPageTest.test_sizelistc             C   sJ   | j }|jjd |jj  | j|jj  |jj  | j|jj  d S )NF)r#   r2   r0   Zbold_toggleinvoke
assertTruer5   r6   )r+   r9   r   r   r   test_bold_toggle   s    

zFontPageTest.test_bold_togglec             C   s  t jtdd}t|d }|d dk}| j}|jj| |jj| d|j_	|j
jd dd|t|di}| jt| | j|jj	d tj  |jjd	 ddd	t|di}| jt| | j|jj	d tj  |jj|  ddd	t| di}| jt| | j|jj	d
 d S )Nr   EditorWindowr.   r;   boldr   z	Test Font)rD   z	font-sizez	font-boldZ20   )r   ZGetFontr   strr#   r1   r0   r2   r&   r3   r/   r7   mainpager   r   )r+   Zdefault_fontZdefault_sizeZdefault_boldr9   expectedr   r   r   test_font_set   s6    zFontPageTest.test_font_setc             C   s   | j }|`|j|jf}i i  |_|_|jjd |jjd |jjd ddi}|j  | j|j|j  kor|kn   |\|_|_t	 |_d S )Ntest5r.   rD   rV   )r\   r]   rV   )
r#   r&   Zfont_samplehighlight_sampler/   r0   r1   r2   rS   r   )r+   r9   Zorig_samplesrZ   r   r   r   test_set_samples   s    "zFontPageTest.test_set_samplesN)__name__
__module____qualname__classmethodr)   r*   r,   r:   rE   rM   rQ   rT   r[   r_   r   r   r   r   r!   3   s   	$r!   c               @   s(   e Zd Zedd Zdd Zdd ZdS )
IndentTestc             C   s   t j| _| jj  d S )N)r   r"   r#   r'   )r(   r   r   r   r)      s    zIndentTest.setUpClassc             C   s0   | j }|jjd |j  | j|jj d d S )N      )r#   	space_numr0   Zload_tab_cfgr7   r5   )r+   r9   r   r   r   test_load_tab_cfg   s    zIndentTest.test_load_tab_cfgc             C   sD   | j }tj  |jjd | j|jj d | jtdddii d S )N   re   ZIndentz
num-spacesZ16)	r#   r   r   Zindent_scaler0   r7   rg   r5   rY   )r+   r9   r   r   r   test_indent_scale   s
    zIndentTest.test_indent_scaleN)r`   ra   rb   rc   r)   rh   rj   r   r   r   r   rd      s   rd   c               @   s   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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 ),HighPageTestc             C   sD   t j }| _t jj| t |_t |_t |_t |_	|j
  d S )N)r   highpager#   r$   r%   r   set_theme_typepaint_theme_sampleset_highlight_targetset_color_sampler'   )r(   r#   r   r   r   r)      s    zHighPageTest.setUpClassc             C   s   | j }|`|`|`|`d S )N)r#   rm   rn   ro   rp   )r(   r9   r   r   r   r*      s    zHighPageTest.tearDownClassc             C   sX   | j }x$tjddD ]}tjd j| qW tj  d|j_d|j	_d|j
_d|j_d S )Nuserr   r   )r#   r   GetSectionListr   remove_sectionr   r   rm   r3   rn   ro   rp   )r+   r9   sectionr   r   r   r,      s    zHighPageTest.setUpc             C   s  t j  | j}| j}tjddt_|j  | j	|j
j  ||jj d ||jj d ||jj d ||jjd ||jjd ||jjd tjdddd	 tjdd
dd |j  ||jj d ||jj d ||jjd ||jjd ||jjd tjd
dt_tjdddd |j  | j|j
j  ||jj d ||jj d
 ||jjd ||jjd ||jjd t`t j  d S )NzIDLE Classic)return_valuez- no custom themes -disabledr.   r   test1optionvaluetest2option2value2r;   r   Themedefault0rW   )rv   )r   r   r#   r7   r   Mockr   ZCurrentThemeZload_theme_cfgrS   theme_sourcer5   builtin_namecustom_namecustom_theme_onstaterm   r3   rn   ro   	SetOptionr6   r8   )r+   r9   eqr   r   r   test_load_theme_cfg	  s>    z HighPageTest.test_load_theme_cfgc             C   s   | j }| j}t |_t |_|jj  |tdddii ||jjd ||jjd t	j
  |jjd |jj  | j tdddii ||jjd ||jjd |`|`d S )	Nr}   r~   Truer.   r   	!disabledFalse)r   )r7   r#   r   var_changed_builtin_namevar_changed_custom_nameZbuiltin_theme_onrR   rY   r3   r   r   r   r   )r+   r   r9   r   r   r   test_theme_source2  s    

zHighPageTest.test_theme_sourcec             C   s  | j }| j}dddg}tjdddd |jj|d |tddddi ||jd	 d
 ||jj	d t
j  tjdddd |jj|d |tdddii ||jd	 d
 ||jj	d t
j  |jj|d |tddddi ||jd	 d ||jj	d d S )NzIDLE Classicz	IDLE DarkzIDLE Newr   r}   namespam)r   name2textzNew theme, see Helpr.   r   r;   r   rW   )r7   r#   r   r   builtinlistSetMenurY   Ztheme_messagern   r3   r   r   )r+   r   r9   	item_listr   r   r   test_builtin_nameG  s(    
zHighPageTest.test_builtin_namec             C   st   | j }|jjg d | jdt | j|jjd tj	  |jjdddgd | jtdddii | j|jjd d S )	Nz- no custom themes -r}   r   abcr   r.   )
r#   
customlistr   assertNotInrY   r7   rn   r3   r   r   )r+   r9   r   r   r   test_custom_namec  s    zHighPageTest.test_custom_namec             C   s2   | j }t |_|jjd | j|jjd |`d S )NZgreenr.   )r#   r   Zon_new_color_setcolorr0   r7   r3   )r+   r9   r   r   r   
test_colorq  s
    zHighPageTest.test_colorc             C   sB   | j }| j}|jjdddgd ||jj d ||jjd d S )Nr   r   r   r.   )r7   r#   Z
targetlistr   highlight_targetr5   ro   r3   )r+   r   r9   r   r   r    test_highlight_target_list_mousey  s
    z-HighPageTest.test_highlight_target_list_mousec                s   | j }| j i }d} jj  jd j   fdd}fdd}|| x`j D ]T}xNj|dd d D ]6}|d7 }|| | jj	 ||  | j
j| qxW q^W d S )	Nr   g      ?c                s(   x" j j D ]\}}|| |d < qW d S )Nr   )Ztheme_elementsitems)elemelementtag)r9   r   r   tag_to_element  s    zEHighPageTest.test_highlight_target_text_mouse.<locals>.tag_to_elementc                sn    j | \}}}}||d 7 }||d 7 } jdddd  jd||d  jd||d  jd||d d S )Nr;   z<Enter>r   )rF   rG   z<Motion>z<ButtonPress-1>z<ButtonRelease-1>)rJ   rA   )startrF   rG   rK   rL   )hsr   r   click_it  s    z?HighPageTest.test_highlight_target_text_mouse.<locals>.click_itr;   r.   )r7   r#   r^   r@   rI   r   Z	tag_namesZ
tag_rangesr   r5   ro   r3   )r+   r   r   countr   r   r   start_indexr   )r9   r   r    test_highlight_target_text_mouse  s"    

z-HighPageTest.test_highlight_target_text_mousec             C   s   | j }| j}|`|jjd |j  ||jd t ||jd t ||j	j
 d |jjd |j  ||jd t ||jj
 d ||jd t ||j	j
 f  t |_d S )NTr   rv   Fselected)rv   )r   )r7   r#   rm   r   r0   r   r   r   r
   button_delete_customr   r   r   )r+   r   r9   r   r   r   test_set_theme_type  s    z HighPageTest.test_set_theme_typec             C   sX  | j }| j}tjj}t  }tj_t  }|_|jjd |j	jd d|_
|jj  ||j	j d d|jj|jd df|_
|jj  ||j	j d d|_
|j	jd |jjd	 d|_
|jj  ||jd
 ||j	j d d|_
|jj  ||jj |j
 ||j	j d |j	jd |jjd |jj  ||j	j d |`|tj_d S )NzEditor Breakpointz#ffffffr   style
background    k@        #de0000Tr.   zMy New ThemeF)NNr   r   r   )r   r   )r7   r#   r   ZtkColorChooserZaskcolorr   get_new_theme_namer   r0   r   resultZbutton_set_colorrR   r5   r   lookupframe_color_setr   r3   r   )r+   r   r9   Zorig_chooserZchoosergntnr   r   r   test_get_color  s<    




zHighPageTest.test_get_colorc             C   s   | j }d}|jjd |jjd |jjd |jj| | j|jj|j	d d| | j|j
jdd| | jtdd	|ii d S )
Nz#3f7caePythonzSelected TextTr   r   hilite
foregroundzhilite-foreground)r#   r   r0   r   fg_bg_toggler   r7   r   r   r   r^   tag_cgetrl   )r+   r9   r   r   r   r   test_on_new_color_set  s    z"HighPageTest.test_on_new_color_setc             C   s>   t j}tdd }t _| j}d|_| j|jdd |t _d S )NT)return_selfz	New Themer   )r   SectionNamer   r#   r   r7   r   )r+   orig_sectionnamesnr9   r   r   r   test_get_new_theme_name  s    z$HighPageTest.test_get_new_theme_namec             C   s   | j }t  }|_|jjd d|_|jj  | j|jt	j
d  d|_d|_| j|jt	j
d  |jj  | j|jt	j
d  |`d S )NTr   r   zmy new themer   )r#   r   r   r   r0   r   Zbutton_save_customrR   r   r   r   r3   rB   )r+   r9   r   r   r   r   test_save_as_new_theme  s    

z#HighPageTest.test_save_as_new_themec             C   s(  | j }| j}|jjd |jjd d}d}| j|tj |j| |tj	dd|g |tj
ddtj
d| ||jj | | j|jj  ||jjd tjd|d	d
 | j|tj |j| |tj	dd||g | jtj
d|tj
d| tjd|d	d
 |tj
d|tj
d| d S )NTzIDLE Classiczmy new custom themezmy second custom themerq   r   r~   r.   zhit-backgroundyellow)r7   r#   r   r0   r   r   r   r   
create_newrr   ZGetThemeDictr   r5   r6   rm   r3   r   
add_optionr4   r   )r+   r   r9   	first_new
second_newr   r   r   test_create_new_and_save_new  s.    

z)HighPageTest.test_create_new_and_save_newc             C   s   | j }| j}|`|jjd ||jj d ||jj d | j|j	 ||j
jd |jjd ||jj d	 ||jj f  | j|j	 ||j
jd t |_d S )
NZCursorrv   r   r.   Commentr;   )rv   r   )rv   )r   )r7   r#   ro   r   r0   fg_onr   bg_onrS   r   rp   r3   r   )r+   r   r9   r   r   r   test_set_highlight_target5  s    z&HighPageTest.test_set_highlight_targetc             C   s@   | j }|j}|jj  | j|jd |jj  | j|jd d S )Nr.   r;   )r#   rp   r   rR   r7   r3   r   )r+   r9   Zscsr   r   r   test_set_color_sample_bindingJ  s    

z*HighPageTest.test_set_color_sample_bindingc             C   s\   | j }|`|jjd |jjd |j  | j|jj|jd d|j	j
dd t |_d S )NzSelected TextTr   r   r   r   )r#   rp   r   r0   r   r7   r   r   r   r^   r   r   )r+   r9   r   r   r   test_set_color_sampleT  s    z"HighPageTest.test_set_color_samplec             C   sX  | j }| j}|`|jj}tj}d}d}|jjd |j	jd d}|j
| d|j_|j  ||d|||ddd	 ||d
|||ddd	 | j|d|d | j|d|d ||jjd tjd|dd tjd|dd |j  ||d|||ddd	 ||d
|||ddd	 ||d|d ||d|d ||jjd t |_d S )Nr   r   Tz	IDLE Darkz	IDLE Testr   breakfg)ZfgBgZcursorZnormalbgZconsoleZbluer   r.   r   zconsole-foregroundzconsole-backgroundr;   )r7   r#   rn   r^   r   r   ZGetHighlightr   r0   r   r   rp   r3   r4   r   r   r   )r+   r   r9   Zhs_tagZghr   r   Zthemer   r   r   test_paint_theme_sample_  s6    
z$HighPageTest.test_paint_theme_samplec             C   sp  | j }| j}|jjd t  }|_t t_t t_d}t	j
d j|dd ddit|< |jjd |jj| d|_|jj  ||jd	 |t| ddi |t	jd
ddg |tjjd |tjjd ||jjd d|_|jj  ||jd | j|t |t	jd
dg  ||jj d ||jj d |tjjd	 |tjjd	 ||jjd	 t`t`|`d S )N	!disabledz
spam themer   r   ry   rx   r   Fr.   rq   r   Tr;   rv   z- no custom themes -)r   )rv   )r7   r#   r   r   r   askyesnor   deactivate_current_configactivate_config_changesr   r   r   rl   r   r0   r   r   rR   r3   rr   rm   r   r   r5   )r+   r   r9   yesnoZ
theme_namer   r   r   test_delete_custom  s>    

zHighPageTest.test_delete_customN)r`   ra   rb   rc   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   rk      s*   
)	%/
 
%rk   c               @   s   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d Zdd Zdd Zdd Zdd Zdd  Zd!S )"KeysPageTestc             C   s,   t j }| _t jj| t |_t |_d S )N)r   keyspager#   r$   r%   r   set_keys_typeload_keys_list)r(   r#   r   r   r   r)     s    zKeysPageTest.setUpClassc             C   s   | j }|`|`d S )N)r#   r   r   )r(   r#   r   r   r   r*     s    zKeysPageTest.tearDownClassc             C   sH   | j }x$tjddD ]}tjd j| qW tj  d|j_d|j	_d S )Nrq   r   r   )
r#   r   rr   r   rs   r   r   r   r3   r   )r+   r9   rt   r   r   r   r,     s    zKeysPageTest.setUpc             C   s  t j  | j}| j}tjddt_|j  | j	|j
j  ||jj d ||jj d ||jj d ||jjd ||jjd ||jjd tjdddd	 tjdd
dd |j  ||jj d ||jj d ||jjd ||jjd ||jjd tjd
dt_tjddt_tjdddd |j  | j|j
j  ||jj d ||jj d
 ||jjd ||jjd ||jjd t`t`t j  d S )NIDLE Classic OSX)ru   z- no custom keys -rv   r.   r   rw   rx   ry   rz   r{   r|   r;   zIDLE Modern Unixr   Keysr~   r   rW   )rv   )r   )r   )rz   )r   r   r#   r7   r   r   r   ZCurrentKeysZload_key_cfgrS   keyset_sourcer5   r   r   custom_keyset_onr   r   r3   r   argsr   Zdefault_keysr6   r8   )r+   r9   r   r   r   r   test_load_key_cfg  s@    zKeysPageTest.test_load_key_cfgc             C   s   | j }| j}t |_t |_|jj  |tdddii ||jjd ||jjd t	j
  |jjd |jj  | j tdddii ||jjd ||jjd |`|`d S )	Nr   r~   r   r.   r   	!disabledr   )r   )r7   r#   r   r   r   Zbuiltin_keyset_onrR   rY   r3   r   r   r   r   )r+   r   r9   r   r   r   test_keyset_source  s    

zKeysPageTest.test_keyset_sourcec             C   s2  | j }| j}tjd jd dddg}|jj|d |tddddi ||jd d ||j	j
d	 ||j	jd tj  tjddd
d |jj|d |tdddii ||jd d ||j	j
d ||j	jd tj  |jj|d |tddddi ||jd d ||j	j
d ||j	jd d S )Nr   r   zIDLE Classic WindowsIDLE Classic OSXIDLE Modern UNIX)r   r   r   zNew key set, see Helpr.   r   zIDLE Classic Unixr   r;   r   rW   )r   )r   )r   )r7   r#   r   r   rs   r   r   rY   Zkeys_messager   r3   r   r   r   r   )r+   r   r9   r   r   r   r   r   
  s0    zKeysPageTest.test_builtin_namec             C   st   | j }|jjg d | jdt | j|jjd tj	  |jjdddgd | jtdddii | j|jjd d S )	Nz- no custom keys -r   r   r   r   r   r   r.   )
r#   r   r   r   rY   r7   r   r3   r   r   )r+   r9   r   r   r   r   *  s    zKeysPageTest.test_custom_namec             C   s   t jdddd | j}|jjd |jjdd |jjdd |jjd	d
 |jjd |jj	d |j
jd | jtdddii |jjd	 |jj	d	 |j
jd | jtdd
dii d S )Nr   ZZzDummyenabler   zmy custom keysr   endcopyr.   zz-inz	<Key-F11>ZZzDummy_cfgBindings)r   r   r#   r   r0   bindingslistdeleteinsertselection_setselection_anchor
keybindingr7   r   extpage)r+   r9   r   r   r   test_keybinding8  s     zKeysPageTest.test_keybindingc             C   s   | j }| j}|`|jjd |j  ||jd t ||jd t ||j	j
 d |jjd |j  ||jd t ||jj
 d ||jd t ||j	j
 f  t |_d S )NTr   rv   Fr   )rv   )r   )r7   r#   r   r   r0   r   r   r   r
   button_delete_custom_keysr   r   r   )r+   r   r9   r   r   r   test_set_keys_typeM  s    zKeysPageTest.test_set_keys_typec             C   s  | j }| j}tj}tdd }t_t  }|_|jjd |jj	dd |jj
dd |jjd |jjd |jjd |jjd d|_|jj  ||jjd	d ||jj d d
|_d|_|jj  ||jd ||jjd	d d|_|jj  ||jj |j ||jjd	d ||jj d
 |jjd d|_d|_|jj  ||jd ||jjd	d ||jj d |`|t_d S )NT)r   	!disabledr   r   zcopy - <Control-Shift-Key-C>zKey-ar   rH   z	<Key-F11>r.   zMy New Key Setzcopy - <Key-F11>Fz<Key-p>zcopy - <Key-p>)r   )r7   r#   r   ZGetKeysDialogr   get_new_keys_namebutton_new_keysr   r   r   r   r   r   r   r0   r   r   rR   r5   r3   r   )r+   r   r9   Zorig_getkeysdialogZgkdgnknr   r   r   test_get_new_keysb  sF    



zKeysPageTest.test_get_new_keysc             C   s>   t j}tdd }t _| j}d|_| j|jdd |t _d S )NT)r   zNew Keysr   )r   r   r   r#   r   r7   r   )r+   r   r   r9   r   r   r   test_get_new_keys_name  s    z#KeysPageTest.test_get_new_keys_namec             C   st   | j }t  }|_|jjd d|_|jj  d|_d|_| j	|jt
jd  |jj  | j|jt
jd  |`d S )NTr   zmy new key setr   r   )r#   r   r   r   r0   r   Zbutton_save_custom_keysrR   r3   r   r   r   rB   )r+   r9   r   r   r   r   test_save_as_new_key_set  s    

z%KeysPageTest.test_save_as_new_key_setc             C   s   | j }|j}|jdd |jdd |jdd |jd |j  |jd |j  |jd\}}}}||d 7 }||d 7 }|j	dddd |j	d	||d |j	d
||d |j	d||d | j
|jdd | j
|jj f  d S )Nr   r   r   r.   findr;   z<Enter>)rF   rG   z<Motion>z
<Button-1>z<ButtonRelease-1>rH   )r#   r   r   r   r?   r@   rI   r'   rJ   rA   r7   r5   r   r   )r+   r9   r   rF   rG   rK   rL   r   r   r   test_on_bindingslist_select  s$    

z(KeysPageTest.test_on_bindingslist_selectc             C   s  | j }| j}|jjd |jjd d}d}| j|tj |j| |tj	dd|g |tj
dtj
| ||jj | | j|jj  ||jjd tjd|dd	 | j|tj |j| |tj	dd||g | jtj
|tj
| tjd|dd	 |tj
|tj
| d S )
NTzIDLE Classic Windowszmy new custom key setzmy second custom keysetrq   r   r.   r   z	<Key-F11>)r7   r#   r   r0   r   r   r   r   Zcreate_new_key_setrr   	GetKeySetr   r5   r6   r   r3   r   r   r4   r   )r+   r   r9   r   r   r   r   r   ,test_create_new_key_set_and_save_new_key_set  s,    


z9KeysPageTest.test_create_new_key_set_and_save_new_key_setc             C   sV  | j }| j}t  }t_|`|j}|jdd |jdd |jdd ddgdgd	gd
|_	t
jdddd d}|jd ||jdd| ||jdd ||j f  |jd |jd |jd ||jdd| ||jdd ||j d |jd |jd |jd ||jdd| ||jdd ||j d t |_t`d S )Nr   r   z<<find>>r.   z<<help>>z<Control-Key-c>z<Control-Key-C>z<Control-Key-space>z	<Key-F11>)z<<copy>>z<<force-open-completions>>z<<spam>>r   zmy keysr   z<Shift-Key-a>&copy - <Control-Key-c> <Control-Key-C>,force-open-completions - <Control-Key-space>spam - <Shift-Key-a>rH   r   r;   )r  r  r  )r.   )r;   )r7   r#   r   r   r  r   r   r   r   r   r   r   r5   Zcurselectionr   r   )r+   r   r9   Zgksr   rZ   r   r   r   test_load_keys_list  sB      






z KeysPageTest.test_load_keys_listc             C   sp  | j }| j}|jjd t  }|_t t_t t_d}t	j
d j|dd ddit|< |jjd |jj| d|_|jj  ||jd	 |t| ddi |t	jd
ddg |tjjd |tjjd ||jjd d|_|jj  ||jd | j|t |t	jd
dg  ||jj d ||jj d |tjjd	 |tjjd	 ||jjd	 t`t`|`d S )N	!disabledzspam key setr   r   ry   rx   r   Fr.   rq   r   Tr;   rv   z- no custom keys -)r  )rv   )r7   r#   r   r   r   r   r   r   r   r   r   r   r   r   r0   r   r   rR   r3   rr   r   r   r   r5   )r+   r   r9   r   Zkeyset_namer   r   r   test_delete_custom_keys  s>    

z$KeysPageTest.test_delete_custom_keysN)r`   ra   rb   rc   r)   r*   r,   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r   r   r   r     s    
* 0
+r   c               @   s   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d Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#S )$GenPageTestc             C   s@   t j }| _t jj| t  |_|_t  |_|_	|j
  d S )N)r   Zgenpager#   r$   r%   r   r0   set_add_delete_stateupcupdate_help_changesr'   )r(   r#   r   r   r   r)   =  s
    zGenPageTest.setUpClassc             C   s2   | j }|`|`|`|`|jjdd |jj  d S )Nr   r   )	r#   r0   r
  r  r  helplistr   user_helplistr   )r(   r#   r   r   r   r*   E  s
    zGenPageTest.tearDownClassc             C   s   t j  d S )N)r   r   )r+   r   r   r   r,   M  s    zGenPageTest.setUpc             C   s   | j }| j}|jjd |jjd |jjd |jjd |jjdd ddg|_	t
jdddd |j  ||jj d	 ||jj d	 ||jj d
 ||jj d ||jjd	dd ||j	dg d S )Nr.   r   ZbadZworser   	HelpFilesr-   z	name;filer   Z80rO   r   file)r   )r   r  r-   )r7   r#   Zstartup_editr0   autosaveZ	win_widthZ
win_heightr  r   r  r   r   Zload_general_cfgr5   )r+   r   r9   r   r   r   test_load_general_cfgP  s     
z!GenPageTest.test_load_general_cfgc             C   sN   | j }|jj  | jtdddii tj  |jj  | jtdddii d S )NGeneralzeditor-on-startupr-   r   )r#   Zstartup_editor_onrR   r7   rY   r   r   Zstartup_shell_on)r+   r9   r   r   r   test_startupc  s    

zGenPageTest.test_startupc             C   sr   | j }|jjdd |jjdd | jtdddii tj  |jjdd |jjdd | jtdddii d S )Nr   r   11rU   Zheightwidth)	r#   Zwin_height_intr   r   r7   rY   r   r   Zwin_width_int)r+   r9   r   r   r   test_editor_sizem  s    zGenPageTest.test_editor_sizec             C   s8   | j jjdd | j jjdd | jtdddii d S )Nr   r   r  ZAutoCompleteZ	popupwait)r#   Zauto_wait_intr   r   r7   r   )r+   r   r   r   test_autocomplete_waitw  s    z"GenPageTest.test_autocomplete_waitc             C   s   | j }| j}|jd jd |tdddii tj  |jjdd |jj	dd |tdddii tj  |j
j  |tdd	d
ii d S )NZmenur   Z
ParenMatchr   openerr   r  zflash-delayZbellr   )r#   r7   Zparen_style_typerR   r   r   r   Zparen_flash_timer   r   Zbell_on)r+   r9   r   r   r   r   test_parenmatch|  s    
zGenPageTest.test_parenmatchc             C   sF   | j }|jj  | jtdddii |jj  | jtdddii d S )Nr  r  r-   r   )r#   Zsave_auto_onrR   r7   rY   Zsave_ask_on)r+   r9   r   r   r   test_autosave  s
    

zGenPageTest.test_autosavec             C   s8   | j jjdd | j jjdd | jtdddii d S )Nr   r   r  ZFormatParagraphz	max-width)r#   Zformat_width_intr   r   r7   r   )r+   r   r   r   test_paragraph  s    zGenPageTest.test_paragraphc             C   s8   | j jjdd | j jjdd | jtdddii d S )Nr   r   r-   ZCodeContextZmaxlines)r#   Zcontext_intr   r   r7   r   )r+   r   r   r   test_context  s    zGenPageTest.test_contextc             C   s   | j }|j|_|j|_|j}d}|j|d |j| |j  |j	| |j
  |j|\}}}}||d 7 }||d 7 }d |j_|j_|jdddd |jd||d |jd||d |jd	||d | j|jd
d | j|jj | j|jj d S )Nr   sourcer;   r   z<Enter>)rF   rG   z<Motion>z
<Button-1>z<ButtonRelease-1>rH   )r#   r
  r0   r  r  r  r   r?   r@   rI   r'   rJ   r3   rA   r7   r5   rS   r6   )r+   r9   r  ZdexrF   rG   rK   rL   r   r   r   test_source_selected  s*    

z GenPageTest.test_source_selectedc             C   s   | j }| j}|`|j}|j}|jdd |  ||jj d ||jj d |jdd |  ||jj d ||jj d |j	d |  ||jj f  ||jj f  t
 |_d S )	Nr   r   rv   r  )rv   )rv   )rv   )rv   )r7   r#   r
  r  r   Zbutton_helplist_editr   Zbutton_helplist_remover   r   r   )r+   r   r9   Zsadhr   r   r   test_set_add_delete_state  s$    
z%GenPageTest.test_set_add_delete_statec             C   s   | j }tj}tdd }t_| j}|jjdd |jj  d |j	_
|j_
d|_|j  | jt|jjdd|j  ko~g kn   | j|jj
 d|_|j  d|_|j  ||jjddd ||jddg ||jj
d
 | j|j	j
 |t_d S )NT)r   r   r   r   name1file1r   file2r;   )r"  r#  )r   r$  )r"  r   )r"  r#  )r   r$  )r7   r   
HelpSourcer   r#   r  r   r  r   r0   r3   r  r   Zhelplist_item_addrS   listr5   r6   )r+   r   orig_helpsourcer   r9   r   r   r   test_helplist_item_add  s*    
z"GenPageTest.test_helplist_item_addc             C   s*  | j }tj}tdd }t_| j}|jjdd |jjdd |jjd |jj	d |j
j  |j
jd d |j_|j_d|_|j  d|_|j  ||jjddd ||j
dg | j|jj d|_|j  ||jjddd ||j
dg | j|jj|jj  kod
kn   |t_d S )NT)r   r   r   r"  r#  r   r   r$  r.   )r"  r#  )r"  r#  )r"  )r"  r#  )r   r$  )r   )r   r$  )r7   r   r%  r   r#   r  r   r   r   r   r  r   appendr0   r3   r  r   Zhelplist_item_editr5   r6   rS   )r+   r   r'  r   r9   r   r   r   test_helplist_item_edit  s0    
(z#GenPageTest.test_helplist_item_editc             C   s   | j }| j}|jjdd |jjdd |jjd |jjd |jj  |jj	d d |j
_|j_|j  ||jjddf  ||jg  | j|jj|j
j  kodkn   d S )Nr   r   r"  r#  r.   )r"  r#  )r7   r#   r  r   r   r   r   r  r   r)  r0   r3   r  Zhelplist_item_remover5   rS   )r+   r   r9   r   r   r   test_helplist_item_remove  s    
z%GenPageTest.test_helplist_item_removec             C   sV   | j }|`|jj  |jjd	 |jjd
 |j  | jtd ddd t |_d S )Nr"  r#  r   r$  r  zname1;file1zname2;file2)r-   2)r"  r#  )r   r$  )r#   r  r  r   r)  r7   rY   r   )r+   r9   r   r   r   test_update_help_changes  s    

z$GenPageTest.test_update_help_changesN)r`   ra   rb   rc   r)   r*   r,   r  r  r  r  r  r  r  r  r  r!  r(  r*  r+  r-  r   r   r   r   r	  7  s"   

r	  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 j | _tt| _tt| _d S )N)r   ZVarTracer   r   r   ivr	   bv)r(   r   r   r   r)   #  s    

zVarTraceTest.setUpClassc             C   s   | ` | `| `d S )N)r   r/  r0  )r(   r   r   r   r*   )  s    zVarTraceTest.tearDownClassc             C   s   | j j  d| _d S )Nr   )r   r   r3   )r+   r   r   r   r,   -  s    
zVarTraceTest.setUpc             G   s   |  j d7  _ d S )N   )r3   )r+   paramsr   r   r   var_changed_increment1  s    z"VarTraceTest.var_changed_incrementc             G   s   d S )Nr   )r+   r2  r   r   r   var_changed_boolean4  s    z VarTraceTest.var_changed_booleanc             C   s.   | j }|j  | j|jg  | j|jg  d S )N)r   __init__r7   untracedtraced)r+   trr   r   r   	test_init7  s    zVarTraceTest.test_initc             C   sF   | j }|jjd |jjd |j  | j|jg  | j|jg  d S )Nr   r.   )r   r6  r)  r7  r   r7   )r+   r8  r   r   r   
test_clear=  s    zVarTraceTest.test_clearc       	      C   s   | j }t }tj|d }|_|j| j| j}| j|| j |j| j	| j
}| j|| j	 tt}|j|d}| j|| |j  |j|d || jf|| j
f||fg}| j|jg  | j|j| |`d S )N)ru   r   rt   rx   )r   rt   rx   )r   rt   rx   )r   r   r   r   make_callbackaddr/  r3  ZassertIsr0  r4  r   r   Zassert_called_onceZassert_called_withr7   r7  r6  )	r+   r8  funccbr/  r0  svZsv2rZ   r   r   r   test_addE  s$    
zVarTraceTest.test_addc             C   st   | j j| jd}| jt| | jjd | jdtd  |  | jdtd  | j	td d d d tj
  d S )Nr   rt   rx   *   Z42)r   rt   rx   )r   r;  r/  rS   callabler0   r   r   rB   r7   r   )r+   r>  r   r   r   test_make_callback]  s    zVarTraceTest.test_make_callbackc             C   s   | j }|j| j| j}|j| j| j}|| jf|| jfg}|j  | j|jg  | j	|j
| |jd | j|j d | j| jd d| _|j  |jd | j| jd d| _|j  | j|j
g  | j	|j| |jd | j| jd d S )Nr.   r1  r   )r   r<  r/  r3  r0  r4  r8   r7   r6  ZassertCountEqualr7  r0   r5   r3   r   )r+   r8  r/  r0  rZ   r   r   r   test_attach_detachi  s*    


zVarTraceTest.test_attach_detachN)r`   ra   rb   rc   r)   r*   r,   r3  r4  r9  r:  r@  rC  rD  r   r   r   r   r.  !  s   r.  __main__r;   )	verbosity))Zidlelibr   Ztest.supportr   Zunittestr   Zidlelib.idle_test.mock_idler   Ztkinterr   r   r   r	   r
   r   r   Zidlelib.configdialogr   r   r   r   r   ZIdleUserConfParserr   r   r   rY   rl   r   r   r   r    ZTestCaser!   rd   rk   r   r	  r.  r`   r   r   r   r   r   <module>   sJ        K    kh
