
    /hh                     R   S r SSKJr  SSKJr  \" S5        SSKJr  SSKrSSKJr  SSK	J
r
  SS	KJrJrJrJrJrJr  SS
KJr  SSKJrJrJr  \R.                  r\R2                  " S5      \R2                  " S5      \R2                  " S5      \R2                  " S5      S.rSqSq\S   r\S   r\S   r\S   r S r!S r" " S S\RF                  5      r$ " S S\RF                  \5      r% " S S\RF                  5      r& " S S\RF                  5      r' " S S\RF                  5      r( " S S\RF                  5      r) " S  S!\RF                  5      r* " S" S#\RF                  5      r+ " S$ S%\RF                  5      r, " S& S'\RF                  5      r-\.S(:X  a  \R^                  " S)S*9  gg)+zfTest configdialog, coverage 94%.

Half the class creates dialog, half works with user customizations.
    )configdialog)requiresgui)ExtraAssertionsN)mock)Func)Tk	StringVarIntVar
BooleanVarDISABLEDNORMAL)config)idleConfchangestracers )main	highlightkeys
extensionsr   r   r   r   c                  j    [         [        l        [        5       q[
        R                  " [        SSS9qg )NTestT)_utest)testcfgr   userCfgr	   rootr   ConfigDialogdialog     L/opt/python-3.13.8/usr/lib/python3.13/idlelib/idle_test/test_configdialog.pysetUpModuler#   #   s%    H4D&&tVDAFr!   c                      [         [        l        [        R                  " 5         [        R
                  " 5         [        R
                  " 5         [        R                  5         [        R                  5         S =qq
g N)usercfgr   r   r   detachclearr   r   update_idletasksdestroyr   r    r!   r"   tearDownModuler+   +   sE    HNNMMOMMOLLND6r!   c                        \ rS rSrS rS rSrg)ConfigDialogTest6   c                     g r%   r    selfs    r"   test_deactivate_current_config/ConfigDialogTest.test_deactivate_current_config8       r!   c                     g r%   r    r0   s    r"   activate_config_changes(ConfigDialogTest.activate_config_changes;   r4   r!   r    N)__name__
__module____qualname____firstlineno__r2   r6   __static_attributes__r    r!   r"   r-   r-   6   s    r!   r-   c                   ,    \ rS rSrS rS rS rS rSrg)
ButtonTest?   c                     [         n[        R                  " 5       =o!l        [        R                  " 5       =o1l        UR
                  S   R                  5         UR                  5         UR                  5         U?U?g )NOk)r   r   Mockapplyr*   buttonsinvokeassert_called_once)r1   drC   r*   s       r"   test_click_okButtonTest.test_click_okA   s\    ))+%"iik))			$   """$Iqwr!   c                    [         n[        R                  " 5       =o!l        [        R                  " 5       =o1R                  l        [        R                  " 5       =oAl        UR                  S   R                  5         UR                  5         UR                  5         UR                  5         UR                  ?U?U?g )NApply)
r   r   rB   deactivate_current_configextpagesave_all_changed_extensionsr6   rD   rE   rF   )r1   rG   
deactivatesave_extactivates        r"   test_click_applyButtonTest.test_click_applyJ   s    3799;>
0;?99;F998/3yy{:,			'!!#%%'##%##%II1%q'Br!   c                    [         n[        5       Ul        S[        S   S'   UR                  S   R                  5         U R                  [        S   0 5        U R                  UR                  R                  S5        U?g )N   r   	somethingCancel)r   r   r*   r   rD   rE   assertEqualcalledr1   rG   s     r"   test_click_cancelButtonTest.test_click_cancelV   sf    F	'($			(""$"-))1-Ir!   c                    [         R                  R                  [         R                  5        [        R
                  R                  [        S[        S9 n[         R                  S   R                  5         UR                  S   UR                  S   p2S S S 5        U R                  WS5        U R                  WS5        U R                  US5        g ! , (       d  f       NE= f)	N	view_text)new_callableHelptitlecontentszHelp for IDLE preferenceszWhen you clickza different name.
)r   noteselectkeyspager   patchobjectr   r   rD   rE   kwdsrX   assertStartsWithassertEndsWith)r1   viewra   rb   s       r"   test_click_helpButtonTest.test_click_help_   s    6??+ZZ|[,0  259NN6"))+"ii0$))J2G82 	 ;<h(89H%:;2 2s   ?C
C!r    N)	r8   r9   r:   r;   rH   rR   r[   rl   r<   r    r!   r"   r>   r>   ?   s    
C<r!   r>   c                   h    \ rS rSrSr\S 5       r\S 5       rS rS r	S r
S rS	 rS
 rS rS rSrg)FontPageTestj   zTest 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                     [         R                  =ol        [         R                  R	                  U5        [        5       Ul        UR                  5         g r%   )r   fontpagepagerc   rd   r   set_samplesupdateclsrs   s     r"   
setUpClassFontPageTest.setUpClassq   s5     //)x4 6r!   c                     U R                   ?g r%   )rs   rt   rw   s    r"   tearDownClassFontPageTest.tearDownClassx   s    HH r!   c                 .    [         R                  " 5         g r%   r   r(   r0   s    r"   setUpFontPageTest.setUp|       r!   c                    [         R                  " 5         U R                  nUR                  R	                  S5        UR
                  R	                  S5        UR                  R	                  S5        SUR                  l        UR                  5         U R                  UR                  R                  5       S5        U R                  UR
                  R                  5       S5        U R                  UR                  R                  5       5        U R                  UR                  R                  S5        [         R                  " 5         g )NFake1Tr   rU   )r   r'   rs   	font_nameset	font_size	font_boldrt   rY   load_font_cfgassertNotEqualgetassertFalserX   attachrZ   s     r"   test_load_font_cfgFontPageTest.test_load_font_cfg   s     	II			 	AKKOO-v6AKKOO-s3*+--q1r!   c                 Z   U R                   nUR                  R                  5       S:  a  U R                  S5        UR                  nUR	                  S5        UR                  R                  S5      nUR                  5         UR                  5         UR                  S5        UR                  S5        UR                  S5      nU R                  XC5        U R                  UR                  R                  5       UR                  5       5        UR                  5         UR                  5         UR                  S5        UR                  S5        UR                  S5      nU R                  XS5        U R                  UR                  R                  5       UR                  5       5        g )	N   need at least 2 fontsr   activez
<Key-Down>z<KeyRelease-Down>z<Key-Up>z<KeyRelease-Up>)rs   fontlistsizeskipTestrQ   r   focus_forceru   event_generater   assertInr   lowerrX   )r1   rG   r   font	down_fontup_fonts         r"   test_fontlist_keyFontPageTest.test_fontlist_key   s5   II::??q MM12::!zz~~h' 	- 34LL*	I,akkoo'):; 	
+ 12,,x('akkoo'9r!   c                 p   U R                   nUR                  R                  5       S:  a  U R                  S5        UR                  nUR	                  S5        UR                  5         UR                  S5        UR                  5         UR                  S5      u  p4pVX5S-  -  nXFS-  -  nUR                  SX4S9  UR                  SX4S9  UR                  S5      nUR                  S5      nU R                  X5        U R                  UR                  R                  5       UR                  5       5        g )	Nr   r   r   rU   
<Button-1>xy<ButtonRelease-1>anchor)rs   r   r   r   rQ   r   seeru   bboxr   r   rX   r   r   r   )	r1   rG   r   r   r   dxdyfont1select_fonts	            r"   test_fontlist_mouse FontPageTest.test_fontlist_mouse   s    II::??q MM12::! 	Q}}Q'b	1W	1W7 3q>Qll8,,akkoo'7r!   c                     U R                   nUR                  R                  R                  S5        U R	                  UR
                  R                  5       S5        g )N(   40)rs   sizelistvariabler   rX   r   r   rZ   s     r"   test_sizelistFontPageTest.test_sizelist   s>    II	

#*D1r!   c                 ^   U R                   nUR                  R                  S5        UR                  R	                  5         U R                  UR                  R                  5       5        UR                  R	                  5         U R                  UR                  R                  5       5        g )NF)rs   r   r   bold_togglerE   
assertTruer   r   rZ   s     r"   test_bold_toggleFontPageTest.test_bold_toggle   sk    II		)*	*+r!   c                    [         R                  " [        SS5      n[        US   5      nUS   S:H  nU R                  nUR
                  R                  U5        UR                  R                  U5        SUR                  l	        UR                  R                  S5        SSU[        U5      S.0nU R                  [        U5        U R                  UR                  R                  S5        [        R                  " 5         UR
                  R                  S	5        SSS	[        U5      S.0nU R                  [        U5        U R                  UR                  R                  S5        [        R                  " 5         UR                  R                  U(       + 5        SSS	[        U(       + 5      S.0nU R                  [        U5        U R                  UR                  R                  S
5        g )Nr   EditorWindowrU   r   boldr   z	Test Font)r   z	font-sizez	font-bold20   )r   GetFontr   strrs   r   r   r   rt   rY   r   rX   mainpager   r(   )r1   default_fontdefault_sizedefault_boldrG   expecteds         r"   test_font_setFontPageTest.test_font_set   s   
  ''fnE<?+#A&0II	%	% 	$"[2>25l2C%E F 	8,--q1	"[2625l2C%E F 	8,--q1	L()"[2625,6F2G%I J 	8,--q1r!   c                    U R                   nU?UR                  UR                  4n0 0 sUl        Ul        UR                  R                  S5        UR                  R                  S5        UR                  R                  S5        SS0nUR                  5         U R                  UR                  UR                  s=:H  =(       a    U:H  Os  5        Uu  Ul        Ul        [        5       Ul        g )Ntest5rU   r   )r   r   r   )
rs   rt   font_samplehighlight_sampler   r   r   r   r   r   )r1   rG   orig_samplesr   s       r"   test_set_samplesFontPageTest.test_set_samples   s    IIM}}a&8&88,.)q)			12 	
););GGxGH,8)q)r!   r    N)r8   r9   r:   r;   __doc__classmethodrx   r|   r   r   r   r   r   r   r   r   r<   r    r!   r"   ro   ro   j   sX       ! ! ::8.2,"2Hr!   ro   c                       \ rS rSrSr\S 5       r\S 5       rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)HighPageTesti  zTest 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                    [         R                  =ol        [         R                  R	                  U5        [        5       Ul        [        5       Ul        [        5       Ul        [        5       Ul	        UR                  5         g r%   )r   highpagers   rc   rd   r   set_theme_typepaint_theme_sampleset_highlight_targetset_color_sampleru   rv   s     r"   rx   HighPageTest.setUpClass  sS     //)x4 "f"&&$(F! $r!   c                 ,    U R                   nU?U?U?U?g r%   )rs   r   r   r   r   )rw   rG   s     r"   r|   HighPageTest.tearDownClass  s!    HHa2"A$6r!   c                 N   U R                   n[        R                  " SS5       H%  n[        R                  S   R	                  U5        M'     [
        R                  " 5         SUR                  l        SUR                  l        SUR                  l        SUR                  l        g )Nuserr   r   )rs   r   GetSectionListr   remove_sectionr   r(   r   rY   r   r   r   r1   rG   sections      r"   r   HighPageTest.setUp  s    II  ..v{CG[)88A D"#&'#()%$%!r!   c                 z   [         R                  " 5         U R                  nU R                  n[        R
                  " SS9[        l        UR                  5         U R                  UR                  R                  5       5        U" UR                  R                  5       S5        U" UR                  R                  5       S5        U" UR                  R                  5       S5        U" UR                   R"                  S5        U" UR$                  R"                  S5        U" UR&                  R"                  S5        [        R(                  " SSSS	5        [        R(                  " SS
SS5        UR                  5         U" UR                  R                  5       S5        U" UR                  R                  5       S5        U" UR                   R"                  S5        U" UR$                  R"                  S5        U" UR&                  R"                  S5        [        R
                  " S
S9[        l        [        R(                  " SSSS5        UR                  5         U R+                  UR                  R                  5       5        U" UR                  R                  5       S5        U" UR                  R                  5       S
5        U" UR                   R"                  S5        U" UR$                  R"                  S5        U" UR&                  R"                  S5        [        ?[         R,                  " 5         g )NIDLE Classicreturn_value- no custom themes -disabledrU   r   test1optionvaluetest2option2value2r   r   Themedefault0r   )r   r'   rs   rX   r   rB   r   CurrentThemeload_theme_cfgr   theme_sourcer   builtin_namecustom_namecustom_theme_onstater   rY   r   r   	SetOptionr   r   r1   rG   eqs      r"   test_load_theme_cfg HighPageTest.test_load_theme_cfg+  sV   II !%		~ F	**,-
1>>0
1== 67
1""$m4
1""A&
1&&*
1!!((!, 	;7C;HE	
1>>0
1==(
1""A&
1&&*
1!!((!, !%		w ?67Is;	++-.
1>>0
1==(
1""A&
1&&*
1!!((!,!r!   c                 ~   U R                   nU R                  n[        5       Ul        [        5       Ul        UR
                  R                  5         U" [        SSS005        U" UR                  R                  S5        U" UR                  R                  S5        [        R                  " 5         UR                  R                  S5        UR                  R                  5         U R                  [        SSS005        U" UR                  R                  S5        U" UR                  R                  S5        U?U?g )Nr   r   TruerU   r   z	!disabledFalse)rX   rs   r   var_changed_builtin_namevar_changed_custom_namebuiltin_theme_onrE   r   rY   r   r(   r   r   r1   r   rG   s      r"   test_theme_sourceHighPageTest.test_theme_sourceT  s    II%)V"$(F!	!!#
8g	6234
1%%,,a0
1$$++Q/ 	
/	  "Gi-A#BC
1%%,,a0
1$$++Q/&(Ar!   c                 8   U R                   nU R                  n/ SQn[        R                  " SSSS5        UR                  R                  US5        U" [        SSSS.05        U" UR                  S	   S
5        U" UR                  R                  S5        [        R                  " 5         [        R                  " SSSS5        UR                  R                  US5        U" [        SSS005        U" UR                  S	   S
5        U" UR                  R                  S5        [        R                  " 5         UR                  R                  US5        U" [        SSSS.05        U" UR                  S	   S5        U" UR                  R                  S5        g )N)r   	IDLE DarkIDLE Newr   r   namespamr  r   r  name2textzNew theme, see HelprU   r  r  r   r   r   )rX   rs   r   r   builtinlistSetMenur   theme_messager   rY   r   r(   r1   r   rG   	item_lists       r"   test_builtin_nameHighPageTest.test_builtin_namei  sW   II=	 	67FF;	i5
8g)4 6 7 	8
1??6"$9:
1&&* 	67FJ?	i5
8g567
1??6"$9:
1&&* 		i8
8gDEF
1??6"B'
1&&*r!   c                    U R                   nUR                  R                  / S5        U R                  S[        5        U R                  UR                  R                  S5        [        R                  " 5         UR                  R                  / SQS5        U R                  [        SSS005        U R                  UR                  R                  S5        g )Nr   r   r   abcr  r  rU   )
rs   
customlistr  assertNotInr   rX   r   rY   r   r(   rZ   s     r"   test_custom_nameHighPageTest.test_custom_name  s    II 	
R!78(+--44a8 		_c2Gfc]#;<--44a8r!   c                     U R                   n[        5       Ul        UR                  R	                  S5        U R                  UR                  R                  S5        U?g )NgreenrU   )rs   r   on_new_color_setcolorr   rX   rY   rZ   s     r"   
test_colorHighPageTest.test_color  sG    II!V	G++22A6r!   c                     U R                   nU R                  nUR                  R                  / SQS5        U" UR                  R                  5       S5        U" UR                  R                  S5        g )Nr  r  rU   )rX   rs   
targetlistr  highlight_targetr   r   rY   r	  s      r"    test_highlight_target_list_mouse-HighPageTest.test_highlight_target_list_mouse  sY    II	_c2
1!!#S)
1!!((!,r!   c                   ^ U R                   nU R                  nUR                  mTR                  5         U4S jnUR                  R                  5        VVs0 s H  u  pEXT_M	     nnnSnTR                  5        Hd  n U" TR                  US5      S   5        U" UR                  R                  5       Xe   5        US-  nU" UR                  R                  U5        Mf     g s  snnf ! [         a     M|  f = f)Nc                   > TR                  U 5        TR                  5         TR                  U 5      u  pp4XS-  -  nX$S-  -  nTR                  SSSS9  TR                  SXS9  TR                  SXS9  TR                  SXS9  g)	z'Simulate click on character at *index*.r   <Enter>r   r   <Motion><ButtonPress-1>r   N)r   r)   r   r   )indexr   r   r   r   hss        r"   
click_charAHighPageTest.test_highlight_target_text_mouse.<locals>.click_char  s    FF5M!775>LA"qLAqLAi12jA3/1:1Q<r!   r   1.0rU   )rX   rs   r   r   theme_elementsitems	tag_namestag_nextranger,  r   r   rY   
IndexError)	r1   r   rG   r6  elementtagelemcountr5  s	           @r"    test_highlight_target_text_mouse-HighPageTest.test_highlight_target_text_mouse  s    II

	= 231A1A1G1G1IJ1I1IJ <<>C2++C7:;1%%))+TY7
1))00%8 " K  s   C% A C++
C98C9c                    U R                   nU R                  nUR                  nUR                  5         UR	                  S5        UR                  5         UR                  SSSS9  UR                  SSSS9  [        S5       H%  nUR                  SSSS9  UR                  SSSS9  M'     U" UR                  S	5      S
5        g )N      ?r1  r   r   r2  r   r3  r   selr    )	rX   rs   r   r   r   r)   r   range
tag_ranges)r1   r   rG   r5  _s        r"   "test_highlight_sample_double_click/HighPageTest.test_highlight_sample_double_click  s    II

s
 	)qA.
*Q/qA/1:1Q!<  	2==$r!   c                    U R                   nU R                  nUR                  nUR                  5         UR	                  S5        UR                  5         UR                  S5      u  pEpgnUR                  S5        UR                  S5        UR                  SXES9  UR                  SXES9  UR                  SXgS9  UR                  S	XgS9  U" UR                  S
5      S5        g )NrE  r8  z<Leave>r1  r2  r   r3  z<B1-Motion>r   rF  r    )	rX   rs   r   r   r   r)   	dlineinfor   rH  )	r1   r   rG   r5  r   r   r   r   offsets	            r"   test_highlight_sample_b1_motion,HighPageTest.test_highlight_sample_b1_motion  s    II

s
!||E2bf 	)$
)$
*/
+q6
-24
-:
2==$r!   c                    U R                   nU R                  nU?UR                  R	                  S5        UR                  5         U" UR
                  S   [        5        U" UR                  S   [        5        U" UR                  R                  5       S5        UR                  R	                  S5        UR                  5         U" UR
                  S   [        5        U" UR                  R                  5       S5        U" UR                  S   [        5        U" UR                  R                  5       S5        [        5       Ul        g NTr   r   Fselectedr    )rX   rs   r   r   r   r  r   r   r   button_delete_customr   r   r   r	  s      r"   test_set_theme_type HighPageTest.test_set_theme_type  s    II 	
4 	
1==!6*
1<< (+
1!!'')=9 	
5!	
1==!8,
1""$m4
1<< &)
1!!'')2.6r!   c                    U R                   nU R                  n[        R                  R                  n[        5       =n[        R                  l        [        5       =oRl        UR                  R                  S5        UR                  R                  S5        SUl
        UR                  R                  5         U" UR                  R                  5       S5        SUR                  R                  UR                   S   S5      4Ul
        UR                  R                  5         U" UR                  R                  5       S5        SUl
        UR                  R                  S5        UR"                  R                  S5        SUl
        UR                  R                  5         U" UR$                  S	5        U" UR                  R                  5       S5        S
Ul
        UR                  R                  5         U" UR&                  R                  5       UR                  5        U" UR                  R                  5       S5        UR                  R                  S5        UR"                  R                  S5        UR                  R                  5         U" UR                  R                  5       S5        U?U[        R                  l        g )NzEditor Breakpointz#ffffff)NNr   style
background))g    k@        r[  #de0000TrU   zMy New Themer\  F)rX   rs   r   colorchooseraskcolorr   get_new_theme_namer,  r   r'  resultbutton_set_colorrE   r   rY  lookupframe_color_setr   rY   r   )r1   r   rG   orig_chooserchoosergntns         r"   test_get_colorHighPageTest.test_get_color  s   II#00997;v=,++4&*f,#	23	I &	!!#
177;;=)$ aggnnQ->->w-GVW	!!#
177;;=)$ > 	
I	4  	!!#
4;;
177;;=)$$	!!#
1==,
177;;=)$ 	
I	5!	!!#
177;;=)$ -9!!*r!   c                    U R                   nSnUR                  R                  S5        UR                  R                  S5        UR                  R                  S5        UR
                  R                  U5        U R                  UR                  R                  UR                  S   S5      U5        U R                  UR                  R                  SS5      U5        U R                  [        SS	U005        g )
Nz#3f7caePythonSelected TextTrY  rZ  hilite
foregroundzhilite-foreground)rs   r   r   r,  fg_bg_toggler'  rX   rY  rb  rc  r   tag_cgetr   )r1   rG   r'  s      r"   test_on_new_color_set"HighPageTest.test_on_new_color_set4  s    II	(#	/	4 	E(9(9'(BLQSXY++44X|LeT"%8%$@A	Cr!   c                     [         R                  n[        SS9=n[         l        U R                  nSUl        U R                  UR                  S5      S5        U[         l        g )NTreturn_selfz	New Themer   )r   SectionNamer   rs   r`  rX   r_  r1   orig_sectionnamesnrG   s       r"   test_get_new_theme_name$HighPageTest.test_get_new_theme_nameA  sS    '33(,(>>\%II	--b1;?#3 r!   c                    U R                   n[        5       =o!l        UR                  R	                  S5        SUl        UR                  R                  5         U R                  UR
                  [        R                  S   5        SUl        SUl        U R                  UR
                  [        R                  S   5        UR                  R                  5         U R                  UR
                  [        R                  S   5        U?g )NTr   r   zmy new themer   )rs   r   r_  r   r   r`  button_save_customrE   r!  r   r   rY   r   )r1   rG   rf  s      r"   test_save_as_new_theme#HighPageTest.test_save_as_new_themeK  s    II&*f,#	4  	##%h&6&6{&CD %h&6&6{&CD	##%dkk8#3#3K#@A r!   c                 ^   U R                   nU R                  nUR                  R                  S5        UR                  R                  S5        SnSnU R                  U[        R                  5        UR                  U5        U" [        R                  " SS5      U/5        U" [        R                  " SS5      [        R                  " SU5      5        U" UR                  R                  5       U5        U R                  UR                  R                  5       5        U" UR                  R                  S5        [         R"                  " SUS	S
5        U R                  U[        R                  5        UR                  U5        U" [        R                  " SS5      X4/5        U R%                  [        R                  " SU5      [        R                  " SU5      5        [        R&                  " SUS	S
5        U" [        R                  " SU5      [        R                  " SU5      5        g )NTr   zmy new custom themezmy second custom themer   r   r   rU   zhit-backgroundyellow)rX   rs   r   r   r   r!  r   r   
create_newr   GetThemeDictr   r   r   r   rY   r   
add_optionr   r   r1   r   rG   	first_new
second_news        r"   test_create_new_and_save_new)HighPageTest.test_create_new_and_save_new^  s   II 	
4 	>*)	-
 	H$4$45	Y
8""6;7)E
8  N;  3	5
1==	*++-.
1""A& 	;	3CXNX%5%56	Z 
8""6;7)9PQH11&)D$11&*E	G 	;	3CXN
8  3  4	6r!   c                    U R                   nU R                  nU?UR                  R	                  S5        U" UR
                  R                  5       S5        U" UR                  R                  5       S5        U R                  UR                  5        U" UR                  R                  S5        UR                  R	                  S5        U" UR
                  R                  5       S5        U" UR                  R                  5       S5        U R                  UR                  5        U" UR                  R                  S5        [        5       Ul        g )	NCursor)r   rT  r   rU   CommentrS  r    r   )rX   rs   r   r,  r   fg_onr   bg_onr   rn  r   rY   r   r	  s      r"   test_set_highlight_target&HighPageTest.test_set_highlight_target~  s    II" 	
x(
177==?45
177==?M*'
1$$a( 	
y)
177==?M*
177==?B'
1$$a(!%r!   c                    U R                   nUR                  nUR                  R                  5         U R	                  UR
                  S5        UR                  R                  5         U R	                  UR
                  S5        g )NrU   r   )rs   r   r  rE   rX   rY   r  )r1   rG   scss      r"   test_set_color_sample_binding*HighPageTest.test_set_color_sample_binding  sZ    II  	Q'	Q'r!   c                 p   U R                   nU?UR                  R                  S5        UR                  R                  S5        UR                  5         U R                  UR                  R                  UR                  S   S5      UR                  R                  SS5      5        [        5       Ul        g )Nrk  TrY  rZ  rl  rm  )rs   r   r,  r   rn  rX   rY  rb  rc  r   ro  r   rZ   s     r"   test_set_color_sample"HighPageTest.test_set_color_sample  s    II	/	4 	q009<H""++HlC	E "Vr!   c                 4   U R                   nU R                  nU?UR                  R                  n[
        R                  nUR                  R                  S5        UR                  R                  S5        SnUR                  U5        SUR                  l        UR                  5         SSS.nUR                  5        H  u  pxU R                  U" SU5      U5        M      U" UR                  R                  S	5        UR                  5        H!  u  px[        R                   " S
USU-   U5        M#     UR                  5         UR                  5        H  u  pxU" U" SU5      U5        M     U" UR                  R                  S5        [#        5       Ul        g )NTr  z	IDLE Testr   bluer  )rm  rZ  consolerU   r   zconsole-r   )rX   rs   r   r   ro  r   GetHighlightr   r   r   r  r   rY   r:  r   r   r  r   )	r1   r   rs   hs_tagghthemenew_consolekeyr   s	            r"   test_paint_theme_sample$HighPageTest.test_paint_theme_sample  s_   yy#&&//"" 	d#k*'($ 	!%+%-0%++-JCy# 6> .
4  ''+ &++-JC{E:c>5I .!%++-JCvi%u- .
4  ''+"&&r!   c                 :   U R                   nU R                  nUR                  R                  S5        [	        5       =o2l        [	        5       [        l        [	        5       [        l        Sn[        R                  S   R                  USS5        SS0[        U'   Sn[        R                  S   R                  USS5        SS	0[        U'   UR                  R                  S5        UR                  R                  5         UR                  R!                  U5        S
Ul        UR                  R                  5         U" UR$                  S5        U" [        U   SS05        U" [        R&                  " SS5      XE/5        U" [        R                  R$                  S5        U" [        R                  R$                  S5        U" UR(                  R$                  S5        SUl        UR                  R                  5         U" UR$                  S5        U R+                  U[        5        U" [        R&                  " SS5      U/5        U" UR                  R                  5       S5        U" UR                  R-                  5       U5        U" [        R                  R$                  S5        U" [        R                  R$                  S5        U" UR(                  R$                  S5        UR                  R!                  U5        SUl        UR                  R                  5         U" UR$                  S5        U R+                  U[        5        U" [        R&                  " SS5      / 5        U" UR                  R                  5       S5        U" UR                  R-                  5       S5        U" [        R                  R$                  S5        U" [        R                  R$                  S5        U" UR(                  R$                  S5        [        ?[        ?U?g )Nr  z
spam themer   r  r   r   r  zother themer  FrU   r   r   Tr   r    r   r   r   )rX   rs   rU  r   r   askyesnor   rL   r6   r   r   r   r   r   rE   r   r   r`  rY   r   r   r!  r   )r1   r   rG   yesno
theme_nametheme_name2s         r"   test_delete_customHighPageTest.test_delete_custom  s(   II	$$^4!V#
+/6()-&!
%//
FGL (&1#%//VWM!)7 3 	
/	  "	*% 	%%'
5<<
8J(F!34
8""6;7*9RS
6++22A6
6))00!4
1""A& 	%%'
5<<X.
8""6;7+G
1""$b)
1==,
6++22A6
6))00!4
1""A& 	
+&	%%'
5<<X.
8""6;7<
1""$m4
1== 67
6++22A6
6))00!4
1""A&*F,LJr!   r    N)r8   r9   r:   r;   r   r   rx   r|   r   r   r
  r  r"  r(  r-  rB  rJ  rO  rV  rg  rp  ry  r}  r  r  r  r  r  r  r<   r    r!   r"   r   r     s       7 7

&'RB*+89- D%(%,"*-:^C4!&6@(*(	$)@9r!   r   c                       \ rS rSrSr\S 5       r\S 5       rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rSrg)KeysPageTesti  zTest 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                     [         R                  =ol        [         R                  R	                  U5        [        5       Ul        [        5       Ul        g r%   )r   re   rs   rc   rd   r   set_keys_typeload_keys_listrv   s     r"   rx   KeysPageTest.setUpClass  s6     //)x4 !V"fr!   c                 $    U R                   nU?U?g r%   )rs   r  r  rv   s     r"   r|   KeysPageTest.tearDownClass  s    xx 3r!   c                 
   U R                   n[        R                  " SS5       H%  n[        R                  S   R	                  U5        M'     [
        R                  " 5         SUR                  l        SUR                  l        g )Nr   r   r   )
rs   r   r   r   r   r   r(   r  rY   r  r   s      r"   r   KeysPageTest.setUp  s`    II  ..vv>GV$33G< ?!""#r!   c                    [         R                  " 5         U R                  nU R                  n[        R
                  " SS9[        l        UR                  5         U R                  UR                  R                  5       5        U" UR                  R                  5       S5        U" UR                  R                  5       S5        U" UR                  R                  5       S5        U" UR                   R"                  S5        U" UR$                  R"                  S5        U" UR$                  R&                  S5        [        R(                  " SSS	S
5        [        R(                  " SSSS5        UR                  5         U" UR                  R                  5       S5        U" UR                  R                  5       S5        U" UR                   R"                  S5        U" UR$                  R"                  S5        U" UR$                  R&                  S5        [        R
                  " SS9[        l        [        R
                  " SS9[        l        [        R(                  " SSSS5        UR                  5         U R-                  UR                  R                  5       5        U" UR                  R                  5       S5        U" UR                  R                  5       S5        U" UR                   R"                  S5        U" UR$                  R"                  S5        U" UR$                  R&                  S5        [        ?[        ?[         R.                  " 5         g )NIDLE Classic OSXr   - no custom keys -r   rU   r  r   r   r   r   r   r   r   r   zIDLE Modern Unixr   Keysr   r   r   )r   )r   r'   rs   rX   r   rB   r   CurrentKeysload_key_cfgr   keyset_sourcer   r   r   custom_keyset_onr   r  rY   r  argsr   default_keysr   r   r   s      r"   test_load_key_cfgKeysPageTest.test_load_key_cfg!  sg   II  $yy6HI	++-.
1>>!34
1== 45
1##%}5
1??!!1%
1""A&
1  "89 	67Hg>67Ix@	
1>>!34
1==(
1??!!1%
1""A&
1  "89  $yyg> $		7I J669c:	,,./
1>>!34
1==(
1??!!1%
1""A&
1  +. ("7r!   c                 ~   U R                   nU R                  n[        5       Ul        [        5       Ul        UR
                  R                  5         U" [        SSS005        U" UR                  R                  S5        U" UR                  R                  S5        [        R                  " 5         UR                  R                  S5        UR                  R                  5         U R                  [        SSS005        U" UR                  R                  S5        U" UR                  R                  S5        U?U?g )Nr  r   r  rU   r   r  r  )rX   rs   r   r  r  builtin_keyset_onrE   r   rY   r   r(   r  r   r	  s      r"   test_keyset_sourceKeysPageTest.test_keyset_sourceK  s    II%)V"$(F!	""$
8fy&123
1%%,,a0
1$$++Q/ 	
  0	!!#FY,@#AB
1%%,,a0
1$$++Q/&(Ar!   c                    U R                   nU R                  n[        R                  S   R	                  S5        / SQnUR
                  R                  US5        U" [        SSSS.05        U" UR                  S   S5        U" UR                  R                  S	5        U" UR                  R                  S
5        [        R                  " 5         [        R                  " SSSS5        UR
                  R                  US5        U" [        SSS005        U" UR                  S   S5        U" UR                  R                  S5        U" UR                  R                  S
5        [        R                  " 5         UR
                  R                  US5        U" [        SSSS.05        U" UR                  S   S5        U" UR                  R                  S5        U" UR                  R                  S5        g )Nr   r  )IDLE Classic Windowsr  IDLE Modern UNIXr  r  r  r  zNew key set, see HelprU   )r  r  zIDLE Classic Unixr  r   r  r   r   r  )rX   rs   r   r   r   r  r  r   keys_messager  rY   r  r   r(   r   r  s       r"   r  KeysPageTest.test_builtin_name`  s   II //7)	 	
i);<
8f'=(:< = 	>
1>>&!#:;
1""A&
1  "89 	6663FG	i);<
8fw(:;<=
1>>&!#:;
1""A&
1  "89 		i);<
8f'9BGHI
1>>&!2&
1""A&
1  "89r!   c                    U R                   nUR                  R                  / S5        U R                  S[        5        U R                  UR                  R                  S5        [        R                  " 5         UR                  R                  / SQS5        U R                  [        SSS005        U R                  UR                  R                  S5        g )Nr  r  r   r  r  r  rU   )
rs   r   r  r!  r   rX   r  rY   r   r(   rZ   s     r"   r"  KeysPageTest.test_custom_name  s    II 	
R!56*))00!4 		_c2FVSM#:;))00!4r!   c                    [         R                  " SSSS5        U R                  nUR                  R	                  S5        UR
                  R                  SS5        UR
                  R                  SS5        UR
                  R                  S	S
5        UR
                  R                  S5        UR
                  R                  S5        UR                  R	                  S5        U R                  [        SSS005        UR
                  R                  S	5        UR
                  R                  S	5        UR                  R	                  S5        U R                  [        SS
S005        g )Nr   ZzDummyenabler  zmy custom keysr   endcopyrU   zz-in	<Key-F11>ZzDummy_cfgBindings)r   r   rs   r   r   bindingslistdeleteinsertselection_setselection_anchor
keybindingrX   re   rM   rZ   s     r"   test_keybindingKeysPageTest.test_keybinding  s   <HfEII	*+	a'	a(	a(	$$Q'	''*	%*V[,AB	D 	
$$Q'	''*	%/&+1FG	Ir!   c                    U R                   nU R                  nU?UR                  R	                  S5        UR                  5         U" UR
                  S   [        5        U" UR                  S   [        5        U" UR                  R                  5       S5        UR                  R	                  S5        UR                  5         U" UR
                  S   [        5        U" UR                  R                  5       S5        U" UR                  S   [        5        U" UR                  R                  5       S5        [        5       Ul        g rR  )rX   rs   r  r  r   r  r   r   r   button_delete_custom_keysr   r  r   r	  s      r"   test_set_keys_typeKeysPageTest.test_set_keys_type  s    IIO 	
D!	
1==!6*
1<< (+
1&&,,.> 	
E"	
1==!8,
1##%}5
1<< &)
1&&,,.3&r!   c                    U R                   nU R                  n[        R                  n[	        SS9=n[        l        [	        5       =oRl        UR                  R                  S5        UR                  R                  SS5        UR                  R                  SS5        UR                  R                  S5        UR                  R                  S5        UR                  R                  S5        UR                  R                  S5        SUl        UR                  R#                  5         U" UR                  R%                  S	5      S5        U" UR                  R%                  5       S5        S
Ul        SUl        UR                  R#                  5         U" UR&                  S5        U" UR                  R%                  S	5      S5        SUl        UR                  R#                  5         U" UR(                  R%                  5       UR                   5        U" UR                  R%                  S	5      S5        U" UR                  R%                  5       S
5        UR                  R                  S5        SUl        SUl        UR                  R#                  5         U" UR&                  S5        U" UR                  R%                  S	5      S5        U" UR                  R%                  5       S5        U?U[        l        g )NTrs  r  r   r  zcopy - <Control-Shift-Key-C>zKey-ar   r   r  rU   zMy New Key Setzcopy - <Key-F11>Fz<Key-p>zcopy - <Key-p>)rX   rs   r   GetKeysWindowr   get_new_keys_namebutton_new_keysr   r  r  r  r  r  r  r   r  r`  rE   r   rY   r   )r1   r   rG   orig_getkeysdialoggkdgnkns         r"   test_get_new_keysKeysPageTest.test_get_new_keys  sB   II)77+/D+AAl(%)V+"	/	a'	a!?@	$$Q'	''*	!	D! 
	  "
1>>h')GH
1<<w' !
	  "
4;;
1>>h')GH&	  "
1==,
1>>h');<
1<<{+ 	
E"
	  "
4;;
1>>h')9:
1<<y)%7"r!   c                     [         R                  n[        SS9=n[         l        U R                  nSUl        U R                  UR                  S5      S5        U[         l        g )NTrs  zNew Keysr   )r   ru  r   rs   r`  rX   r  rv  s       r"   test_get_new_keys_name#KeysPageTest.test_get_new_keys_name  sS    '33(,(>>\%II	,,R0*=#3 r!   c                    U R                   n[        5       =o!l        UR                  R	                  S5        SUl        UR                  R                  5         SUl        SUl        U R                  UR
                  [        R                  S   5        UR                  R                  5         U R                  UR
                  [        R                  S   5        U?g )NTr   zmy new key setr   r   )rs   r   r  r  r   r`  button_save_custom_keysrE   rY   r!  r   r   r   )r1   rG   r  s      r"   test_save_as_new_key_set%KeysPageTest.test_save_as_new_key_set  s    II%)V+"	D! 	!!((* 'h&6&6v&>?	!!((*dkk8#3#3F#;<r!   c                    U R                   nUR                  nUR                  SS5        UR                  SS5        UR                  SS5        UR	                  S5        UR                  5         UR                  S5        UR                  5         UR                  S5      u  p4pVX5S-  -  nXFS-  -  nUR                  SSSS9  UR                  S	X4S9  UR                  S
X4S9  UR                  SX4S9  U R                  UR                  S5      S5        U R                  UR                  R                  5       S5        g )Nr   r  r  rU   findr   r1  r   r2  r   r   r   r    )rs   r  r  r  rQ   r   r   ru   r   r   rX   r   r  r   )r1   rG   r  r   r   r   r   s          r"   test_on_bindingslist_select(KeysPageTest.test_on_bindingslist_select  s   IINN	E	F	F	

1		a	
vvayb	1W	1W	a1-	q.	0	,7x&1**002B7r!   c                 R   U R                   nU R                  nUR                  R                  S5        UR                  R                  S5        SnSnU R                  U[        R                  5        UR                  U5        U" [        R                  " SS5      U/5        U" [        R                  " S5      [        R                  " U5      5        U" UR                  R                  5       U5        U R                  UR                  R                  5       5        U" UR                  R                  S5        [         R"                  " SUSS	5        U R                  U[        R                  5        UR                  U5        U" [        R                  " SS5      X4/5        U R%                  [        R                  " U5      [        R                  " U5      5        [        R&                  " SUSS	5        U" [        R                  " U5      [        R                  " U5      5        g )
NTr  zmy new custom key setzmy second custom keysetr   r   rU   r  r  )rX   rs   r  r   r   r!  r   r   create_new_key_setr   	GetKeySetr   r   r   r  rY   r   r  r   r   r  s        r"   ,test_create_new_key_set_and_save_new_key_set9KeysPageTest.test_create_new_key_set_and_save_new_key_set  s   II 	
D!	12+	.
 	H$4$45	Y'
8""662YK@
845i(	*
1==	*,,./
1??!!1% 	69fkBX%5%56	Z(
8""662Y4KLH..y9$..z:	< 	69fkB
8i((*<*<Z*HIr!   c                    U R                   nU R                  n[        5       =n[        l        U?UR                  nUR                  SS5        UR                  SS5        UR                  SS5        SS/S/S	/S
.Ul	        [        R                  " SSSS5        SnUR                  S5        U" UR                  SS5      U5        U" UR                  S5      S5        U" UR                  5       S5        UR                  S5        UR                  S5        UR                  S5        U" UR                  SS5      U5        U" UR                  S5      S5        U" UR                  5       S5        UR                  S5        UR                  S5        UR                  S5        U" UR                  SS5      U5        U" UR                  S5      S5        U" UR                  5       S5        [        5       Ul        [        ?g )Nr   r  z<<find>>rU   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>r   r   r    r  )rU   r   r  )r   )rX   rs   r   r   r  r  r  r  r  r`  r   r  r   curselectionr  r  )r1   r   rG   gksr  r   s         r"   test_load_keys_list KeysPageTest.test_load_keys_list8  s   II#'6)h NN	E	J	J#46G"H5J4K#.-1
 	69foF,
 	
#
155E?H%
155?B
1>>R  	
	1	#
155E?H%
155?JK
1>>U# 	
	1	#
155E?H%
155?23
1>>U#6r!   c                 :   U R                   nU R                  nUR                  R                  S5        [	        5       =o2l        [	        5       [        l        [	        5       [        l        Sn[        R                  S   R                  USS5        SS0[        U'   Sn[        R                  S   R                  USS5        SS	0[        U'   UR                  R                  S5        UR                  R                  5         UR                  R!                  U5        S
Ul        UR                  R                  5         U" UR$                  S5        U" [        U   SS05        U" [        R&                  " SS5      XE/5        U" [        R                  R$                  S5        U" [        R                  R$                  S5        U" UR(                  R$                  S5        SUl        UR                  R                  5         U" UR$                  S5        U R+                  U[        5        U" [        R&                  " SS5      U/5        U" UR                  R                  5       S5        U" UR                  R-                  5       U5        U" [        R                  R$                  S5        U" [        R                  R$                  S5        U" UR(                  R$                  S5        UR                  R!                  U5        SUl        UR                  R                  5         U" UR$                  S5        U R+                  U[        5        U" [        R&                  " SS5      / 5        U" UR                  R                  5       S5        U" UR                  R-                  5       S5        U" [        R                  R$                  S5        U" [        R                  R$                  S5        U" UR(                  R$                  S5        [        ?[        ?U?g )Nr  zspam key setr   r  r   r   r  zother key setr  FrU   r   r   Tr   r    r   r   r  )rX   rs   r  r   r   r  r   rL   r6   r   r   r   re   r  rE   r   r   r`  rY   r   r  r!  r   )r1   r   rG   r  keyset_namekeyset_name2s         r"   test_delete_custom_keys$KeysPageTest.test_delete_custom_keysc  s"   II	##)).9!V#
+/6()-&$ **;H!)6 2& **<I"*G!4 	
  0	!!#	+& 	##**,
5<<
8K 8V"45
8""662[4OP
6++22A6
6))00!4
1??!!1% 	##**,
5<<h/
8""662\NC
1##%r*
1==-
6++22A6
6))00!4
1??!!1% 	
,'	##**,
5<<h/
8""662B7
1##%}5
1== 45
6++22A6
6))00!4
1??!!1%*F,LJr!   r    N)r8   r9   r:   r;   r   r   rx   r|   r   r  r  r  r"  r  r  r  r  r  r  r  r  r  r<   r    r!   r"   r  r    s|     % % 4 4$(TB*:@5I*!*.8`4 $8*J>)V9r!   r  c                   ^    \ rS rSrSr\S 5       rS rS rS r	S r
S rS	 rS
 rS rS rSrg)WinPageTesti  zTest that general tab widgets enable users to make changes.

Test that widget actions set vars, that var changes add
options to changes.
c                     [         R                  =ol        [         R                  R	                  U5        UR                  5         g r%   )r   winpagers   rc   rd   ru   rv   s     r"   rx   WinPageTest.setUpClass  s+     ..(x4 r!   c                 .    [         R                  " 5         g r%   r   r0   s    r"   r   WinPageTest.setUp  r   r!   c                    U R                   nU R                  nUR                  R                  S5        UR                  R                  S5        UR
                  R                  S5        UR                  5         U" UR                  R                  5       S5        U" UR                  R                  5       S5        U" UR
                  R                  5       S5        g )NrU   r   80r   )rX   rs   startup_editr   	win_width
win_heightload_windows_cfgr   r	  s      r"   test_load_windows_cfg!WinPageTest.test_load_windows_cfg  s    II	1			
1>>#
1;;??d#
1<<t$r!   c                    U R                   nUR                  R                  5         U R                  [        SSS005        [
        R                  " 5         UR                  R                  5         U R                  [        SSS005        g )NGeneralzeditor-on-startupr   r   )rs   startup_editor_onrE   rX   r   r   r(   startup_shell_onrZ   s     r"   test_startupWinPageTest.test_startup  sv    II	""$#&93%?@	B	!!##&93%?@	Br!   c                    U R                   nUR                  R                  SS5        UR                  R                  SS5        U R	                  [
        SSS005        [        R                  " 5         UR                  R                  SS5        UR                  R                  SS5        U R	                  [
        SSS005        g )Nr   r  11r   heightwidth)	rs   win_height_intr  r  rX   r   r   r(   win_width_intrZ   s     r"   test_editor_sizeWinPageTest.test_editor_size  s    II	5)	4(NXt4D#EF	q%(	q$'NWdO#DEr!   c                     U R                   nUR                  R                  S5        U R                  UR                  R                  5       S5        U R                  [        SSS005        g )N   6Indentz
num-spaces)rs   indent_chooserr   rX   indent_spacesr   r   rZ   s     r"   test_indent_spacesWinPageTest.test_indent_spaces  sV    II	Q,,.4H|S.A#BCr!   c                     U R                   R                  R                  5         U R                  [        SSS005        g )Nr   zcursor-blinkr  )rs   cursor_blink_boolrE   rX   r   r0   s    r"   test_cursor_blinkWinPageTest.test_cursor_blink  s2    		##**,N^W4M#NOr!   c                     U R                   R                  R                  SS5        U R                   R                  R                  SS5        U R	                  [
        SSS005        g )Nr   r  r  AutoComplete	popupwait)rs   auto_wait_intr  r  rX   rM   r0   s    r"   test_autocomplete_wait"WinPageTest.test_autocomplete_wait  sP    		&&q%0		&&q$/>K3F"GHr!   c                    U R                   nU R                  nUR                  S   R                  S5        U" [        SSS005        [
        R                  " 5         UR                  R                  SS5        UR                  R                  SS5        U" [        SSS005        [
        R                  " 5         UR                  R                  5         U" [        SS	S
005        g )Nmenur   
ParenMatchrY  openerr  r  zflash-delaybellr  )rs   rX   paren_style_typerE   rM   r   r(   paren_flash_timer  r  bell_onr   s      r"   test_parenmatchWinPageTest.test_parenmatch  s    II	6"))!,
7\GX#678	!!!U+	!!!T*
7\M4#89:			
7\FG#456r!   c                     U R                   R                  R                  SS5        U R                   R                  R                  SS5        U R	                  [
        SSS005        g )Nr   r  r  FormatParagraphz	max-width)rs   format_width_intr  r  rX   rM   r0   s    r"   test_paragraphWinPageTest.test_paragraph  sQ    		""))!U3		""))!T2#4{D6I"JKr!   r    N)r8   r9   r:   r;   r   r   rx   r   r  r  r  r&  r*  r0  r:  r?  r<   r    r!   r"   r  r    sN    
  

%BFDPI
7Lr!   r  c                   @    \ rS rSrSr\S 5       rS rS rS r	S r
Srg	)
ShedPageTesti  zTest that shed tab widgets enable users to make changes.

Test that widget actions set vars, that var changes add
options to changes.
c                     [         R                  =ol        [         R                  R	                  U5        UR                  5         g r%   )r   shedpagers   rc   rd   ru   rv   s     r"   rx   ShedPageTest.setUpClass  s+     //)x4 r!   c                 .    [         R                  " 5         g r%   r   r0   s    r"   r   ShedPageTest.setUp  r   r!   c                     U R                   nU R                  nUR                  R                  S5        UR	                  5         U" UR                  R                  5       S5        g )NrU   r   )rX   rs   autosaver   load_shelled_cfgr   r	  s      r"   test_load_shelled_cfg"ShedPageTest.test_load_shelled_cfg  sG    II	

q	
1::>>Qr!   c                     U R                   nUR                  R                  5         U R                  [        SSS005        UR
                  R                  5         U R                  [        SSS005        g )Nr  rI  r   r   )rs   save_auto_onrE   rX   r   save_ask_onrZ   s     r"   test_autosaveShedPageTest.test_autosave  s_    II	I
C/@#AB	I
C/@#ABr!   c                     U R                   R                  R                  SS5        U R                   R                  R                  SS5        U R	                  [
        SSS005        g )Nr   r  r   CodeContextmaxlines)rs   context_intr  r  rX   rM   r0   s    r"   test_contextShedPageTest.test_context  sP    		$$Q.		$$Q,=:s2C"DEr!   r    N)r8   r9   r:   r;   r   r   rx   r   rK  rP  rV  r<   r    r!   r"   rB  rB    s1    
  
 CFr!   rB  c                   (    \ rS rSrSr\S 5       rSrg)ExtPageTesti  /Test that the help source list works correctly.c                 b    [         R                  n[         R                  R                  U5        g r%   )r   rM   rc   rd   rv   s     r"   rx   ExtPageTest.setUpClass  s    ~~4 r!   r    N)r8   r9   r:   r;   r   r   rx   r<   r    r!   r"   rY  rY    s    9! !r!   rY  c                   h    \ rS rSrSr\S 5       r\S 5       rS rS r	S r
S rS	 rS
 rS rS rSrg)HelpSourceTesti  rZ  c                     [         R                  n[         R                  R                  U5        UR                  =o l        [        5       =Ul        Ul        [        5       =Ul	        Ul
        UR                  5         g r%   )r   rM   rc   rd   
frame_helpframer   r   set_add_delete_stateupcupdate_help_changesru   )rw   rs   ra  s      r"   rx   HelpSourceTest.setUpClass  sV    ~~4  OO+	157	E.046	E-r!   c                     U R                   nU?U?U?U?UR
                  R                  SS5        UR                  R                  5         g )Nr   r  )	ra  r   rb  rc  rd  helplistr  user_helplistr(   )rw   ra  s     r"   r|   HelpSourceTest.tearDownClass(  sE    		Iu1Iu0a'!!#r!   c                 .    [         R                  " 5         g r%   r   r0   s    r"   r   HelpSourceTest.setUp0  r   r!   c                 >   U R                   nU R                  nUR                  R                  SS5        SS/Ul        [
        R                  " SSSS5        UR                  5         U" UR                  R                  SS5      S	5        U" UR                  S
/5        g )Nr  badworser   	HelpFilesr   z	name;filer   )r  )r  filer   )	rX   ra  rg  r  rh  r   r   load_helplistr   r1   r   frs      r"   test_load_helplist!HelpSourceTest.test_load_helplist3  s    ZZ
5%(!7+6;[A

2;;??1e$i0
2345r!   c                    U R                   nUR                  Ul        UR                  Ul        UR
                  nSnUR                  US5        UR                  U5        UR                  5         UR                  U5        UR                  5         UR                  U5      u  pEpgXFS-  -  nXWS-  -  nS=UR                  l        UR                  l        UR                  SSSS9  UR                  SXES9  UR                  SXES9  UR                  S	XES9  U R                  UR                  S
5      S5        U R!                  UR                  R                  5        U R#                  UR                  R                  5        g )Nr  sourcer   r   r1  r   r2  r   r   r   )ra  rb  r   rd  rc  rg  r  rQ   r   r   ru   r   rY   r   rX   r   r   r   )r1   rs  rg  dexr   r   r   r   s           r"   test_source_selected#HelpSourceTest.test_source_selected=  sA   ZZ(('';;X&#S}}S)b	1W	1W())	Q!4
a57 3q>h/:&'r!   c                    U R                   nU R                  nU?UR                  nUR                  nUR	                  SS5        U" 5         U" UR
                  R                  5       S5        U" UR                  R                  5       S5        UR                  SS5        U" 5         U" UR
                  R                  5       S5        U" UR                  R                  5       S5        UR                  S5        U" 5         U" UR
                  R                  5       S5        U" UR                  R                  5       S5        [        5       Ul        g )Nr   r  r   rw  r    )rX   ra  rb  rg  r  button_helplist_editr   button_helplist_remover  r  r   )r1   r   rs  sadhs        r"   test_set_add_delete_state(HelpSourceTest.test_set_add_delete_stateU  s   ZZ#%%KK	E
2""((*M:
2$$**,m<	H
2""((*M:
2$$**,m<	
2""((*B/
2$$**,b1"&&r!   c                    U R                   n[        R                  n[        SS9=n[        l        U R                  nUR
                  R                  SS5        UR                  R                  5         S=UR                  l
        UR                  l
        SUl        UR                  5         U R                  [        UR
                  R!                  SS5      5      UR                  s=:H  =(       a    / :H  Os  5        U R#                  UR                  R                  5        SUl        UR                  5         SUl        UR                  5         U" UR
                  R!                  SS5      S5        U" UR                  SS/5        U" UR                  R                  S	5        U R#                  UR                  R                  5        U[        l        g )
NTrs  r   r  r   name1file1r  file2)r  r  r   )rX   r   
HelpSourcer   ra  rg  r  rh  r(   r   rY   rc  r`  helplist_item_addr   listr   r   r1   r   orig_helpsourcer5  rs  s        r"   test_helplist_item_add%HelpSourceTest.test_helplist_item_addm  s^    &11'+'==\$ZZ
1e$
 ())	
R[[__Q67((/ /,./ 	0'&	
&	

2;;??1e$&89
202DEF
266==!'"1r!   c                 d   U R                   n[        R                  n[        SS9=n[        l        U R                  nUR
                  R                  SS5        UR
                  R                  SS5        UR
                  R                  S5        UR
                  R                  S5        UR                  R                  5         UR                  R                  S5        S=UR                  l        UR                  l        SUl        UR#                  5         SUl        UR#                  5         U" UR
                  R%                  SS5      S5        U" UR                  S/5        U R'                  UR                  R                  5        S	Ul        UR#                  5         U" UR
                  R%                  SS5      S
5        U" UR                  S	/5        U R)                  UR                  R                  UR                  R                  s=:H  =(       a    S:H  Os  5        U[        l        g )NTrs  r   r  r  r  r   )r  r  )r  rU   )rX   r   r  r   ra  rg  r  r  r  r  rh  r(   appendr   rY   rc  r`  helplist_item_editr   r   r   r  s        r"   test_helplist_item_edit&HelpSourceTest.test_helplist_item_edit  s   &11'+'==\$ZZ
1e$
1g&
!!!$
$$Q'
 
 23())	
&	

2;;??1e$j1
2012'&	

2;;??1e$j1
2012;;!;<"1r!   c                    U R                   nU R                  nUR                  R                  SS5        UR                  R	                  SS5        UR                  R                  S5        UR                  R                  S5        UR                  R                  5         UR                  R                  S5        S=UR                  l        UR                  l        UR                  5         U" UR                  R                  SS5      S5        U" UR                  / 5        U R                  UR                  R                  UR                  R                  s=:H  =(       a
    S:H  5        g s  5        g )Nr   r  r  r  r    rU   )rX   ra  rg  r  r  r  r  rh  r(   r  r   rY   rc  helplist_item_remover   r   rr  s      r"   test_helplist_item_remove(HelpSourceTest.test_helplist_item_remove  s   ZZ
1e$
1g&
!!!$
$$Q'
 
 23())
!
2;;??1e$b)
2R ;;!;<;<r!   c                 6   U R                   nU?UR                  R                  5         UR                  R	                  S5        UR                  R	                  S5        UR                  5         U R                  [        S   SSS.5        [        5       Ul        g )Nr  r  ro  zname1;file1zname2;file2)r   2)ra  rd  rh  r(   r  rX   r   r   )r1   rs  s     r"   test_update_help_changes'HelpSourceTest.test_update_help_changes  s    ZZ"
 
 23
 23
 +.,=A	C!%r!   r    N)r8   r9   r:   r;   r   r   rx   r|   r   rt  ry  r  r  r  r  r  r<   r    r!   r"   r^  r^    sS    9  $ $6(0)0282<= 
(r!   r^  c                   d    \ rS rSr\S 5       r\S 5       rS rS rS r	S r
S rS	 rS
 rS rSrg)VarTraceTesti  c                     [         R                  " 5       U l        [        [        5      U l        [        [        5      U l        g r%   )r   VarTracer   r   r   ivr   bvr{   s    r"   rx   VarTraceTest.setUpClass  s)    "++-D!r!   c                     U ? U ?U ?g r%   )r   r  r  r{   s    r"   r|   VarTraceTest.tearDownClass  s    Kr!   c                 F    U R                   R                  5         SU l        g )Nr   )r   r(   rY   r0   s    r"   r   VarTraceTest.setUp  s    r!   c                 .    U =R                   S-  sl         g )N   rY   r1   paramss     r"   var_changed_increment"VarTraceTest.var_changed_increment  s    rr!   c                     g r%   r    r  s     r"   var_changed_boolean VarTraceTest.var_changed_boolean  r4   r!   c                     U R                   nUR                  5         U R                  UR                  / 5        U R                  UR                  / 5        g r%   )r   __init__rX   untracedtracedr1   trs     r"   	test_initVarTraceTest.test_init  s<    \\
b)B'r!   c                    U R                   nUR                  R                  S5        UR                  R                  S5        UR	                  5         U R                  UR                  / 5        U R                  UR                  / 5        g )Nr   rU   )r   r  r  r  r(   rX   r  s     r"   
test_clearVarTraceTest.test_clear  s`    \\
1
		

b)B'r!   c                    U R                   n[        5       n[        R                  " US9=o1l        UR                  U R                  U R                  5      nU R                  X@R                  5        UR                  U R                  U R                  5      nU R                  XPR                  5        [        [        5      nUR                  US5      nU R                  Xv5        UR                  5         UR                  US5        X@R                  4XPR                  4Xb4/nU R                  UR                   / 5        U R                  UR"                  U5        U?g )Nr   r   r   r   )r   r   r   rB   make_callbackaddr  r  assertIsr  r  r
   r   rF   assert_called_withrX   r  r  )	r1   r  funccbr  r  svsv2r   s	            r"   test_addVarTraceTest.test_add  s   \\v $		t <<VVDGGT778b''"VVDGGT556b''"t_ffR67c

b"?@334112J  	B'h/r!   c                    U R                   R                  U R                  S5      nU R                  [	        U5      5        U R                  R                  S5        U R                  S[        S   5        U" 5         U R                  S[        S   5        U R                  [        S   S   S   S5        [        R                  " 5         g )Nr  *   r   r   r   42)r   r  r  r   callabler   r!  r   r   rX   r(   )r1   r  s     r"   test_make_callbackVarTraceTest.test_make_callback   s    \\''1NO%BGFO4
i13H=tDr!   c                    U R                   nUR                  U R                  U R                  5      nUR                  U R                  U R
                  5      nX R                  4X0R
                  4/nUR                  5         U R                  UR                  / 5        U R                  UR                  U5        UR                  S5        U R                  UR                  5       S5        U R                  U R                  S5        SU l        UR                  5         UR                  S5        U R                  U R                  S5        SU l        UR                  5         U R                  UR                  / 5        U R                  UR                  U5        UR                  S5        U R                  U R                  S5        g )NrU   r  r   )r   r  r  r  r  r  r   rX   r  assertCountEqualr  r   r   rY   r'   )r1   r  r  r  r   s        r"   test_attach_detachVarTraceTest.test_attach_detach  sP   \\VVDGGT778VVDGGT5563341124 			b)bii2
q	1%b)
 
		
q	b) 
		B'bkk84
q	a(r!   r  N)r8   r9   r:   r;   r   rx   r|   r   r  r  r  r  r  r  r  r<   r    r!   r"   r  r    sP    " "
 ( (((0
)r!   r  __main__r   )	verbosity)0r   idlelibr   test.supportr   test.support.testcaser   unittestr   idlelib.idle_test.mock_idler   tkinterr	   r
   r   r   r   r   r   idlelib.configdialogr   r   r   r   r&   IdleUserConfParserr   r   r   r   r   re   rM   r#   r+   TestCaser-   r>   ro   r   r  r  rB  rY  r^  r  r8   r   r    r!   r"   <module>r     s   ! !  1   , I I  ; ;
 

%%b)**2.%%b)++B/	 	6?;6?
,
Bx(( (<""O (<V[8$$ [|y8$$ yxX8$$ XvNL(## NLb!F8$$ !FJ!(## !d(X&& d(Ne)8$$ e)P zMMA r!   