<!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
    „ f.}  ã               @   sN  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 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rJe	j dd dS )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               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               @   s4   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚIdleConfParserTestzTest that IdleConfParser workszœ
        [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__Ú__doc__r   r)   r,   r/   r3   r   r   r   r   r   &   s   r   c               @   sJ   e Zd 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 )ÚIdleUserConfParserTestz"Test that IdleUserConfParser worksr   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;   Ú
AddSectionrA   r@   ZRemoveOptionrB   )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.   rD   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;   rD   rA   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;   rD   r@   ZIsEmptyr$   r.   rA   rB   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Úosr:   Újoinr;   rD   rA   rB   ÚexistsZSaver@   Úremove_section)r&   Ztdirr:   r'   r   r   r   Ú	test_save¢   s    



z IdleUserConfParserTest.test_saveN)r   )r4   r5   r6   r7   r;   rC   rE   rF   rI   rJ   rP   r   r   r   r   r8   a   s   
	
r8   c               @   s,  e Zd ZdZedd„ ƒZedd„ ƒZdAd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d0d1„ Zd2d3„ Z d4d5„ Z!d6d7„ Z"d8d9„ Z#d:d;„ Z$d<d=„ Z%d>d?„ Z&d@S )BÚIdleConfTestzTest for idleConfc          
   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   rL   r:   ÚdirnameÚ__file__ÚabspathÚsysÚconfig_typesrM   Ú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)rR   )r   rV   )r&   rR   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 )zbReturn a mocked idleConf

        Both default and user config used the same config-*.def
        T)rR   r   )	r   rV   r[   r"   Ú
defaultCfgr#   rU   r9   r   )r&   ra   rc   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)rR   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)rg   r   Úpatchr$   ÚGetUserCfgDirÚassertRaisesÚ
SystemExitÚFileNotFoundError)r&   ra   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)rR   zos.path.expanduserzC:\foo)rk   zos.path.existszC:\foo\.idlercrl   z	os.getcwdzC:\foo\cpythonzos.mkdirzC:\foo\cpython\.idlerczos.path.joinz/path/not/exists)rg   r   rm   r$   rn   ro   rp   rq   )r&   ra   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)rR   z	/home/foor4   Z__foo__zos.path.dirname)rk   zconfig-z.defú#z.cfg)rg   r   rm   ÚdictZCreateConfigHandlersr+   rh   r
   r[   r   ÚvaluesZassertIsInstancer   r"   r9   Úitemsr$   ÚfilerL   r:   rM   Zuserdir)r&   ra   rb   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)rR   zcfgparser.1r0   zFoo Barr1   )rg   r   r   r"   rh   r9   r   ZLoadCfgFilesr$   r%   r*   )r&   ra   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)ri   r   rm   ZSaveUserCfgFilesr$   Ú
call_countÚlenr   )r&   ra   Ú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!   é   )ri   r$   Ú	GetOptionr   rm   r{   )r&   ra   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   )ri   rA   r$   r„   )r&   ra   r   r   r   rC   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)ri   r+   ÚGetSectionListro   r   ÚInvalidConfigSetZInvalidConfigType)r&   ra   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)ri   r$   ZGetHighlightrA   r   rm   )r&   ra   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)ri   r$   ZGetThemeDictro   r   ZInvalidTheme)r&   ra   r   r   r   Útest_get_theme_dictw  s    
z IdleConfTest.test_get_theme_dictc             C   s8   |   ¡ }|  | ¡ | d¡¡ |  | ¡ | d¡¡ d S )Nr‡   rˆ   )ri   r$   ZCurrentThemeÚcurrent_colors_and_keysÚCurrentKeys)r&   ra   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)ri   r$   r’   )r&   ra   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)rR   Zwin32zIDLE Classic WindowsÚdarwinzIDLE Classic OSXz
some-linuxzIDLE Modern Unix)rZ   Úplatformrg   r$   Údefault_keys)r&   Úcurrent_platformra   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GetExtensionsrO   )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›   )ri   r+   ZRemoveKeyBindNamesr‹   )r&   ra   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GetExtnNameForEventrO   )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GetExtensionKeysrO   )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GetExtensionBindingsrO   )r&   r(   ZiGEBZ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)ri   r$   ZGetKeyBinding)r&   ra   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)rZ   r—   ri   r$   ZGetCurrentKeySetÚ	GetKeySetr“   )r&   r™   ra   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   )ri   rh   r?   Úsetr$   r¥   )r&   ra   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)ri   r@   ZIsCoreBindingrB   )r&   ra   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¬   )
ri   r$   ZGetExtraHelpSourceListro   r   rŒ   r+   ZGetAllExtraHelpSourcesListr   rA   )r&   ra   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)rG   rN   Úrootr   r   ZfamilyÚsizer   Zweight)Útest.supportr³   Ztkinterr´   Ztkinter.fontrµ   ri   ZwithdrawZactualr$   ZGetFontZdestroy)r&   r³   r´   rµ   ra   r¶   rd   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)ri   r$   ZGetCoreKeys)r&   ra   r(   r   r   r   Útest_get_core_keys=  s    

zIdleConfTest.test_get_core_keysN)F)'r4   r5   r6   r7   Úclassmethodre   rf   rg   ri   ÚunittestZskipIfrZ   r—   Ú
startswithrr   rs   ry   rz   r~   r…   rC   r   r   r‘   r”   r•   rš   rŸ   r    r¡   r¢   r£   r¤   r¦   r©   r«   r²   r¹   rº   r   r   r   r   rQ   ´   s<   


	rQ   c               @   sR   e Zd 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 )Ú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).
    z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 NewrG   znon-existent)r$   Ú	colorkeysÚdefault_themeÚusermainr#   rO   )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 NewrG   znon-existentÚname2)rÁ   r#   r$   r¿   rÀ   rO   )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À   ÚuserhighrO   )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-existentrG   )r$   r¿   r˜   rÁ   r#   rO   )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 UnixrG   znon-existentrÃ   )rÁ   r#   r$   r¿   r˜   rO   )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˜   ÚuserkeysrO   )r&   r   r   r   Útest_user_override_keysª  s    

z,CurrentColorKeysTest.test_user_override_keysN)r4   r5   r6   r7   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@   rB   r$   rÁ   Ú
has_optionrO   )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Ö   rB   rO   )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á   rB   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Ò   rG   Úvalue)r×   Zdelete_sectionr$   rÛ   r   rA   ro   ÚKeyError)r&   rÕ   ZcfgtypeZ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ê   rS   é   )Ú	verbosity)!r7   r   r   rZ   rL   rK   r¸   r   r   r¼   r   Zidlelib.idle_test.mock_idler   r   r   r   r   r9   rÁ   rÅ   rÉ   rž   r   r   ZTestCaser   r8   rQ   r¾   rË   rê   r4   r   r   r   r   r   Ú<module>   s:   ;S   oV
