Ë
    #´˜j[}  ã                   óŠ  — d Z ddlmZ ddlZddlZddlZddlmZmZ ddl	Z	ddl	m
Z
 ddlZddlmZ ej                  Zej                  Zi Z ej"                  d«      xZed<    ej"                  d«      xZed	<    ej"                  d«      xZed
<    ej"                  d«      xZed<   d„ Zd„ Z G d„ de	j0                  «      Z G d„ de	j0                  «      Z G d„ de	j0                  «      Z G d„ de	j0                  «      Z G d„ de	j0                  «      Z G d„ de	j0                  «      Zedk(  r e	j@                  d¬«       yy)zÒTest config, coverage 93%.
(100% for IdleConfParser, IdleUserConfParser*, ConfigChanges).
* Exception is OSError clause in Save method.
Much of IdleConf is also exercised by ConfigDialog and test_configdialog.
é    )ÚconfigN)Úcaptured_stderrÚfindfile)Úmock)ÚFuncÚ ÚmainÚ	highlightÚkeysÚ
extensionsc                  ó8   — t         t        _        dt        _        y )NT)ÚtestcfgÚidleConfÚuserCfgÚidlelibÚtesting© ó    ú/lib/python3.12/idlelib/idle_test/test_config.pyÚsetUpModuler      s   € Ü„HÔØ„G…Or   c                  ó8   — t         t        _        dt        _        y )NF)Úusercfgr   r   r   r   r   r   r   ÚtearDownModuler   !   s   € Ü„HÔØ„G…Or   c                   ó,   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zy)ÚIdleConfParserTestzTest that IdleConfParser workszœ
        [one]
        one = false
        two = true
        three = 10

        [two]
        one = a string
        two = true
        three = false
    c                 óà  — t        j                  d«      }|j                  | j                   «       | j                  }| j	                  |j                  ddd¬«      d«       | j	                  |j                  ddd¬«      d«        ||j                  ddd	¬«      d
«        ||j                  dd«      d«       | j	                  |j                  ddd¬«      d«       | j	                  |j                  ddd¬«      d«        ||j                  dd«      d«        ||j                  dd«      d«       | j                  |j                  dd«      «        ||j                  ddd¬«      d«       y )Nr   ÚoneÚbool©ÚtypeFÚtwoTÚthreeÚinté
   za stringÚtrueÚfalseÚnotÚexistÚDEFAULT©Údefault)r   ÚIdleConfParserÚread_stringÚassertEqualÚassertIsÚGetÚassertIsNone)ÚselfÚparserÚeqs      r   Útest_getzIdleConfParserTest.test_get5   s3  € Ü×&Ñ& rÓ*ˆØ×Ñ˜4Ÿ;™;Ô'Ø×Ñˆð 	�‰�f—j‘j ¨°F�jÓ;¸UÔCØ�‰�f—j‘j ¨°F�jÓ;¸TÔBÙ
ˆ6�:‰:�e˜W¨5ˆ:Ó1°2Ô6Ù
ˆ6�:‰:�e˜UÓ# ZÔ0Ø�‰�f—j‘j ¨°F�jÓ;¸TÔBØ�‰�f—j‘j ¨°f�jÓ=¸uÔEñ 	ˆ6�:‰:�e˜UÓ# VÔ,Ù
ˆ6�:‰:�e˜WÓ% wÔ/ð 	×Ñ˜&Ÿ*™* U¨GÓ4Ô5Ù
ˆ6�:‰:�e˜W¨iˆ:Ó8¸)ÕDr   c                 ó  — t        j                  d«      }|j                  | j                   «       |j                  }| j	                   |d«      g d¢«       | j	                   |d«      g d¢«       | j                   |d«      g «       y )Nr   r   )r   r!   r"   r!   z	not exist)r   r,   r-   ÚGetOptionListÚassertCountEqualr.   )r2   r3   Úget_lists      r   Útest_get_option_listz'IdleConfParserTest.test_get_option_listJ   sn   € Ü×&Ñ& rÓ*ˆØ×Ñ˜4Ÿ;™;Ô'Ø×'Ñ'ˆØ×Ñ™h u›oÒ/FÔGØ×Ñ™h u›oÒ/FÔGØ×Ñ™ +Ó.°Õ3r   c                 óŽ   — t        j                  d«      }|j                  «        | j                  |j	                  «       g «       y )Nr   )r   r,   ÚLoadr.   Úsections©r2   r3   s     r   Útest_load_nothingz$IdleConfParserTest.test_load_nothingR   s2   € Ü×&Ñ& rÓ*ˆØ�‰ŒØ×Ñ˜Ÿ™Ó*¨BÕ/r   c                 óð   — t        dd¬«      }t        j                  |«      }|j                  «        | j	                  |j                  dd«      d«       | j	                  |j                  d«      dg«       y )Núcfgparser.1Ú
configdata©ÚsubdirúFoo BarÚfooÚnewbar)r   r   r,   r<   r.   r0   r7   )r2   Úconfig_pathr3   s      r   Útest_load_filez!IdleConfParserTest.test_load_fileW   s_   € ä˜}°\ÔBˆÜ×&Ñ& {Ó3ˆØ�‰Œà×Ñ˜Ÿ™ I¨uÓ5°xÔ@Ø×Ñ˜×-Ñ-¨iÓ8¸5¸'ÕBr   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r5   r:   r?   rI   r   r   r   r   r   &   s"   „ Ù(ð
€FòEò*4ò0ó
Cr   r   c                   ó<   — e Zd ZdZd
d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)ÚIdleUserConfParserTestz"Test that IdleUserConfParser worksc                 ó,   — t        j                  |«      S ©N)r   ÚIdleUserConfParser)r2   Úpaths     r   Ú
new_parserz!IdleUserConfParserTest.new_parserd   s   € Ü×(Ñ(¨Ó.Ð.r   c                 ó"  — | j                  «       }|j                  d«       | j                  |j                  ddd«      «       | j	                  |j                  ddd«      «       | j                  |j                  ddd«      «       | j                  |j                  dd«      d«       | j                  |j                  ddd«      «       | j                  |j                  «       ddg«       | j                  |j                  dd«      d«       y )NÚFooÚbarr%   r&   ÚBar)	rT   Úadd_sectionÚ
assertTrueÚ	SetOptionÚassertFalser.   r0   r8   r=   r>   s     r   Útest_set_optionz&IdleUserConfParserTest.test_set_optiong   sÝ   € Ø—‘Ó"ˆØ×Ñ˜5Ô!à�‰˜×(Ñ(¨°°vÓ>Ô?à×Ñ˜×)Ñ)¨%°¸Ó?Ô@à�‰˜×(Ñ(¨°°wÓ?Ô@Ø×Ñ˜Ÿ™ E¨5Ó1°7Ô;ð 	�‰˜×(Ñ(¨°°vÓ>Ô?Ø×Ñ˜fŸo™oÓ/°%¸°Ô@Ø×Ñ˜Ÿ™ E¨5Ó1°6Õ:r   c                 ó2  — | j                  «       }|j                  d«       |j                  ddd«       | j                  |j	                  dd«      «       | j                  |j	                  dd«      «       | j                  |j	                  dd«      «       y )NrV   rW   r%   ÚNotÚExist)rT   Ú
AddSectionr[   rZ   ÚRemoveOptionr\   r>   s     r   Útest_remove_optionz)IdleUserConfParserTest.test_remove_optionw   s}   € Ø—‘Ó"ˆØ×Ñ˜%Ô Ø×Ñ˜  vÔ.à�‰˜×+Ñ+¨E°5Ó9Ô:Ø×Ñ˜×,Ñ,¨U°EÓ:Ô;Ø×Ñ˜×,Ñ,¨U°GÓ<Õ=r   c                 ó  — | j                  «       }| j                  |j                  «       g «       |j                  d«       |j                  d«       |j                  d«       | j	                  |j                  «       ddg«       y )NrV   rX   )rT   r.   r=   ra   r8   r>   s     r   Útest_add_sectionz'IdleUserConfParserTest.test_add_section€   sl   € Ø—‘Ó"ˆØ×Ñ˜Ÿ™Ó*¨BÔ/ð 	×Ñ˜%Ô Ø×Ñ˜%Ô Ø×Ñ˜%Ô Ø×Ñ˜fŸo™oÓ/°%¸°Õ@r   c                 ó4  — | j                  «       }|j                  d«       |j                  d«       |j                  ddd«       | j                  |j	                  «       g d¢«       |j                  «        | j                  |j	                  «       dg«       y )NrV   rX   ÚIdleÚnameÚval)rX   rV   rg   )rT   ra   r[   r8   r=   ÚRemoveEmptySectionsr.   r>   s     r   Útest_remove_empty_sectionsz1IdleUserConfParserTest.test_remove_empty_sections‹   sy   € Ø—‘Ó"ˆà×Ñ˜%Ô Ø×Ñ˜%Ô Ø×Ñ˜ ¨Ô/Ø×Ñ˜fŸo™oÓ/Ò1GÔHØ×"Ñ"Ô$Ø×Ñ˜Ÿ™Ó*¨V¨HÕ5r   c                 ó®  — | j                  «       }|j                  d«       |j                  d«       | j                  |j                  «       «       | j	                  |j                  «       g «       |j                  ddd«       |j                  d«       | j                  |j                  «       «       | j                  |j                  «       dg«       y )NrV   rX   rW   r&   )	rT   ra   rZ   ÚIsEmptyr.   r=   r[   r\   r8   r>   s     r   Útest_is_emptyz$IdleUserConfParserTest.test_is_empty•   s¢   € Ø—‘Ó"ˆà×Ñ˜%Ô Ø×Ñ˜%Ô Ø�‰˜Ÿ™Ó(Ô)Ø×Ñ˜Ÿ™Ó*¨BÔ/à×Ñ˜  wÔ/Ø×Ñ˜%Ô Ø×Ñ˜Ÿ™Ó)Ô*Ø×Ñ˜fŸo™oÓ/°%°Õ9r   c                 óv  — t        j                  «       5 }t        j                  j	                  |d«      }| j                  |«      }|j                  d«       |j                  ddd«       | j                  t        j                  j                  |«      «       |j                  «        | j                  t        j                  j                  |«      «       |j                  d«       |j                  «        | j                  t        j                  j                  |«      «       d d d «       y # 1 sw Y   y xY w)Nztest.cfgrV   rW   r%   )ÚtempfileÚTemporaryDirectoryÚosrS   ÚjoinrT   ra   r[   r\   ÚexistsÚSaverZ   Úremove_section)r2   ÚtdirrS   r3   s       r   Ú	test_savez IdleUserConfParserTest.test_save¢   sÑ   € Ü×(Ñ(Ô*¨dÜ—7‘7—<‘<  jÓ1ˆDØ—_‘_ TÓ*ˆFØ×Ñ˜eÔ$Ø×Ñ˜U E¨6Ô2ð ×ÑœRŸW™WŸ^™^¨DÓ1Ô2Ø�K‰KŒMØ�O‰OœBŸG™GŸN™N¨4Ó0Ô1ð ×!Ñ! %Ô(Ø�K‰KŒMØ×ÑœRŸW™WŸ^™^¨DÓ1Ô2÷ +×*Ñ*ús   •DD/Ä/D8N)r   )rJ   rK   rL   rM   rT   r]   rc   re   rk   rn   rx   r   r   r   rO   rO   a   s)   „ Ù,ó/ò;ò >ò	Aò6ò:ó3r   rO   c                   ó’  — e Zd ZdZed„ «       Zed„ «       Zd#d„Zd„ Z e	j                  ej                  j                  d«      d«      d„ «       Z e	j                  ej                  j                  d«       d	«      d
„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d „ Z%d!„ Z&y")$ÚIdleConfTestzTest for idleConfc                 ó*  — i | _         t        j                  d¬«      }t        dk7  r$t        j
                  j                  t        «      }n0t        j
                  j                  t        j
                  d   «      }|j                  D ]V  }t        j
                  j                  |d|z  «      }t        |«      5 }|j                  «       | j                   |<   d d d «       ŒX t        j                  | _        t!        «       t        _        y # 1 sw Y   Œ‹xY w)NT©Ú_utestÚ__main__r   z../config-%s.def)Úconfig_stringr   ÚIdleConfrJ   rr   rS   ÚdirnameÚ__file__ÚabspathÚsysÚconfig_typesrs   ÚopenÚreadÚ_warnÚ	orig_warnr   )ÚclsÚconfÚidle_dirÚctyperH   Úfs         r   Ú
setUpClasszIdleConfTest.setUpClass·   s½   € àˆÔä�‰ dÔ+ˆÜ�zÒ!Ü—w‘w—‘¤xÓ0‰Hä—w‘w—‘¤s§x¡x°¡{Ó3ˆHØ×&Ô&ˆEÜŸ'™'Ÿ,™, xÐ1CÀeÑ1KÓLˆKÜ�kÔ" aØ+,¯6©6«8�×!Ñ! %Ñ(÷ #Ð"ð 'ô
 Ÿ™ˆŒÜ“vŒ�÷	 #Ð"ús   Â8D	Ä	D	c                 ó.   — | j                   t        _        y rQ   )r‰   r   rˆ   )rŠ   s    r   ÚtearDownClasszIdleConfTest.tearDownClassÈ   s   € à—}‘}Œ�r   c                 ó.   — t        j                  |¬«      S )Nr|   )r   r€   )r2   r}   s     r   Ú
new_configzIdleConfTest.new_configÌ   s   € Ü�‰ fÔ-Ð-r   c                 óˆ  — t        j                  d¬«      }|j                  D ]œ  }t        j                  d«      |j                  |<   |j                  |   j                  | j                  |   «       t        j                  d«      |j                  |<   |j                  |   j                  | j                  |   «       Œž |S )zbReturn a mocked idleConf

        Both default and user config used the same config-*.def
        Tr|   r   )	r   r€   r…   r,   Ú
defaultCfgr-   r   rR   r   )r2   r‹   r�   s      r   Úmock_configzIdleConfTest.mock_configÏ   sŸ   € ô
 �‰ dÔ+ˆØ×&Ô&ˆEÜ%+×%:Ñ%:¸2Ó%>ˆD�O‰O˜EÑ"Ø�O‰O˜EÑ"×.Ñ.¨t×/AÑ/AÀ%Ñ/HÔIÜ"(×";Ñ";¸BÓ"?ˆD�L‰L˜ÑØ�L‰L˜Ñ×+Ñ+¨D×,>Ñ,>¸uÑ,EÕFð	 'ð ˆr   Úwinzthis is test for unix systemc                 ó~  — | j                  d¬«      }t        j                  dd¬«      5  t        j                  dd¬«      5  | j                  |j	                  «       d«       d d d «       d d d «       t        j                  dd¬«      5  t        j                  d	d
¬«      5  t        j                  d«      5  | j                  |j	                  «       d«       d d d «       d d d «       d d d «       t        j                  dd¬«      5  | j                  t        «      5  | j                  t        «      5  |j	                  «        d d d «       d d d «       d d d «       y # 1 sw Y   ŒüxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒŸxY w# 1 sw Y   Œ£xY w# 1 sw Y   Œ§xY w# 1 sw Y   ŒWxY w# 1 sw Y   Œ[xY w# 1 sw Y   y xY w)NTr|   úos.path.expanduserú	/home/foo©Úreturn_valueúos.path.existsz/home/foo/.idlercÚ~ú	os.getcwdz/home/foo/cpythonúos.mkdirz/home/foo/cpython/.idlercúos.path.joinú/path/not/exists©r“   r   Úpatchr.   ÚGetUserCfgDirÚassertRaisesÚ
SystemExitÚFileNotFoundError©r2   r‹   s     r   Útest_get_user_cfg_dir_unixz'IdleConfTest.test_get_user_cfg_dir_unixÝ   sN  € ð �‰ dˆÓ+ˆô �Z‰ZÐ,¸;ÖGÜ—‘Ð,¸4Ö@Ø× Ñ  ×!3Ñ!3Ó!5Ð7JÔK÷ A÷ Hô
 �Z‰ZÐ,¸3Ö?Ü—‘˜KÐ6IÖJÜ—Z‘Z 
Õ+Ø×$Ñ$ T×%7Ñ%7Ó%9Ø%@ôB÷ ,÷ K÷ @ô �Z‰Z˜Ð5GÖHØ×"Ñ"¤:Õ.Ø×&Ñ&Ô'8Õ9Ø×&Ñ&Ô(÷ :÷ /÷ IÐH÷ AÐ@ú÷ HÑGú÷ ,Ð+ú÷ KÐJú÷ @Ð?ú÷ :Ð9ú÷ /Ð.ú÷ IÐHúó›   ªE*Á!EÁ#E*Â
FÂ"FÂ8!E7ÃFÃ!FÄF3ÄF'Ä4FÅF'ÅF3ÅE'	Å#E*Å*E4Å7F Å<FÆF	ÆFÆFÆF$Æ F'Æ'F0	Æ,F3Æ3F<zthis is test for Windows systemc                 ó~  — | j                  d¬«      }t        j                  dd¬«      5  t        j                  dd¬«      5  | j                  |j	                  «       d«       d d d «       d d d «       t        j                  dd¬«      5  t        j                  d	d
¬«      5  t        j                  d«      5  | j                  |j	                  «       d«       d d d «       d d d «       d d d «       t        j                  dd¬«      5  | j                  t        «      5  | j                  t        «      5  |j	                  «        d d d «       d d d «       d d d «       y # 1 sw Y   ŒüxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒŸxY w# 1 sw Y   Œ£xY w# 1 sw Y   Œ§xY w# 1 sw Y   ŒWxY w# 1 sw Y   Œ[xY w# 1 sw Y   y xY w)NTr|   r™   zC:\foor›   r�   zC:\foo\.idlercrž   rŸ   zC:\foo\cpythonr    zC:\foo\cpython\.idlercr¡   r¢   r£   r©   s     r   Útest_get_user_cfg_dir_windowsz*IdleConfTest.test_get_user_cfg_dir_windowsô   sN  € ð �‰ dˆÓ+ˆô �Z‰ZÐ,¸9ÖEÜ—‘Ð,¸4Ö@Ø× Ñ  ×!3Ñ!3Ó!5Ð7IÔJ÷ A÷ Fô
 �Z‰ZÐ,¸3Ö?Ü—‘˜KÐ6HÖIÜ—Z‘Z 
Õ+Ø×$Ñ$ T×%7Ñ%7Ó%9Ø%@ôB÷ ,÷ J÷ @ô �Z‰Z˜Ð5GÖHØ×"Ñ"¤:Õ.Ø×&Ñ&Ô'8Õ9Ø×&Ñ&Ô(÷ :÷ /÷ IÐH÷ AÐ@ú÷ FÑEú÷ ,Ð+ú÷ JÐIú÷ @Ð?ú÷ :Ð9ú÷ /Ð.ú÷ IÐHúr«   c           
      óD  — | j                  d¬«      }d}t        j                  j                  ddi«      5  t        j                  d|¬«      5  |j	                  «        d d d «       d d d «       | j                  |j                  |j                  «       | j                  |j                  |j                  «       |j                  j                  «       D ]"  }| j                  |t        j                  «       Œ$ |j                  j                  «       D ]"  }| j                  |t        j                  «       Œ$ |j                  j                  «       D ]C  \  }}| j                  |j                   t"        j$                  j'                  |d|› d	�«      «       ŒE |j                  j                  «       D ]Q  \  }}| j                  |j                   t"        j$                  j'                  |j(                  xs d
d|› d�«      «       ŒS y # 1 sw Y   �Œ«xY w# 1 sw Y   �Œ°xY w)NTr|   rš   rJ   Ú__foo__zos.path.dirnamer›   zconfig-z.defÚ#z.cfg)r“   r   r¤   ÚdictÚCreateConfigHandlersr8   r•   r…   r   ÚvaluesÚassertIsInstancer   r,   rR   Úitemsr.   Úfilerr   rS   rs   Úuserdir)r2   r‹   rŒ   Údefault_parserÚuser_parserÚcfg_typer3   s          r   Útest_create_config_handlersz(IdleConfTest.test_create_config_handlers  sŸ  € Ø�‰ dˆÓ+ˆð ˆÜ�Z‰Z�_‰_˜j¨)Ð4Õ5Ü—‘Ð-¸HÖEØ×)Ñ)Ô+÷ F÷ 6ð
 	×Ñ˜dŸo™o¨t×/@Ñ/@ÔAØ×Ñ˜dŸl™l¨D×,=Ñ,=Ô>ð #Ÿo™o×4Ñ4Ö6ˆNØ×!Ñ! .´&×2GÑ2GÕHð 7àŸ<™<×.Ñ.Ö0ˆKØ×!Ñ! +¬v×/HÑ/HÕIð 1ð !%§¡× 5Ñ 5Ö 7ÑˆH�fØ×Ñ˜VŸ[™[ÜŸW™WŸ\™\¨(°g¸h¸ZÀtÐ4LÓMõOð !8ð !%§¡× 2Ñ 2Ö 4ÑˆH�fØ×Ñ˜VŸ[™[ÜŸW™WŸ\™\¨$¯,©,Ò*=¸#ÀÈÈ
ÐRVÐ?WÓXõZñ !5÷# FÑEú÷ 6Ñ5ús#   ¶HÁHÁHÈH	ÈHÈHc                 ó2  — | j                  d¬«      }t        dd¬«      }t        j                  |«      |j                  d<   t        j
                  |«      |j                  d<   |j                  «        | j                  } ||j                  d   j                  dd«      d«        ||j                  d   j                  d«      dg«        ||j                  d   j                  dd«      d«        ||j                  d   j                  d«      dg«       y )	NTr|   rA   rB   rC   rF   rE   rG   )r“   r   r   r,   r•   rR   r   ÚLoadCfgFilesr.   r0   r7   )r2   r‹   rH   r4   s       r   Útest_load_cfg_filesz IdleConfTest.test_load_cfg_files&  sï   € Ø�‰ dˆÓ+ˆô ˜}°\ÔBˆÜ!'×!6Ñ!6°{Ó!Cˆ�‰˜ÑÜ$×7Ñ7¸ÓDˆ�‰�UÑð 	×ÑÔà×Ñˆñ 	ˆ4�?‰?˜5Ñ!×%Ñ% i°Ó7¸ÔBÙ
ˆ4�?‰?˜5Ñ!×/Ñ/°	Ó:¸U¸GÔDñ 	ˆ4�<‰<˜Ñ×"Ñ" 9¨eÓ4°hÔ?Ù
ˆ4�<‰<˜Ñ×,Ñ,¨YÓ7¸%¸ÕAr   c                 óö   — | j                  «       }t        j                  d«      5 }|j                  «        | j	                  |j
                  t        |j                  «      «       d d d «       y # 1 sw Y   y xY w)Nz&idlelib.config.IdleUserConfParser.Save)r–   r   r¤   ÚSaveUserCfgFilesr.   Ú
call_countÚlenr   )r2   r‹   Úms      r   Útest_save_user_cfg_filesz%IdleConfTest.test_save_user_cfg_files;  sU   € Ø×ÑÓ!ˆä�Z‰ZÐ@ÔAÀQØ×!Ñ!Ô#Ø×Ñ˜QŸ\™\¬3¨t¯|©|Ó+<Ô=÷ B×AÑAús   ¦A A/Á/A8c           	      óÆ  — | j                  «       }| j                  } ||j                  ddd«      d«        ||j                  dddd¬«      d«       t        j                  d«      5 } ||j                  ddd	d¬«      d «        ||j                  ddd
«      d «        ||j                  ddd
d¬«      d«        ||j
                  d«       d d d «       y # 1 sw Y   y xY w)Nr	   ÚEditorWindowÚwidthÚ80r#   r   éP   úidlelib.config._warnÚfontÚ	NotExistsÚNEr*   é   )r–   r.   Ú	GetOptionr   r¤   rÁ   )r2   r‹   r4   rˆ   s       r   Útest_get_optionzIdleConfTest.test_get_optionB  sÆ   € Ø×ÑÓ!ˆà×ÑˆÙ
ˆ4�>‰>˜& .°'Ó:¸DÔAÙ
ˆ4�>‰>˜& .°'Àˆ>ÓFÈÔKÜ�Z‰ZÐ.Ô/°5Ùˆt�~‰~˜f n°fÀ5ˆ~ÓIÈ4ÔPÙˆt�~‰~˜f n°kÓBÀDÔIÙˆt�~‰~˜f n°kÈ4ˆ~ÓPÐRVÔWÙˆu×Ñ Ô#÷	 0×/Ñ/ús   Á(A&CÃC c                 ó’   — | j                  «       }|j                  dddd«       | j                  |j                  ddd«      d«       y )Nr	   rV   rW   rG   )r–   r[   r.   rÏ   r©   s     r   r]   zIdleConfTest.test_set_optionN  s?   € Ø×ÑÓ!ˆà�‰�v˜u e¨XÔ6Ø×Ñ˜Ÿ™¨°°uÓ=¸xÕHr   c                 óÌ  — | j                  «       }| j                  |j                  dd«      g d¢«       | j                  |j                  dd«      g d¢«       | j                  t        j
                  «      5  |j                  dd«       d d d «       | j                  t        j                  «      5  |j                  dd«       d d d «       y # 1 sw Y   ŒDxY w# 1 sw Y   y xY w)Nr+   r	   )ÚGeneralrÆ   ÚPyShellÚIndentÚThemeÚKeysÚHistoryÚ	HelpFilesÚuserÚfoobarÚ	notexists)r–   r8   ÚGetSectionListr¦   r   ÚInvalidConfigSetÚInvalidConfigTyper©   s     r   Útest_get_section_listz"IdleConfTest.test_get_section_listT  s¿   € Ø×ÑÓ!ˆà×ÑØ×Ñ 	¨6Ó2ò-ô	.ð 	×ÑØ×Ñ ¨Ó/ò-ô	.ð
 ×Ñœv×6Ñ6Õ7Ø×Ñ ¨&Ô1÷ 8à×Ñœv×7Ñ7Õ8Ø×Ñ 	¨;Ô7÷ 9Ð8÷ 8Ð7úç8Ð8ús   Á8CÂ2CÃCÃC#c                 óˆ  — | j                  «       }| j                  } ||j                  dd«      dddœ«        ||j                  dd«      dddœ«       |j                  dd	d
d«       |j                  dd	dd«       t	        j
                  d«      5   ||j                  d	d«      dddœ«       d d d «       y # 1 sw Y   y xY w)NúIDLE ClassicÚnormalz#000000z#ffffff)Ú
foregroundÚ
backgroundÚcursorÚblackr
   ÚFoobarznormal-foregroundz#747474znormal-backgroundz#171717rÊ   )r–   r.   ÚGetHighlightr[   r   r¤   ©r2   r‹   r4   s      r   Útest_get_highlightzIdleConfTest.test_get_highlighte  sÇ   € Ø×ÑÓ!ˆà×ÑˆÙ
ˆ4×Ñ˜^¨XÓ6ÀyØGPñ9Rô 	Sñ 	ˆ4×Ñ˜^¨XÓ6ÀwØGPñ9Rô 	Sð 	�‰�{ HÐ.AÀ9ÔMØ�‰�{ HÐ.AÀ9ÔMÜ�Z‰ZÐ.Õ/Ùˆt× Ñ  ¨8Ó4ÀYØENñ7Pô Q÷ 0×/Ñ/ús   ÂB8Â8Cc                 ó  — | j                  «       }| j                  |j                  dd«      |j                  dd«      «       | j                  t        j
                  «      5  |j                  dd«       d d d «       y # 1 sw Y   y xY w)Nr+   râ   rÚ   Úbad)r–   r.   ÚGetThemeDictr¦   r   ÚInvalidThemer©   s     r   Útest_get_theme_dictz IdleConfTest.test_get_theme_dictw  sr   € à×ÑÓ!ˆð 	×ÑØ×Ñ˜i¨Ó8Ø×Ñ˜f nÓ5ô	7ð ×Ñœv×2Ñ2Õ3Ø×Ñ˜e ^Ô4÷ 4×3Ñ3ús   Á"A>Á>Bc                 óà   — | j                  «       }| j                  |j                  «       |j                  d«      «       | j                  |j	                  «       |j                  d«      «       y )NrÖ   r×   )r–   r.   ÚCurrentThemeÚcurrent_colors_and_keysÚCurrentKeysr©   s     r   Útest_get_current_theme_and_keysz,IdleConfTest.test_get_current_theme_and_keysƒ  sX   € Ø×ÑÓ!ˆà×Ñ˜×*Ñ*Ó,¨d×.JÑ.JÈ7Ó.SÔTØ×Ñ˜×)Ñ)Ó+¨T×-IÑ-IÈ&Ó-QÕRr   c                 óf   — | j                  «       }| j                  |j                  d«      d«       y )NrÖ   râ   )r–   r.   ró   r©   s     r   Útest_current_colors_and_keysz)IdleConfTest.test_current_colors_and_keys‰  s+   € Ø×ÑÓ!ˆà×Ñ˜×5Ñ5°gÓ>ÀÕOr   c                 ó`  — t         j                  }| j                  d¬«      }dt         _        | j                  |j	                  «       d«       dt         _        | j                  |j	                  «       d«       dt         _        | j                  |j	                  «       d«       |t         _        y )	NTr|   Úwin32úIDLE Classic WindowsÚdarwinúIDLE Classic OSXú
some-linuxúIDLE Modern Unix)r„   Úplatformr“   r.   Údefault_keys©r2   Úcurrent_platformr‹   s      r   Útest_default_keyszIdleConfTest.test_default_keysŽ  sˆ   € ÜŸ<™<ÐØ�‰ dˆÓ+ˆàŒŒØ×Ñ˜×*Ñ*Ó,Ð.DÔEàŒŒØ×Ñ˜×*Ñ*Ó,Ð.@ÔAà#ŒŒØ×Ñ˜×*Ñ*Ó,Ð.@ÔAð (Œ�r   c                 ód  — t         j                  d«       | j                  }t        j                  } | |d¬«      g «        | |«       dg«        | |d¬«      dg«        | |d¬«      ddg«        | |dd¬	«      ddg«       t         j                  d«       t         j                  d«       y )
Nzn
            [ZzDummy]
            enable = True
            [DISABLE]
            enable = False
            T)Ú
shell_onlyÚZzDummy)Úeditor_onlyF)Úactive_onlyÚDISABLE)r  r  )Úuserextnr-   r.   r   ÚGetExtensionsrv   )r2   r4   ÚiGEs      r   Útest_get_extensionsz IdleConfTest.test_get_extensionsž  s¡   € Ü×Ñð ô 	ð ×ÑˆÜ×$Ñ$ˆÙ
‰3˜$Ô Ô$Ù
‰3‹5�9�+ÔÙ
‰3˜4Ô  9 +Ô.Ù
‰3˜5Ô! I¨yÐ#9Ô:Ù
‰3˜5¨dÔ3°iÀÐ5KÔLÜ×Ñ 	Ô*Ü×Ñ 	Õ*r   c                 óŠ   — | j                  «       }| j                  |j                  |j                  dd«      «      g d¢«       y )Nr+   r   )ÚAutoCompleteÚCodeContextÚFormatParagraphÚ
ParenMatchr  )r–   r8   ÚRemoveKeyBindNamesrÝ   r©   s     r   Útest_remove_key_bind_namesz'IdleConfTest.test_remove_key_bind_names°  s=   € Ø×ÑÓ!ˆà×ÑØ×#Ñ# D×$7Ñ$7¸	À<Ó$PÓQÚWõ	Yr   c                 óà   — t         j                  d«       | j                  } |t        j	                  d«      d«        |t        j	                  d«      d «       t         j                  d«       y )Nú=
            [ZzDummy]
            enable = True
            zz-inr  zz-out)r
  r-   r.   r   ÚGetExtnNameForEventrv   )r2   r4   s     r   Útest_get_extn_name_for_eventz)IdleConfTest.test_get_extn_name_for_event·  sZ   € Ü×Ñð ô 	ð ×ÑˆÙ
Œ8×'Ñ'¨Ó/°Ô;Ù
Œ8×'Ñ'¨Ó0°$Ô7Ü×Ñ 	Õ*r   c                 ó¨   — t         j                  d«       | j                  t        j	                  d«      ddgi«       t         j                  d«       y )Nr  r  ú<<z-in>>ú!<Control-Shift-KeyRelease-Insert>)r
  r-   r.   r   ÚGetExtensionKeysrv   ©r2   s    r   Útest_get_extension_keysz$IdleConfTest.test_get_extension_keysÁ  sM   € Ü×Ñð ô 	ð 	×Ñœ×2Ñ2°9Ó=ØÐ<Ð=Ð>ô	@ä×Ñ 	Õ*r   c                 óÚ   — t         j                  d«       | j                  }t        j                  } | |d«      i «       dgdgdœ} | |d«      |«       t         j                  d«       y )Nr  rÌ   r  z!<Control-Shift-KeyRelease-Delete>)r  z	<<z-out>>r  )r
  r-   r.   r   ÚGetExtensionBindingsrv   )r2   r4   ÚiGEBÚexpects       r   Útest_get_extension_bindingsz(IdleConfTest.test_get_extension_bindingsÍ  sl   € Ü×Ñð ô 	ð ×ÑˆÜ×,Ñ,ˆÙ
‰4�Ó˜bÔ!ØBÐCØ CÐDñFˆá
‰4�	‹?˜FÔ#Ü×Ñ 	Õ*r   c                 óª  — | j                  «       }| j                  } ||j                  dd«      ddg«        ||j                  dd«      ddg«        ||j                  dd«      d	d
g«        ||j                  dd«      dg«        ||j                  dd«      dg«        ||j                  dd«      g «        ||j                  dd«      g «       y )Nrþ   ú<<copy>>z<Control-Shift-Key-C>z<Control-Key-Insert>úIDLE Classic Unixz<Alt-Key-w>z<Meta-Key-w>rú   z<Control-Key-c>z<Control-Key-C>zIDLE Classic Macú<Command-Key-c>rü   z
NOT EXISTS)r–   r.   ÚGetKeyBindingrê   s      r   Útest_get_keybindingz IdleConfTest.test_get_keybindingÚ  sæ   € Ø×ÑÓ!ˆà×ÑˆÙ
ˆ4×ÑÐ0°*Ó=Ø$Ð&<Ð=ô	?á
ˆ4×ÑÐ1°:Ó>Ø˜NÐ+ô	-á
ˆ4×ÑÐ4°jÓAØÐ 1Ð2ô	4á
ˆ4×ÑÐ0°*Ó=Ð@QÐ?RÔSÙ
ˆ4×ÑÐ0°*Ó=Ð@QÐ?RÔSñ 	ˆ4×Ñ˜l¨JÓ7¸Ô<Ù
ˆ4×ÑÐ0°,Ó?ÀÕDr   c                 óê   — t         j                  }| j                  «       }dt         _        | j                  |j	                  «       |j                  |j                  «       «      «       |t         _        y )Nrý   )r„   rÿ   r–   r.   ÚGetCurrentKeySetÚ	GetKeySetrô   r  s      r   Útest_get_current_keysetz$IdleConfTest.test_get_current_keysetë  sW   € ÜŸ<™<ÐØ×ÑÓ!ˆð $ŒŒØ×Ñ˜×.Ñ.Ó0°$·.±.À×AQÑAQÓASÓ2TÔUð (Œ�r   c                 ód  — | j                  «       }|j                  d   j                  d«       |j                  d   j                  d«       |j                  d   j                  ddd«       |j                  d   j                  ddd«       | j	                  |j                  d«      d	   d
«       y )Nr   rè   ÚFoobar_cfgBindingsÚenableÚTrueÚnewfooz<Key-F3>rþ   z
<<newfoo>>r   )r–   r•   rY   Úsetr.   r,  r©   s     r   Útest_get_keysetzIdleConfTest.test_get_keysetü  s—   € Ø×ÑÓ!ˆð 	�‰˜Ñ%×1Ñ1°(Ô;Ø�‰˜Ñ%×1Ñ1Ð2FÔGØ�‰˜Ñ%×)Ñ)¨(°H¸fÔEØ�‰˜Ñ%×)Ñ)Ð*>ÀÈ*ÔUØ×Ñ˜Ÿ™Ð(:Ó;¸LÑIÈ2ÕNr   c                 ó$  — | j                  «       }| j                  |j                  d«      «       | j                  |j                  d«      «       | j                  |j                  d«      «       | j                  |j                  d«      «       y )NÚcopyÚcutzdel-word-rightz
not-exists)r–   rZ   ÚIsCoreBindingr\   r©   s     r   Útest_is_core_bindingz!IdleConfTest.test_is_core_binding  so   € à×ÑÓ!ˆà�‰˜×*Ñ*¨6Ó2Ô3Ø�‰˜×*Ñ*¨5Ó1Ô2Ø�‰˜×*Ñ*Ð+;Ó<Ô=Ø×Ñ˜×+Ñ+¨LÓ9Õ:r   c                 óž  — | j                  «       }| j                  |j                  d«      g «       | j                  |j                  d«      g «       | j                  t        j
                  «      5  | j                  |j                  d«      g «       d d d «       | j                  |j                  «       |j                  d«      |j                  d«      z   «       |j                  d   j                  ddd«       |j                  d   j                  ddd	«       |j                  d   j                  dd
d«       |j                  d   j                  ddd«       | j                  |j                  d«      g d¢«       | j                  |j                  «       |j                  d«      |j                  d«      z   «       y # 1 sw Y   �Œ0xY w)Nr+   rÚ   rí   r	   rÙ   Ú4zPython;https://python.orgÚ3zPython:https://python.orgÚ2z/Pillow;https://pillow.readthedocs.io/en/latest/Ú1z/IDLE;C:/Programs/Python36/Lib/idlelib/help.html))ÚIDLEz*C:/Programs/Python36/Lib/idlelib/help.htmlr>  )ÚPillowz(https://pillow.readthedocs.io/en/latest/r=  )ÚPythonzhttps://python.orgr;  )
r–   r.   ÚGetExtraHelpSourceListr¦   r   rÞ   r8   ÚGetAllExtraHelpSourcesListr   r[   r©   s     r   Útest_extra_help_source_listz(IdleConfTest.test_extra_help_source_list  s‘  € ð ×ÑÓ!ˆð 	×Ñ˜×4Ñ4°YÓ?ÀÔDØ×Ñ˜×4Ñ4°VÓ<¸bÔAØ×Ñœv×6Ñ6Õ7Ø×Ñ˜T×8Ñ8¸Ó?ÀÔD÷ 8à×ÑØ×+Ñ+Ó-Ø×'Ñ'¨	Ó2°T×5PÑ5PÐQWÓ5XÑXô	Zð
 	�‰�VÑ×&Ñ& {°CÐ9TÔUØ�‰�VÑ×&Ñ& {°CÐ9TÔUØ�‰�VÑ×&Ñ& {°CÐ9jÔkØ�‰�VÑ×&Ñ& {°CÐ9jÔkØ×Ñ˜×4Ñ4°VÓ<òAô	Bð 	×ÑØ×+Ñ+Ó-Ø×'Ñ'¨	Ó2°T×5PÑ5PÐQWÓ5XÑXõ	Z÷ 8Ñ7ús   Á2"GÇGc                 óN  — ddl m} ddlm} ddlm} | j                  «       } |d«        |«       }|j                  «        |j                   |dd|¬«      «      }| j                  |j                  |d	d
«      |d   |d   dk  rdn|d   |d   f«       |j                  «        ~y )Nr   )Úrequires)ÚTk)ÚFontÚguiÚTkFixedFontT)rh   rt   Úrootr	   rÆ   ÚfamilyÚsizer$   Úweight)Útest.supportrF  ÚtkinterrG  Útkinter.fontrH  r–   ÚwithdrawÚactualr.   ÚGetFontÚdestroy)r2   rF  rG  rH  r‹   rK  rŽ   s          r   Útest_get_fontzIdleConfTest.test_get_font*  s–   € Ý)ÝÝ%Ø×ÑÓ!ˆá�ŒÙ‹tˆØ�‰Œà�K‰K™ -¸À4ÔHÓIˆØ×ÑØ�L‰L˜˜v ~Ó6Øˆx‰[  &¡	¨Q¢™"°A°f±I¸qÀ¹{ÐKô	Mð
 	�‰ŒÙr   c                 óÆ  — | j                  «       }| j                  } ||j                  «       d   dg«        ||j                  «       d   ddg«        ||j                  «       d   dg«        ||j                  d«      d   d	d
g«        ||j                  d«      d   dg«        ||j                  d«      d   ddg«        ||j                  d«      d   ddg«       y )Nz<<center-insert>>z<Control-l>r%  z<Control-c>z<Control-C>z<<history-next>>z<Alt-n>rú   z<Control-Key-l>z<Control-Key-L>rü   r'  r&  z<Alt-Key-n>z<Meta-Key-n>rþ   )r–   r.   ÚGetCoreKeysrê   s      r   Útest_get_core_keyszIdleConfTest.test_get_core_keys=  sú   € Ø×ÑÓ!ˆà×ÑˆÙ
ˆ4×ÑÓÐ1Ñ2°]°OÔDÙ
ˆ4×ÑÓ˜jÑ)¨M¸=Ð+IÔJÙ
ˆ4×ÑÓÐ0Ñ1°I°;Ô?Ù
ˆ4×ÑÐ2Ó3Ð4GÑHØÐ0Ð1ô	3á
ˆ4×ÑÐ.Ó/°
Ñ;Ð>OÐ=PÔQÙ
ˆ4×ÑÐ/Ó0Ð1CÑDØ˜>Ð*ô	,á
ˆ4×ÑÐ.Ó/Ð0BÑCØ˜NÐ+õ	-r   N)F)'rJ   rK   rL   rM   Úclassmethodr�   r‘   r“   r–   ÚunittestÚskipIfr„   rÿ   Ú
startswithrª   r­   r»   r¾   rÄ   rÐ   r]   rà   rë   rð   rõ   r÷   r  r  r  r  r  r#  r)  r-  r4  r9  rD  rV  rY  r   r   r   rz   rz   ´   s  „ Ùàñó ðð  ñ%ó ð%ó.òð €X‡_�_�S—\‘\×,Ñ,¨UÓ3Ð5SÓTñ)ó Uð)ð, €X‡_�_˜Ÿ™×0Ñ0°Ó7Ð7Ð9ZÓ[ñ)ó \ð)ò,Zò6Bò*>ò
$òIò8ò"Qò$
5òSòPò
(ò +ò$Yò+ò+ò+òEò"(ò"Oò;òZò6ó&-r   rz   c                   óp   — e Zd ZdZej
                  ZdZej                  «       Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zy	)
ÚCurrentColorKeysTesta   Test colorkeys function with user config [Theme] and [Keys] patterns.

        colorkeys = config.IdleConf.current_colors_and_keys
        Test all patterns written by IDLE and some errors
        Item 'default' should really be 'builtin' (versus 'custom).
    râ   c                 óÌ  — | j                  | j                  d«      | j                  «       t        j	                  d«       | j                  | j                  d«      | j                  «       dt        d   d<   | j                  | j                  d«      d«       dt        d   d<   | j                  | j                  d«      | j                  «       t        j                  d«       y )NrÖ   z<
            [Theme]
            default = True
            úIDLE Newrh   únon-existent)r.   Ú	colorkeysÚdefault_themeÚusermainr-   rv   r  s    r   Útest_old_builtin_themez+CurrentColorKeysTest.test_old_builtin_themeX  s¹   € à×Ñ˜Ÿ™¨Ó0°$×2DÑ2DÔEä×Ñð ô 	ð
 	×Ñ˜Ÿ™¨Ó0°$×2DÑ2DÔEà$.Œ�Ñ˜&Ñ!Ø×Ñ˜Ÿ™¨Ó0°*Ô=à$2Œ�Ñ˜&Ñ!Ø×Ñ˜Ÿ™¨Ó0°$×2DÑ2DÔEÜ×Ñ Õ(r   c                 ób  — t         j                  d«       | j                  | j                  d«      d«       dt         d   d<   | j                  | j                  d«      d«       dt         d   d<   | j                  | j                  d«      | j                  «       t         j                  d«       y )NzZ
            [Theme]
            default = True
            name2 = IDLE Dark
            rÖ   z	IDLE Darkra  rh   rb  Úname2)re  r-   r.   rc  rd  rv   r  s    r   Útest_new_builtin_themez+CurrentColorKeysTest.test_new_builtin_themej  s”   € ä×Ñð ô 	ð
 	×Ñ˜Ÿ™¨Ó0°+Ô>à$.Œ�Ñ˜&Ñ!Ø×Ñ˜Ÿ™¨Ó0°+Ô>à%3Œ�Ñ˜'Ñ"Ø×Ñ˜Ÿ™¨Ó0°$×2DÑ2DÔEÜ×Ñ Õ(r   c                 óž  — t         j                  d«       | j                  | j                  d«      | j                  «       t
        j                  d«       | j                  | j                  d«      d«       dt         d   d<   | j                  | j                  d«      d«       t         j                  d«       t
        j                  d«       y )Nz\
            [Theme]
            default = False
            name = Custom Dark
            rÖ   z[Custom Dark]
a=bzCustom Darkrb  rh  )re  r-   r.   rc  rd  Úuserhighrv   r  s    r   Útest_user_override_themez-CurrentColorKeysTest.test_user_override_themez  s¢   € ä×Ñð ô 	ð
 	×Ñ˜Ÿ™¨Ó0°$×2DÑ2DÔEä×ÑÐ1Ô2Ø×Ñ˜Ÿ™¨Ó0°-Ô@à%3Œ�Ñ˜'Ñ"Ø×Ñ˜Ÿ™¨Ó0°-Ô@Ü×Ñ Ô(Ü×Ñ Õ.r   c                 ó^  — | j                  | j                  d«      | j                  «       t        j	                  d«       | j                  | j                  d«      d«       dt        d   d<   | j                  | j                  d«      | j                  «       t        j                  d«       y )Nr×   z`
            [Keys]
            default = True
            name = IDLE Classic Unix
            r&  rb  rh   )r.   rc  r   re  r-   rv   r  s    r   Útest_old_builtin_keysz*CurrentColorKeysTest.test_old_builtin_keys‹  sŒ   € à×Ñ˜Ÿ™¨Ó/°×1BÑ1BÔCä×Ñð ô 	ð
 	×Ñ˜Ÿ™¨Ó/Ð1DÔEà#1Œ�Ñ˜Ñ Ø×Ñ˜Ÿ™¨Ó/°×1BÑ1BÔCÜ×Ñ Õ'r   c                 ób  — t         j                  d«       | j                  | j                  d«      d«       dt         d   d<   | j                  | j                  d«      d«       dt         d   d<   | j                  | j                  d«      | j                  «       t         j                  d«       y )Nz`
            [Keys]
            default = True
            name2 = IDLE Modern Unix
            r×   rþ   r&  rh   rb  rh  )re  r-   r.   rc  r   rv   r  s    r   Útest_new_builtin_keysz*CurrentColorKeysTest.test_new_builtin_keysš  s–   € ä×Ñð ô 	ð
 	×Ñ˜Ÿ™¨Ó/Ð1CÔDà#6Œ�Ñ˜Ñ Ø×Ñ˜Ÿ™¨Ó/Ð1CÔDà$2Œ�Ñ˜Ñ!Ø×Ñ˜Ÿ™¨Ó/°×1BÑ1BÔCÜ×Ñ Õ'r   c                 óž  — t         j                  d«       | j                  | j                  d«      | j                  «       t
        j                  d«       | j                  | j                  d«      d«       dt         d   d<   | j                  | j                  d«      d«       t         j                  d«       t
        j                  d«       y )Nz[
            [Keys]
            default = False
            name = Custom Keys
            r×   z[Custom Keys]
a=bzCustom Keysrb  rh  )re  r-   r.   rc  r   Úuserkeysrv   r  s    r   Útest_user_override_keysz,CurrentColorKeysTest.test_user_override_keysª  s¢   € ä×Ñð ô 	ð
 	×Ñ˜Ÿ™¨Ó/°×1BÑ1BÔCä×ÑÐ1Ô2Ø×Ñ˜Ÿ™¨Ó/°Ô?à$2Œ�Ñ˜Ñ!Ø×Ñ˜Ÿ™¨Ó/°Ô?Ü×Ñ Ô'Ü×Ñ Õ.r   N)rJ   rK   rL   rM   r   ró   rc  rd  r   rf  ri  rl  rn  rp  rs  r   r   r   r_  r_  M  sE   „ ñð ×0Ñ0€IØ"€MØ×(Ñ(Ó*€Lò)ò$)ò /ò"(ò(ó /r   r_  c                   ó|   — e Zd Zi i i i dœZd„ Zdddiidddiid	d
diii dœZd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd„ Zy)ÚChangesTest)r	   r
   r   r   c                 ó–   — | j                   }|j                  dddd«       |j                  dddd«       |j                  d	d
dd«       |S )Nr	   ÚMsecÚmitemÚmvalr
   ÚHsecÚhitemÚhvalr   ÚKsecÚkitemÚkval©ÚchangesÚ
add_option©r2   r�  s     r   ÚloadzChangesTest.loadÀ  sL   € Ø—,‘,ˆØ×Ñ˜6 6¨7°FÔ;Ø×Ñ˜;¨°¸Ô@Ø×Ñ˜6 6¨7°FÔ;Øˆr   rw  rx  ry  rz  r{  r|  r}  r~  r  c                 ó6   — t        j                  «       | _        y rQ   )r   ÚConfigChangesr�  r  s    r   ÚsetUpzChangesTest.setUpÌ  s   € Ü×+Ñ+Ó-ˆ�r   c                 óP   — | j                  | j                  | j                  «       y rQ   )r.   r�  Úemptyr  s    r   Ú	test_initzChangesTest.test_initÏ  s   € Ø×Ñ˜Ÿ™ t§z¡zÕ2r   c                 ó¼   — | j                  «       }| j                  || j                  «       |j                  dddd«       | j                  || j                  «       y )Nr	   rw  rx  ry  )r„  r.   Úloadedr‚  rƒ  s     r   Útest_add_optionzChangesTest.test_add_optionÒ  sI   € Ø—)‘)“+ˆØ×Ñ˜ $§+¡+Ô.Ø×Ñ˜6 6¨7°FÔ;Ø×Ñ˜ $§+¡+Õ.r   c                 óä  — | j                   j                  }| j                   |dddd«      «       | j                   |dddd«      «       | j	                  t
        d   d   d«       | j                   |dddd«      «       | j	                  t
        d   d   d«       | j                   |dddd«      «       | j                  t
        j                  dd«      «       t
        j                  d«       y )Nr	   rÕ   ÚwhatÚ0ú
use-spacesr>  )r�  Úsave_optionrZ   r\   r.   re  Ú
has_optionrv   )r2   r’  s     r   Útest_save_optionzChangesTest.test_save_optionØ  sÌ   € Ø—l‘l×.Ñ.ˆØ�‰™ F¨H°f¸cÓBÔCØ×Ñ™ V¨X°v¸sÓCÔDØ×Ñœ (Ñ+¨FÑ3°SÔ9à�‰™ F¨H°lÀCÓHÔIØ×Ñœ (Ñ+¨LÑ9¸3Ô?Ø�‰™ F¨H°lÀCÓHÔIØ×Ñœ×,Ñ,¨X°|ÓDÔEÜ×Ñ Õ)r   c                 óî  — | j                  «       }| j                  |j                  «       «       | j                  t        d   d   d«       | j                  t
        d   d   d«       | j                  t        d   d   d	«       |j                  d
ddd«       | j                  |j                  «       «       t        j                  d«       t
        j                  d«       t        j                  d«       y )Nrw  rx  ry  rz  r{  r|  r}  r~  r  r	   )
r„  rZ   Úsave_allr.   re  rk  rr  r‚  r\   rv   rƒ  s     r   Útest_save_addedzChangesTest.test_save_addedä  sÅ   € Ø—)‘)“+ˆØ�‰˜×(Ñ(Ó*Ô+Ø×Ñœ &Ñ)¨'Ñ2°FÔ;Ø×Ñœ &Ñ)¨'Ñ2°FÔ;Ø×Ñœ &Ñ)¨'Ñ2°FÔ;Ø×Ñ˜6 6¨7°FÔ;Ø×Ñ˜×)Ñ)Ó+Ô,Ü×Ñ Ô'Ü×Ñ Ô'Ü×Ñ Õ'r   c                 ó   — | j                   }|j                  dddd«       |j                  dddd«       |j                  «        | j	                  t
        j                  dd«      «       | j                  t
        j                  dd«      «       y )Nr	   rÙ   r?  ÚidledocÚELDIÚcodeldi)r�  r’  r‚  r–  r\   re  r“  rZ   rƒ  s     r   Útest_save_helpzChangesTest.test_save_helpð  ss   € à—,‘,ˆØ×Ñ˜F K°¸ÔCØ×Ñ˜6 ;°¸	ÔBØ×ÑÔØ×Ñœ×,Ñ,¨[¸&ÓAÔBØ�‰œ×+Ñ+¨K¸Ó@ÕAr   c                 óD   — | j                   }|j                  dddd«       y )Nr	   rÕ   r‘  r>  r€  rƒ  s     r   Útest_save_defaultzChangesTest.test_save_defaultù  s   € Ø—,‘,ˆØ×Ñ˜6 8¨\¸3Õ?r   c                 óh  — | j                  «       }|j                  dd«       | j                  || j                  «       dD ]c  \  }}t        |   j                  |dd«       |j                  ||«       | j                  t        «      5  ||   |    t        |   |    d d d «       Œe y # 1 sw Y   ŒpxY w)Nr	   Úfake))r	   rw  )r   r}  rh   Úvalue)r„  Údelete_sectionr.   rŒ  r   r[   r¦   ÚKeyError)r2   r�  ÚcfgtypeÚsections       r   Útest_delete_sectionzChangesTest.test_delete_section   s¡   € Ø—)‘)“+ˆØ×Ñ˜v vÔ.Ø×Ñ˜ $§+¡+Ô.Û DÑˆG�WÜ�GÑ×&Ñ& w°¸Ô@Ø×"Ñ" 7¨GÔ4Ø×"Ñ"¤8Õ,Ø˜Ñ  Ò)Ü˜Ñ  Ò)÷ -Ð,ñ !E÷ -Ð,ús   ÂB(Â(B1	c                 ó|   — | j                  «       }|j                  «        | j                  || j                  «       y rQ   )r„  Úclearr.   r‰  rƒ  s     r   Ú
test_clearzChangesTest.test_clear  s*   € Ø—)‘)“+ˆØ�‰ŒØ×Ñ˜ $§*¡*Õ-r   N)rJ   rK   rL   r‰  r„  rŒ  r‡  rŠ  r�  r”  r—  rœ  rž  r¦  r©  r   r   r   ru  ru  ¼  sw   „ à B¨rÀÑC€Eòð  ¨Ð0Ð1Ø" W¨fÐ$5Ð6Ø ¨Ð/Ð0Øñ €Fò
.ò3ò/ò
*ò
(òBò@ò	*ó.r   ru  c                   ó   — e Zd Zd„ Zy)ÚWarningTestc                 ól  — | j                   }t        «       t        _        t	        «       5 }t        j
                  dd«       d d d «        |t        j                  dh«        |j                  «       d«       t	        «       5 }t        j
                  dd«       d d d «        ||j                  «       d«       t	        «       5 }t        j
                  dd«       d d d «        |t        j                  ddh«        ||j                  «       d	«       y # 1 sw Y   ŒÒxY w# 1 sw Y   Œ†xY w# 1 sw Y   ŒRxY w)
NÚwarningÚkey)r­  r®  zwarning
r   Úwarn2Úyek)r¯  r°  zwarn2
)r.   r3  r   Ú_warnedr   rˆ   Úgetvalue)r2   ÚEqualÚstderrs      r   Ú	test_warnzWarningTest.test_warn  sÛ   € Ø× Ñ ˆÜ›ŒŒÜÔ &Ü�L‰L˜ EÔ*÷ áŒf�n‰nÐ0Ð1Ô2Ùˆf�o‰oÓ Ô0ÜÔ &Ü�L‰L˜ EÔ*÷ áˆf�o‰oÓ Ô$ÜÔ &Ü�L‰L˜ %Ô(÷ áŒf�n‰nÐ0°/ÐBÔCÙˆf�o‰oÓ Õ.÷ Ðú÷ Ðú÷ Ðús#   ªDÂDÃD*ÄDÄD'Ä*D3N)rJ   rK   rL   rµ  r   r   r   r«  r«    s   „ ó/r   r«  r~   é   )Ú	verbosity)!rM   r   r   r„   rr   rp   rO  r   r   r[  r   Úidlelib.idle_test.mock_idler   r   r   r   r   rR   re  rk  rr  r
  r   r   ÚTestCaser   rO   rz   r_  ru  r«  rJ   r	   r   r   r   Ú<module>rº     sR  ðñõ
 Û 
Û 	Û ß 2Û Ý Û Ý ,ð �?‰?€Ø
×
Ñ
€Ø
€Ø6˜V×6Ñ6°rÓ:Ð :€ˆ7�6‰?Ø"; &×";Ñ";¸BÓ"?Ð ?€ˆ7�;ÑØ6˜V×6Ñ6°rÓ:Ð :€ˆ7�6‰?Ø#< 6×#<Ñ#<¸RÓ#@Ð @€ˆ7�<Ñ òòô
8C˜×*Ñ*ô 8CôvP3˜X×.Ñ.ô P3ôfV-�8×$Ñ$ô V-ôrl/˜8×,Ñ,ô l/ô^S.�(×#Ñ#ô S.ôl/�(×#Ñ#ô /ð$ ˆzÒØ€H‡M�M˜AÖð r   