<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    YI~d.}  ã               @   sJ  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 d¡ Zed< e d¡ Zed< e d¡ Zed	< e d¡ Zed
< dd„ Zdd„ ZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZedkrFejdd dS )é    )ÚconfigN)Úcaptured_stderrÚfindfile)Úmock)ÚFuncÚ ÚmainÚ	highlightÚkeysÚ
extensionsc               C   s   t t_dt_d S )NT)ÚtestcfgÚidleConfÚuserCfgÚidlelibÚtesting© r   r   úB/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_config.pyÚsetUpModule   s    r   c               C   s   t t_dt_d S )NF)Úusercfgr   r   r   r   r   r   r   r   ÚtearDownModule!   s    r   c               @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚIdleConfParserTestzœ
        [one]
        one = false
        two = true
        three = 10

        [two]
        one = a string
        two = true
        three = false
    c             C   sô   t  d¡}| | j ¡ | j}|  |jddddd¡ |  |jddddd¡ ||jddd	dd
ƒ || dd¡dƒ |  |jddddd¡ |  |jddddd¡ || dd¡dƒ || dd¡dƒ |  | dd¡¡ ||jdddddƒ d S )Nr   ÚoneÚbool)ÚtypeFÚtwoTÚthreeÚinté
   za stringÚtrueÚfalseÚnotZexistZDEFAULT)Údefault)r   ÚIdleConfParserÚread_stringÚassertEqualZassertIsÚGetZassertIsNone)ÚselfÚparserÚeqr   r   r   Útest_get5   s    
zIdleConfParserTest.test_getc             C   s\   t  d¡}| | j ¡ |j}|  |dƒdddg¡ |  |dƒdddg¡ |  |dƒg ¡ d S )Nr   r   r   r   z	not exist)r   r"   r#   ÚGetOptionListÚassertCountEqualr$   )r&   r'   Zget_listr   r   r   Útest_get_option_listJ   s    
z'IdleConfParserTest.test_get_option_listc             C   s&   t  d¡}| ¡  |  | ¡ g ¡ d S )Nr   )r   r"   ÚLoadr$   Úsections)r&   r'   r   r   r   Útest_load_nothingR   s    
z$IdleConfParserTest.test_load_nothingc             C   sF   t dƒ}t |¡}| ¡  |  | dd¡d¡ |  | d¡dg¡ d S )Nzcfgparser.1zFoo BarÚfooÚnewbar)r   r   r"   r-   r$   r%   r*   )r&   Úconfig_pathr'   r   r   r   Útest_load_fileW   s
    
z!IdleConfParserTest.test_load_fileN)Ú__name__Ú
__module__Ú__qualname__r   r)   r,   r/   r3   r   r   r   r   r   &   s
   r   c               @   sF   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dS )ÚIdleUserConfParserTestr   c             C   s
   t  |¡S )N)r   ÚIdleUserConfParser)r&   Úpathr   r   r   Ú
new_parserd   s    z!IdleUserConfParserTest.new_parserc             C   s¢   |   ¡ }| d¡ |  | ddd¡¡ |  | ddd¡¡ |  | ddd¡¡ |  | dd¡d¡ |  | ddd¡¡ |  | ¡ ddg¡ |  | dd¡d¡ d S )NÚFooÚbarr   r   ÚBar)	r:   Úadd_sectionÚ
assertTrueÚ	SetOptionÚassertFalser$   r%   r+   r.   )r&   r'   r   r   r   Útest_set_optiong   s    
z&IdleUserConfParserTest.test_set_optionc             C   sZ   |   ¡ }| d¡ | ddd¡ |  | dd¡¡ |  | dd¡¡ |  | dd¡¡ d S )Nr;   r<   r   ZNotZExist)r:   Ú
AddSectionr@   r?   ZRemoveOptionrA   )r&   r'   r   r   r   Útest_remove_optionw   s    
z)IdleUserConfParserTest.test_remove_optionc             C   sN   |   ¡ }|  | ¡ g ¡ | d¡ | d¡ | d¡ |  | ¡ ddg¡ d S )Nr;   r=   )r:   r$   r.   rC   r+   )r&   r'   r   r   r   Útest_add_section€   s    


z'IdleUserConfParserTest.test_add_sectionc             C   s^   |   ¡ }| d¡ | d¡ | ddd¡ |  | ¡ dddg¡ | ¡  |  | ¡ dg¡ d S )Nr;   r=   ZIdleÚnameÚval)r:   rC   r@   r+   r.   ZRemoveEmptySectionsr$   )r&   r'   r   r   r   Útest_remove_empty_sections‹   s    

z1IdleUserConfParserTest.test_remove_empty_sectionsc             C   sv   |   ¡ }| d¡ | d¡ |  | ¡ ¡ |  | ¡ g ¡ | ddd¡ | d¡ |  | ¡ ¡ |  | ¡ dg¡ d S )Nr;   r=   r<   r   )	r:   rC   r?   ZIsEmptyr$   r.   r@   rA   r+   )r&   r'   r   r   r   Útest_is_empty•   s    


z$IdleUserConfParserTest.test_is_emptyc          	   C   s˜   t  ¡ †}tj |d¡}|  |¡}| d¡ | ddd¡ |  tj 	|¡¡ | 
¡  |  tj 	|¡¡ | d¡ | 
¡  |  tj 	|¡¡ W d Q R X d S )Nztest.cfgr;   r<   r   )ÚtempfileZTemporaryDirectoryÚosr9   Újoinr:   rC   r@   rA   ÚexistsZSaver?   Úremove_section)r&   Ztdirr9   r'   r   r   r   Ú	test_save¢   s    



z IdleUserConfParserTest.test_saveN)r   )
r4   r5   r6   r:   rB   rD   rE   rH   rI   rO   r   r   r   r   r7   a   s   
	
r7   c               @   s(  e Zd Zedd„ ƒZedd„ ƒZd@dd„Zdd	„ Ze 	e
j d
¡d¡dd„ ƒZe 	e
j d
¡ d¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Z d5d6„ Z!d7d8„ Z"d9d:„ Z#d;d<„ Z$d=d>„ Z%d?S )AÚIdleConfTestc          
   C   s”   i | _ tjdd}tdkr(tj t¡}ntj t	jd ¡}xD|j
D ]:}tj |d| ¡}t|dƒ}| ¡ | j |< W d Q R X qBW tj| _tƒ t_d S )NT)Ú_utestÚ__main__r   z../config-%s.defÚr)Úconfig_stringr   ÚIdleConfr4   rK   r9   ÚdirnameÚ__file__ÚabspathÚsysÚconfig_typesrL   ÚopenÚreadÚ_warnÚ	orig_warnr   )ÚclsÚconfÚidle_dirÚctyper2   Úfr   r   r   Ú
setUpClass·   s    zIdleConfTest.setUpClassc             C   s   | j t_d S )N)r^   r   r]   )r_   r   r   r   ÚtearDownClassÈ   s    zIdleConfTest.tearDownClassFc             C   s   t j|dS )N)rQ   )r   rU   )r&   rQ   r   r   r   Ú
new_configÌ   s    zIdleConfTest.new_configc             C   sl   t jdd}xZ|jD ]P}t  d¡|j|< |j|  | j| ¡ t  d¡|j|< |j|  | j| ¡ qW |S )NT)rQ   r   )	r   rU   rZ   r"   Ú
defaultCfgr#   rT   r8   r   )r&   r`   rb   r   r   r   Úmock_configÏ   s    zIdleConfTest.mock_configÚwinzthis is test for unix systemc             C   sü   | j dd}tjddd0 tjddd |  | ¡ d¡ W d Q R X W d Q R X tjdddF tjd	d
d, t d¡ |  | ¡ d¡ W d Q R X W d Q R X W d Q R X tjddd: |  t¡$ |  t¡ | ¡  W d Q R X W d Q R X W d Q R X d S )NT)rQ   zos.path.expanduserz	/home/foo)Úreturn_valuezos.path.existsz/home/foo/.idlercú~z	os.getcwdz/home/foo/cpythonzos.mkdirz/home/foo/cpython/.idlerczos.path.joinz/path/not/exists)rf   r   Úpatchr$   ÚGetUserCfgDirÚassertRaisesÚ
SystemExitÚFileNotFoundError)r&   r`   r   r   r   Útest_get_user_cfg_dir_unixÝ   s    $
$z'IdleConfTest.test_get_user_cfg_dir_unixzthis is test for Windows systemc             C   sü   | j dd}tjddd0 tjddd |  | ¡ d¡ W d Q R X W d Q R X tjdddF tjd	d
d, t d¡ |  | ¡ d¡ W d Q R X W d Q R X W d Q R X tjddd: |  t¡$ |  t¡ | ¡  W d Q R X W d Q R X W d Q R X d S )NT)rQ   zos.path.expanduserzC:\foo)rj   zos.path.existszC:\foo\.idlercrk   z	os.getcwdzC:\foo\cpythonzos.mkdirzC:\foo\cpython\.idlerczos.path.joinz/path/not/exists)rf   r   rl   r$   rm   rn   ro   rp   )r&   r`   r   r   r   Útest_get_user_cfg_dir_windowsô   s    $
$z*IdleConfTest.test_get_user_cfg_dir_windowsc          
   C   s6  | j dd}d}tj ddi¡( tjd|d | ¡  W d Q R X W d Q R X |  |j ¡ |j¡ |  |j	 ¡ |j¡ x |j 
¡ D ]}|  |tj¡ q‚W x |j	 
¡ D ]}|  |tj¡ q¤W x6|j ¡ D ](\}}|  |jtj |d|› d	¡¡ qÆW x>|j	 ¡ D ]0\}}|  |jtj |jpd
d|› d¡¡ qþW d S )NT)rQ   z	/home/foor4   Z__foo__zos.path.dirname)rj   zconfig-z.defú#z.cfg)rf   r   rl   ÚdictZCreateConfigHandlersr+   rg   r
   rZ   r   ÚvaluesZassertIsInstancer   r"   r8   Úitemsr$   ÚfilerK   r9   rL   Zuserdir)r&   r`   ra   Zdefault_parserZuser_parserZcfg_typer'   r   r   r   Útest_create_config_handlers  s"    z(IdleConfTest.test_create_config_handlersc             C   s¦   | j dd}tdƒ}t |¡|jd< t |¡|jd< | ¡  | j}||jd  	dd¡dƒ ||jd  
d¡dgƒ ||jd  	dd¡dƒ ||jd  
d¡dgƒ d S )NT)rQ   zcfgparser.1r0   zFoo Barr1   )rf   r   r   r"   rg   r8   r   ZLoadCfgFilesr$   r%   r*   )r&   r`   r2   r(   r   r   r   Útest_load_cfg_files&  s    z IdleConfTest.test_load_cfg_filesc          	   C   s>   |   ¡ }t d¡"}| ¡  |  |jt|jƒ¡ W d Q R X d S )Nz&idlelib.config.IdleUserConfParser.Save)rh   r   rl   ZSaveUserCfgFilesr$   Ú
call_countÚlenr   )r&   r`   Úmr   r   r   Útest_save_user_cfg_files;  s    z%IdleConfTest.test_save_user_cfg_filesc          	   C   s¤   |   ¡ }| j}|| ddd¡dƒ ||jddddddƒ t d¡V}||jddd	ddd ƒ || ddd
¡d ƒ ||jddd
dddƒ ||jdƒ W d Q R X d S )Nr   ÚEditorWindowÚwidthZ80r   )r   éP   zidlelib.config._warnZfontÚ	NotExistsZNE)r!   é   )rh   r$   Ú	GetOptionr   rl   rz   )r&   r`   r(   r]   r   r   r   Útest_get_optionB  s    zIdleConfTest.test_get_optionc             C   s2   |   ¡ }| dddd¡ |  | ddd¡d¡ d S )Nr   r;   r<   r1   )rh   r@   r$   rƒ   )r&   r`   r   r   r   rB   N  s    zIdleConfTest.test_set_optionc             C   sœ   |   ¡ }|  | dd¡ddddddd	d
g¡ |  | dd¡ddddddd	d
g¡ |  tj¡ | dd¡ W d Q R X |  tj¡ | dd¡ W d Q R X d S )Nr!   r   ZGeneralr~   ZPyShellÚIndentÚThemeÚKeysZHistoryÚ	HelpFilesÚuserZfoobarZ	notexists)rh   r+   ÚGetSectionListrn   r   ÚInvalidConfigSetZInvalidConfigType)r&   r`   r   r   r   Útest_get_section_listT  s    



z"IdleConfTest.test_get_section_listc          	   C   s   |   ¡ }| j}|| dd¡dddœƒ || dd¡dddœƒ | dd	d
d¡ | dd	dd¡ t d¡ || d	d¡dddœƒ W d Q R X d S )NzIDLE ClassicZnormalz#000000z#ffffff)Z
foregroundZ
backgroundZcursorZblackr	   ÚFoobarznormal-foregroundz#747474znormal-backgroundz#171717zidlelib.config._warn)rh   r$   ZGetHighlightr@   r   rl   )r&   r`   r(   r   r   r   Útest_get_highlighte  s    

zIdleConfTest.test_get_highlightc          	   C   sL   |   ¡ }|  | dd¡| dd¡¡ |  tj¡ | dd¡ W d Q R X d S )Nr!   zIDLE Classicr‰   Úbad)rh   r$   ZGetThemeDictrn   r   ZInvalidTheme)r&   r`   r   r   r   Útest_get_theme_dictw  s    
z IdleConfTest.test_get_theme_dictc             C   s8   |   ¡ }|  | ¡ | d¡¡ |  | ¡ | d¡¡ d S )Nr†   r‡   )rh   r$   ZCurrentThemeÚcurrent_colors_and_keysÚCurrentKeys)r&   r`   r   r   r   Útest_get_current_theme_and_keysƒ  s    z,IdleConfTest.test_get_current_theme_and_keysc             C   s   |   ¡ }|  | d¡d¡ d S )Nr†   zIDLE Classic)rh   r$   r‘   )r&   r`   r   r   r   Útest_current_colors_and_keys‰  s    z)IdleConfTest.test_current_colors_and_keysc             C   s^   t j}| jdd}dt _|  | ¡ d¡ dt _|  | ¡ d¡ dt _|  | ¡ d¡ |t _d S )	NT)rQ   Úwin32zIDLE Classic WindowsÚdarwinzIDLE Classic OSXz
some-linuxzIDLE Modern Unix)rY   Úplatformrf   r$   Údefault_keys)r&   Úcurrent_platformr`   r   r   r   Útest_default_keysŽ  s    zIdleConfTest.test_default_keysc             C   sˆ   t  d¡ | j}tj}||ddg ƒ ||ƒ dgƒ ||dddgƒ ||ddddgƒ ||ddd	ddgƒ t  d¡ t  d¡ d S )
Nzn
            [ZzDummy]
            enable = True
            [DISABLE]
            enable = False
            T)Z
shell_onlyÚZzDummy)Úeditor_onlyF)Úactive_onlyZDISABLE)r   rœ   )Úuserextnr#   r$   r   ZGetExtensionsrN   )r&   r(   ZiGEr   r   r   Útest_get_extensionsž  s    
z IdleConfTest.test_get_extensionsc             C   s0   |   ¡ }|  | | dd¡¡dddddg¡ d S )Nr!   r   ZAutoCompleteZCodeContextZFormatParagraphZ
ParenMatchr›   )rh   r+   ZRemoveKeyBindNamesrŠ   )r&   r`   r   r   r   Útest_remove_key_bind_names°  s    z'IdleConfTest.test_remove_key_bind_namesc             C   s>   t  d¡ | j}|t d¡dƒ |t d¡d ƒ t  d¡ d S )Nz=
            [ZzDummy]
            enable = True
            zz-inr›   zz-out)rž   r#   r$   r   ZGetExtnNameForEventrN   )r&   r(   r   r   r   Útest_get_extn_name_for_event·  s    z)IdleConfTest.test_get_extn_name_for_eventc             C   s0   t  d¡ |  t d¡ddgi¡ t  d¡ d S )Nz=
            [ZzDummy]
            enable = True
            r›   z<<z-in>>z!<Control-Shift-KeyRelease-Insert>)rž   r#   r$   r   ZGetExtensionKeysrN   )r&   r   r   r   Útest_get_extension_keysÁ  s
    z$IdleConfTest.test_get_extension_keysc             C   sN   t  d¡ | j}tj}||dƒi ƒ dgdgdœ}||dƒ|ƒ t  d¡ d S )Nz=
            [ZzDummy]
            enable = True
            r   z!<Control-Shift-KeyRelease-Insert>z!<Control-Shift-KeyRelease-Delete>)z<<z-in>>z	<<z-out>>r›   )rž   r#   r$   r   ZGetExtensionBindingsrN   )r&   r(   ZiGEBÚexpectr   r   r   Útest_get_extension_bindingsÍ  s    
z(IdleConfTest.test_get_extension_bindingsc             C   s    |   ¡ }| j}|| dd¡ddgƒ || dd¡ddgƒ || dd¡d	d
gƒ || dd¡dgƒ || dd¡dgƒ || dd¡g ƒ || dd¡g ƒ d S )NzIDLE Modern Unixz<<copy>>z<Control-Shift-Key-C>z<Control-Key-Insert>zIDLE Classic Unixz<Alt-Key-w>z<Meta-Key-w>zIDLE Classic Windowsz<Control-Key-c>z<Control-Key-C>zIDLE Classic Macz<Command-Key-c>zIDLE Classic OSXz
NOT EXISTS)rh   r$   ZGetKeyBinding)r&   r`   r(   r   r   r   Útest_get_keybindingÚ  s    


z IdleConfTest.test_get_keybindingc             C   s8   t j}|  ¡ }dt _|  | ¡ | | ¡ ¡¡ |t _d S )Nz
some-linux)rY   r—   rh   r$   ZGetCurrentKeySetÚ	GetKeySetr’   )r&   r™   r`   r   r   r   Útest_get_current_keysetë  s
    	z$IdleConfTest.test_get_current_keysetc             C   sj   |   ¡ }|jd  d¡ |jd  d¡ |jd  ddd¡ |jd  ddd¡ |  | d¡d	 d
¡ d S )Nr   r   ZFoobar_cfgBindingsZenableÚTrueZnewfooz<Key-F3>zIDLE Modern Unixz
<<newfoo>>r   )rh   rg   r>   Úsetr$   r¦   )r&   r`   r   r   r   Útest_get_keysetü  s    zIdleConfTest.test_get_keysetc             C   sL   |   ¡ }|  | d¡¡ |  | d¡¡ |  | d¡¡ |  | d¡¡ d S )NÚcopyZcutzdel-word-rightz
not-exists)rh   r?   ZIsCoreBindingrA   )r&   r`   r   r   r   Útest_is_core_binding  s
    z!IdleConfTest.test_is_core_bindingc          	   C   s  |   ¡ }|  | d¡g ¡ |  | d¡g ¡ |  tj¡ |  | d¡g ¡ W d Q R X |  | ¡ | d¡| d¡ ¡ |jd  	ddd¡ |jd  	ddd	¡ |jd  	dd
d¡ |jd  	ddd¡ |  | d¡dddg¡ |  | ¡ | d¡| d¡ ¡ d S )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°   )ZPillowz(https://pillow.readthedocs.io/en/latest/r¯   )ÚPythonzhttps://python.orgr­   )
rh   r$   ZGetExtraHelpSourceListrn   r   r‹   r+   ZGetAllExtraHelpSourcesListr   r@   )r&   r`   r   r   r   Útest_extra_help_source_list  s&    z(IdleConfTest.test_extra_help_source_listc             C   sœ   ddl m} ddlm} ddlm} |  ¡ }|dƒ |ƒ }| ¡  | |dd|d¡}|  	| 
|d	d
¡|d |d dkr|dn|d |d f¡ | ¡  ~d S )Nr   )Úrequires)ÚTk)ÚFontZguiZTkFixedFontT)rF   rM   Úrootr   r~   ZfamilyÚsizer   Zweight)Útest.supportr´   Ztkinterrµ   Ztkinter.fontr¶   rh   ZwithdrawÚactualr$   ZGetFontZdestroy)r&   r´   rµ   r¶   r`   r·   rc   r   r   r   Útest_get_font*  s    (zIdleConfTest.test_get_fontc             C   s®   |   ¡ }| j}|| ¡ d dgƒ || ¡ d ddgƒ || ¡ d dgƒ || d¡d d	d
gƒ || d¡d dgƒ || d¡d ddgƒ || d¡d ddgƒ d S )Nz<<center-insert>>z<Control-l>z<<copy>>z<Control-c>z<Control-C>z<<history-next>>z<Alt-n>zIDLE Classic Windowsz<Control-Key-l>z<Control-Key-L>zIDLE Classic OSXz<Command-Key-c>zIDLE Classic Unixz<Alt-Key-n>z<Meta-Key-n>zIDLE Modern Unix)rh   r$   ZGetCoreKeys)r&   r`   r(   r   r   r   Útest_get_core_keys=  s    

zIdleConfTest.test_get_core_keysN)F)&r4   r5   r6   Úclassmethodrd   re   rf   rh   ÚunittestZskipIfrY   r—   Ú
startswithrq   rr   rx   ry   r}   r„   rB   rŒ   rŽ   r   r“   r”   rš   rŸ   r    r¡   r¢   r¤   r¥   r§   rª   r¬   r³   r»   r¼   r   r   r   r   rP   ´   s:   


	rP   c               @   sN   e Zd ZejZdZe ¡ Zdd„ Zdd„ Z	dd„ Z
dd	„ Zd
d„ Zdd„ ZdS )ÚCurrentColorKeysTestzIDLE Classicc             C   s~   |   |  d¡| j¡ t d¡ |   |  d¡| j¡ dtd d< |   |  d¡d¡ dtd d< |   |  d¡| j¡ t d¡ d S )Nr†   z<
            [Theme]
            default = True
            zIDLE NewrF   znon-existent)r$   Ú	colorkeysÚdefault_themeÚusermainr#   rN   )r&   r   r   r   Útest_old_builtin_themeX  s    z+CurrentColorKeysTest.test_old_builtin_themec             C   sh   t  d¡ |  |  d¡d¡ dt d d< |  |  d¡d¡ dt d d< |  |  d¡| j¡ t  d¡ d S )NzZ
            [Theme]
            default = True
            name2 = IDLE Dark
            r†   z	IDLE DarkzIDLE NewrF   znon-existentÚname2)rÃ   r#   r$   rÁ   rÂ   rN   )r&   r   r   r   Útest_new_builtin_themej  s    z+CurrentColorKeysTest.test_new_builtin_themec             C   sp   t  d¡ |  |  d¡| j¡ t d¡ |  |  d¡d¡ dt d d< |  |  d¡d¡ t  d¡ t d¡ d S )Nz\
            [Theme]
            default = False
            name = Custom Dark
            r†   z[Custom Dark]
a=bzCustom Darkznon-existentrÅ   )rÃ   r#   r$   rÁ   rÂ   ÚuserhighrN   )r&   r   r   r   Útest_user_override_themez  s    

z-CurrentColorKeysTest.test_user_override_themec             C   s^   |   |  d¡| j¡ t d¡ |   |  d¡d¡ dtd d< |   |  d¡| j¡ t d¡ d S )Nr‡   z`
            [Keys]
            default = True
            name = IDLE Classic Unix
            zIDLE Classic Unixznon-existentrF   )r$   rÁ   r˜   rÃ   r#   rN   )r&   r   r   r   Útest_old_builtin_keys‹  s    z*CurrentColorKeysTest.test_old_builtin_keysc             C   sh   t  d¡ |  |  d¡d¡ dt d d< |  |  d¡d¡ dt d d< |  |  d¡| j¡ t  d¡ d S )Nz`
            [Keys]
            default = True
            name2 = IDLE Modern Unix
            r‡   zIDLE Modern UnixzIDLE Classic UnixrF   znon-existentrÅ   )rÃ   r#   r$   rÁ   r˜   rN   )r&   r   r   r   Útest_new_builtin_keysš  s    z*CurrentColorKeysTest.test_new_builtin_keysc             C   sp   t  d¡ |  |  d¡| j¡ t d¡ |  |  d¡d¡ dt d d< |  |  d¡d¡ t  d¡ t d¡ d S )Nz[
            [Keys]
            default = False
            name = Custom Keys
            r‡   z[Custom Keys]
a=bzCustom Keysznon-existentrÅ   )rÃ   r#   r$   rÁ   r˜   ÚuserkeysrN   )r&   r   r   r   Útest_user_override_keysª  s    

z,CurrentColorKeysTest.test_user_override_keysN)r4   r5   r6   r   r‘   rÁ   rÂ   r˜   rÄ   rÆ   rÈ   rÉ   rÊ   rÌ   r   r   r   r   rÀ   M  s   rÀ   c               @   s   e Zd Zi i i i dœZdd„ Zdddiiddd	iid
ddiii dœZdd„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS ) ÚChangesTest)r   r	   r
   r   c             C   s:   | j }| dddd¡ | dddd¡ | d	d
dd¡ |S )Nr   ÚMsecÚmitemÚmvalr	   ÚHsecÚhitemÚhvalr
   ÚKsecÚkitemÚkval)ÚchangesÚ
add_option)r&   r×   r   r   r   ÚloadÀ  s
    zChangesTest.loadrÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   c             C   s   t  ¡ | _d S )N)r   ZConfigChangesr×   )r&   r   r   r   ÚsetUpÌ  s    zChangesTest.setUpc             C   s   |   | j| j¡ d S )N)r$   r×   Úempty)r&   r   r   r   Ú	test_initÏ  s    zChangesTest.test_initc             C   s8   |   ¡ }|  || j¡ | dddd¡ |  || j¡ d S )Nr   rÎ   rÏ   rÐ   )rÙ   r$   ÚloadedrØ   )r&   r×   r   r   r   Útest_add_optionÒ  s    zChangesTest.test_add_optionc             C   s    | j j}|  |ddddƒ¡ |  |ddddƒ¡ |  td d d¡ |  |ddddƒ¡ |  td d d¡ |  |ddddƒ¡ |  t dd¡¡ t d¡ d S )Nr   r…   ZwhatÚ0z
use-spacesr°   )r×   Úsave_optionr?   rA   r$   rÃ   Ú
has_optionrN   )r&   rà   r   r   r   Útest_save_optionØ  s    zChangesTest.test_save_optionc             C   s’   |   ¡ }|  | ¡ ¡ |  td d d¡ |  td d d¡ |  td d d	¡ | d
ddd¡ |  | ¡ ¡ t 	d¡ t 	d¡ t 	d¡ d S )NrÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r   )
rÙ   r?   Úsave_allr$   rÃ   rÇ   rË   rØ   rA   rN   )r&   r×   r   r   r   Útest_save_addedä  s    

zChangesTest.test_save_addedc             C   sV   | j }| dddd¡ | dddd¡ | ¡  |  t dd¡¡ |  t dd¡¡ d S )Nr   rˆ   r±   ZidledocZELDIZcodeldi)r×   rà   rØ   rã   rA   rÃ   rá   r?   )r&   r×   r   r   r   Útest_save_helpð  s    zChangesTest.test_save_helpc             C   s   | j }| dddd¡ d S )Nr   r…   z
use-spacesr°   )r×   rØ   )r&   r×   r   r   r   Útest_save_defaultù  s    zChangesTest.test_save_defaultc          
   C   s„   |   ¡ }| dd¡ |  || j¡ x\dD ]T\}}t|  |dd¡ | ||¡ |  t¡ || |  t| |  W d Q R X q(W d S )Nr   Zfake))r   rÎ   )r
   rÔ   rF   Úvalue)rÙ   Zdelete_sectionr$   rÝ   r   r@   rn   ÚKeyError)r&   r×   ZcfgtypeÚsectionr   r   r   Útest_delete_section   s    zChangesTest.test_delete_sectionc             C   s"   |   ¡ }| ¡  |  || j¡ d S )N)rÙ   Úclearr$   rÛ   )r&   r×   r   r   r   Ú
test_clear  s    zChangesTest.test_clearN)r4   r5   r6   rÛ   rÙ   rÝ   rÚ   rÜ   rÞ   râ   rä   rå   ræ   rê   rì   r   r   r   r   rÍ   ¼  s   


	rÍ   c               @   s   e Zd Zdd„ ZdS )ÚWarningTestc          	   C   s´   | j }tƒ t_tƒ }t dd¡ W d Q R X |tjdhƒ || ¡ dƒ tƒ }t dd¡ W d Q R X || ¡ dƒ tƒ }t dd¡ W d Q R X |tjddhƒ || ¡ d	ƒ d S )
NÚwarningÚkey)rî   rï   zwarning
r   Úwarn2Úyek)rð   rñ   zwarn2
)r$   r©   r   Z_warnedr   r]   Úgetvalue)r&   ZEqualÚstderrr   r   r   Ú	test_warn  s    zWarningTest.test_warnN)r4   r5   r6   rô   r   r   r   r   rí     s   rí   rR   é   )Ú	verbosity) r   r   rY   rK   rJ   r¹   r   r   r¾   r   Zidlelib.idle_test.mock_idler   r   r   r   r   r8   rÃ   rÇ   rË   rž   r   r   ZTestCaser   r7   rP   rÀ   rÍ   rí   r4   r   r   r   r   r   Ú<module>   s8   ;S   oV
