HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/idlelib/idle_test/__pycache__/test_config.cpython-310.pyc
o

�i.}�@sPdZddlmZddlZddlZddlZddlmZmZddl	Z	ddl	m
Z
ddlZddlmZej
Z
e
jZiZe�d�Zed<e�d�Zed	<e�d�Zed
<e�d�Zed<dd
�Zdd�ZGdd�de	j�ZGdd�de	j�ZGdd�de	j�ZGdd�de	j�ZGdd�de	j�ZGdd�de	j�Zedkr�e	j dd�dSdS)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�
extensionscC�tt_dt_dS)NT)�testcfg�idleConf�userCfg�idlelib�testing�rr�:/usr/local/lib/python3.10/idlelib/idle_test/test_config.py�setUpModule�
rcCr)NF)�usercfgrrrrrrrr�tearDownModule!rrc@s4eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdS)�IdleConfParserTestzTest that IdleConfParser worksz�
        [one]
        one = false
        two = true
        three = 10

        [two]
        one = a string
        two = true
        three = false
    cCs�t�d�}|�|j�|j}|�|jdddd�d�|�|jdddd�d�||jddd	d�d
�||�dd�d�|�|jdddd�d�|�|jdddd�d�||�dd�d�||�dd�d
�|�|�dd��||jdddd�d�dS)Nr�one�bool��typeF�twoT�three�int�
za string�true�false�notZexistZDEFAULT��default)r�IdleConfParser�read_string�assertEqualZassertIs�GetZassertIsNone)�self�parser�eqrrr�test_get5s
zIdleConfParserTest.test_getcCsXt�d�}|�|j�|j}|�|d�gd��|�|d�gd��|�|d�g�dS)Nrr)rrrrz	not exist)rr&r'�
GetOptionList�assertCountEqualr()r*r+Zget_listrrr�test_get_option_listJs
z'IdleConfParserTest.test_get_option_listcCs&t�d�}|��|�|��g�dS)Nr)rr&�Loadr(�sections�r*r+rrr�test_load_nothingRs
z$IdleConfParserTest.test_load_nothingcCsFtd�}t�|�}|��|�|�dd�d�|�|�d�dg�dS)N�cfgparser.1�Foo Bar�foo�newbar)rrr&r1r(r)r.)r*�config_pathr+rrr�test_load_fileWs

z!IdleConfParserTest.test_load_fileN)	�__name__�
__module__�__qualname__�__doc__rr-r0r4r:rrrrr&src@sJeZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�IdleUserConfParserTestz"Test that IdleUserConfParser worksrcCs
t�|�S�N)r�IdleUserConfParser)r*�pathrrr�
new_parserds
z!IdleUserConfParserTest.new_parsercCs�|��}|�d�|�|�ddd��|�|�ddd��|�|�ddd��|�|�dd�d�|�|�ddd��|�|��ddg�|�|�dd�d�dS)N�Foo�barr!r"�Bar)	rC�add_section�
assertTrue�	SetOption�assertFalser(r)r/r2r3rrr�test_set_optiongs
z&IdleUserConfParserTest.test_set_optioncCsZ|��}|�d�|�ddd�|�|�dd��|�|�dd��|�|�dd��dS)NrDrEr!ZNotZExist)rC�
AddSectionrIrHZRemoveOptionrJr3rrr�test_remove_optionws
z)IdleUserConfParserTest.test_remove_optioncCsN|��}|�|��g�|�d�|�d�|�d�|�|��ddg�dS)NrDrF)rCr(r2rLr/r3rrr�test_add_section�s


z'IdleUserConfParserTest.test_add_sectioncCs\|��}|�d�|�d�|�ddd�|�|��gd��|��|�|��dg�dS)NrDrF�Idle�name�val)rFrDrO)rCrLrIr/r2ZRemoveEmptySectionsr(r3rrr�test_remove_empty_sections�s

z1IdleUserConfParserTest.test_remove_empty_sectionscCsv|��}|�d�|�d�|�|���|�|��g�|�ddd�|�d�|�|���|�|��dg�dS)NrDrFrEr")	rCrLrHZIsEmptyr(r2rIrJr/r3rrr�
test_is_empty�s


z$IdleUserConfParserTest.test_is_emptycCs�t���I}tj�|d�}|�|�}|�d�|�ddd�|�tj�	|��|�
�|�tj�	|��|�d�|�
�|�tj�	|��Wd�dS1sPwYdS)Nztest.cfgrDrEr!)
�tempfile�TemporaryDirectory�osrB�joinrCrLrIrJ�existsZSaverH�remove_section)r*ZtdirrBr+rrr�	test_save�s



"�z IdleUserConfParserTest.test_saveN)r)r;r<r=r>rCrKrMrNrRrSrZrrrrr?as
	

r?c@s,eZdZdZedd��Zedd��ZdAdd�Zd	d
�Ze	�
ej�
d�d�d
d��Ze	�
ej�
d�d�dd��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Z d4d5�Z!d6d7�Z"d8d9�Z#d:d;�Z$d<d=�Z%d>d?�Z&d@S)B�IdleConfTestzTest for idleConfc	Cs�i|_tjdd�}tdkrtj�t�}n	tj�t	jd�}|j
D]'}tj�|d|�}t|d��}|�
�|j|<Wd�n1sBwYq tj|_t�t_dS)NT��_utest�__main__rz../config-%s.def�r)�
config_stringr�IdleConfr;rVrB�dirname�__file__�abspath�sys�config_typesrW�open�read�_warn�	orig_warnr)�cls�conf�idle_dir�ctyper9�frrr�
setUpClass�s
��zIdleConfTest.setUpClasscCs|jt_dSr@)rjrri)rkrrr�
tearDownClass�szIdleConfTest.tearDownClassFcCstj|d�S)Nr\)rra)r*r]rrr�
new_config�szIdleConfTest.new_configcCshtjdd�}|jD](}t�d�|j|<|j|�|j|�t�d�|j|<|j|�|j|�q	|S)zbReturn a mocked idleConf

        Both default and user config used the same config-*.def
        Tr\r)	rrarfr&�
defaultCfgr'r`rAr)r*rlrnrrr�mock_config�s
zIdleConfTest.mock_config�winzthis is test for unix systemc
C�|jdd�}tjddd��'tjddd��|�|��d�Wd�n1s(wYWd�n1s7wYtjddd��<tjd	d
d��%t�d��|�|��d�Wd�n1sdwYWd�n1sswYWd�n1s�wYtjd
dd��?|�t��!|�t��|��Wd�n1s�wYWd�n1s�wYWd�dSWd�dS1s�wYdS)NTr\�os.path.expanduser�	/home/foo�Z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�rrr�patchr(Z
GetUserCfgDir�assertRaises�
SystemExit�FileNotFoundError�r*rlrrr�test_get_user_cfg_dir_unix��8���
������
����"�z'IdleConfTest.test_get_user_cfg_dir_unixzthis is test for Windows systemc
Crv)NTr\rwzC:\fooryrzzC:\foo\.idlercr{r|zC:\foo\cpythonr}zC:\foo\cpython\.idlercr~rr�r�rrr�test_get_user_cfg_dir_windows�r�z*IdleConfTest.test_get_user_cfg_dir_windowsc
CsL|jdd�}d}tj�ddi��#tjd|d��|��Wd�n1s'wYWd�n1s6wY|�|j��|j�|�|j	��|j�|j�
�D]	}|�|tj
�qT|j	�
�D]	}|�|tj�qc|j��D]\}}|�|jtj�|d|�d	���qr|j	��D]\}}|�|jtj�|jp�d
d|�d���q�dS)NTr\rxr;Z__foo__zos.path.dirnameryzconfig-z.def�#z.cfg)rrrr��dictZCreateConfigHandlersr/rsr
rfr�valuesZassertIsInstancerr&rA�itemsr(�filerVrBrWZuserdir)r*rlrmZdefault_parserZuser_parserZcfg_typer+rrr�test_create_config_handlerss.
������z(IdleConfTest.test_create_config_handlerscCs�|jdd�}td�}t�|�|jd<t�|�|jd<|��|j}||jd�	dd�d�||jd�
d�dg�||jd�	dd�d�||jd�
d�dg�dS)NTr\r5r7r6r8)rrrrr&rsrArZLoadCfgFilesr(r)r.)r*rlr9r,rrr�test_load_cfg_files&sz IdleConfTest.test_load_cfg_filescCsT|��}t�d��}|��|�|jt|j��Wd�dS1s#wYdS)Nz&idlelib.config.IdleUserConfParser.Save)rtrr�ZSaveUserCfgFilesr(�
call_count�lenr)r*rl�mrrr�test_save_user_cfg_files;s
"�z%IdleConfTest.test_save_user_cfg_filescCs�|��}|j}||�ddd�d�||jddddd�d�t�d��1}||jddd	dd�d�||�ddd
�d�||jddd
dd�d�||jd
�Wd�dS1sVwYdS)Nr�EditorWindow�widthZ80rr�P�idlelib.config._warnZfont�	NotExistsZNEr$�)rtr(�	GetOptionrr�r�)r*rlr,rirrr�test_get_optionBs"�zIdleConfTest.test_get_optioncCs2|��}|�dddd�|�|�ddd�d�dS)NrrDrEr8)rtrIr(r�r�rrrrKNszIdleConfTest.test_set_optioncCs�|��}|�|�dd�gd��|�|�dd�gd��|�tj��|�dd�Wd�n1s3wY|�tj��|�dd�Wd�dS1sPwYdS)Nr%r)ZGeneralr�ZPyShell�Indent�Theme�KeysZHistory�	HelpFiles�userZfoobarZ	notexists)rtr/�GetSectionListr�r�InvalidConfigSetZInvalidConfigTyper�rrr�test_get_section_listTs
�
��"�z"IdleConfTest.test_get_section_listcCs�|��}|j}||�dd�ddd��||�dd�ddd��|�dd	d
d�|�dd	dd
�t�d��||�d	d�dd
d��Wd�dS1sLwYdS)N�IDLE ClassicZnormalz#000000z#ffffff)Z
foregroundZ
backgroundZcursorZblackr	�Foobarznormal-foregroundz#747474znormal-backgroundz#171717r�)rtr(ZGetHighlightrIrr��r*rlr,rrr�test_get_highlightes��
�"�zIdleConfTest.test_get_highlightcCsb|��}|�|�dd�|�dd��|�tj��|�dd�Wd�dS1s*wYdS)Nr%r�r��bad)rtr(ZGetThemeDictr�rZInvalidThemer�rrr�test_get_theme_dictws

�"�z IdleConfTest.test_get_theme_dictcCs8|��}|�|��|�d��|�|��|�d��dS)Nr�r�)rtr(ZCurrentTheme�current_colors_and_keys�CurrentKeysr�rrr�test_get_current_theme_and_keys�sz,IdleConfTest.test_get_current_theme_and_keyscCs|��}|�|�d�d�dS)Nr�r�)rtr(r�r�rrr�test_current_colors_and_keys�sz)IdleConfTest.test_current_colors_and_keyscCs^tj}|jdd�}dt_|�|��d�dt_|�|��d�dt_|�|��d�|t_dS)	NTr\�win32�IDLE Classic Windows�darwin�IDLE Classic OSX�
some-linux�IDLE Modern Unix)re�platformrrr(�default_keys�r*Zcurrent_platformrlrrr�test_default_keys�s
zIdleConfTest.test_default_keyscCs�t�d�|j}tj}||dd�g�||�dg�||dd�dg�||dd�ddg�||ddd	�ddg�t�d�t�d�dS)
Nzn
            [ZzDummy]
            enable = True
            [DISABLE]
            enable = False
            T)Z
shell_only�ZzDummy)�editor_onlyF)�active_onlyZDISABLE)r�r�)�userextnr'r(rZ
GetExtensionsrY)r*r,ZiGErrr�test_get_extensions�s

z IdleConfTest.test_get_extensionscCs*|��}|�|�|�dd��gd��dS)Nr%r)ZAutoCompleteZCodeContextZFormatParagraphZ
ParenMatchr�)rtr/ZRemoveKeyBindNamesr�r�rrr�test_remove_key_bind_names�s
�z'IdleConfTest.test_remove_key_bind_namescCs>t�d�|j}|t�d�d�|t�d�d�t�d�dS)N�=
            [ZzDummy]
            enable = True
            zz-inr�zz-out)r�r'r(rZGetExtnNameForEventrY)r*r,rrr�test_get_extn_name_for_event�s

z)IdleConfTest.test_get_extn_name_for_eventcCs0t�d�|�t�d�ddgi�t�d�dS)Nr�r��<<z-in>>�!<Control-Shift-KeyRelease-Insert>)r�r'r(rZGetExtensionKeysrY�r*rrr�test_get_extension_keys�s

�z$IdleConfTest.test_get_extension_keyscCsNt�d�|j}tj}||d�i�dgdgd�}||d�|�t�d�dS)Nr�r�r�z!<Control-Shift-KeyRelease-Delete>)r�z	<<z-out>>r�)r�r'r(rZGetExtensionBindingsrY)r*r,ZiGEB�expectrrr�test_get_extension_bindings�s
�z(IdleConfTest.test_get_extension_bindingscCs�|��}|j}||�dd�ddg�||�dd�ddg�||�dd�d	d
g�||�dd�dg�||�d
d�dg�||�dd�g�||�dd�g�dS)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>zIDLE Classic Mac�<Command-Key-c>r�z
NOT EXISTS)rtr(Z
GetKeyBindingr�rrr�test_get_keybinding�s���z IdleConfTest.test_get_keybindingcCs8tj}|��}dt_|�|��|�|����|t_dS)Nr�)rer�rtr(ZGetCurrentKeySet�	GetKeySetr�r�rrr�test_get_current_keyset�s

	z$IdleConfTest.test_get_current_keysetcCsj|��}|jd�d�|jd�d�|jd�ddd�|jd�ddd�|�|�d�d	d
�dS)Nrr�ZFoobar_cfgBindings�enable�TrueZnewfooz<Key-F3>r�z
<<newfoo>>r)rtrsrG�setr(r�r�rrr�test_get_keyset�szIdleConfTest.test_get_keysetcCsL|��}|�|�d��|�|�d��|�|�d��|�|�d��dS)N�copyZcutzdel-word-rightz
not-exists)rtrHZ
IsCoreBindingrJr�rrr�test_is_core_bindings
z!IdleConfTest.test_is_core_bindingcCs|��}|�|�d�g�|�|�d�g�|�tj��|�|�d�g�Wd�n1s0wY|�|��|�d�|�d��|jd�	ddd�|jd�	ddd	�|jd�	dd
d�|jd�	ddd
�|�|�d�gd��|�|��|�d�|�d��dS)Nr%r�r�rr��4zPython;https://python.org�3zPython: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�)ZPillowz(https://pillow.readthedocs.io/en/latest/r�)�Pythonzhttps://python.orgr�)
rtr(ZGetExtraHelpSourceListr�rr�r/ZGetAllExtraHelpSourcesListrrIr�rrr�test_extra_help_source_lists*����z(IdleConfTest.test_extra_help_source_listcCs�ddlm}ddlm}ddlm}|��}|d�|�}|��|�|dd|d��}|�	|�
|d	d
�|d|ddkr>d
n|d|df�|��~dS)Nr)�requires)�Tk)�FontZguiZTkFixedFontT)rPrX�rootrr��family�sizer Zweight)�test.supportr��tkinterr�Ztkinter.fontr�rtZwithdraw�actualr(ZGetFontZdestroy)r*r�r�r�rlr�rorrr�
test_get_font*s$�zIdleConfTest.test_get_fontcCs�|��}|j}||��ddg�||��dddg�||��ddg�||�d�dd	d
g�||�d�ddg�||�d
�dddg�||�d�dddg�dS)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�)rtr(ZGetCoreKeysr�rrr�test_get_core_keys=s���zIdleConfTest.test_get_core_keysN)F)'r;r<r=r>�classmethodrprqrrrt�unittestZskipIfrer��
startswithr�r�r�r�r�r�rKr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr[�sF







	r[c@sReZdZdZejZdZe��Zdd�Z	dd�Z
dd�Zd	d
�Zdd�Z
d
d�ZdS)�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�cCs~|�|�d�|j�t�d�|�|�d�|j�dtdd<|�|�d�d�dtdd<|�|�d�|j�t�d�dS)Nr�z<
            [Theme]
            default = True
            �IDLE NewrP�non-existent)r(�	colorkeys�
default_theme�usermainr'rYr�rrr�test_old_builtin_themeXs
z+CurrentColorKeysTest.test_old_builtin_themecC�ht�d�|�|�d�d�dtdd<|�|�d�d�dtdd<|�|�d�|j�t�d�dS)NzZ
            [Theme]
            default = True
            name2 = IDLE Dark
            r�z	IDLE Darkr�rPr��name2)r�r'r(r�r�rYr�rrr�test_new_builtin_themej�
z+CurrentColorKeysTest.test_new_builtin_themecC�pt�d�|�|�d�|j�t�d�|�|�d�d�dtdd<|�|�d�d�t�d�t�d�dS)Nz\
            [Theme]
            default = False
            name = Custom Dark
            r�z[Custom Dark]
a=bzCustom Darkr�r�)r�r'r(r�r��userhighrYr�rrr�test_user_override_themez�


z-CurrentColorKeysTest.test_user_override_themecCs^|�|�d�|j�t�d�|�|�d�d�dtdd<|�|�d�|j�t�d�dS)Nr�z`
            [Keys]
            default = True
            name = IDLE Classic Unix
            r�r�rP)r(r�r�r�r'rYr�rrr�test_old_builtin_keys�s
z*CurrentColorKeysTest.test_old_builtin_keyscCr�)Nz`
            [Keys]
            default = True
            name2 = IDLE Modern Unix
            r�r�r�rPr�r�)r�r'r(r�r�rYr�rrr�test_new_builtin_keys�r�z*CurrentColorKeysTest.test_new_builtin_keyscCr�)Nz[
            [Keys]
            default = False
            name = Custom Keys
            r�z[Custom Keys]
a=bzCustom Keysr�r�)r�r'r(r�r��userkeysrYr�rrr�test_user_override_keys�r�z,CurrentColorKeysTest.test_user_override_keysN)r;r<r=r>rr�r�r�r�r�r�r�r�r�r�rrrrr�Msr�c@s�eZdZiiiid�Zdd�Zdddiiddd	iid
ddiiid�Zd
d�Zdd�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS) �ChangesTest)rr	r
rcCs:|j}|�dddd�|�dddd�|�d	d
dd�|S)
Nr�Msec�mitem�mvalr	�Hsec�hitem�hvalr
�Ksec�kitem�kval��changes�
add_option�r*rrrr�load�s
zChangesTest.loadr�r�r�r�r�rrrrcCst��|_dSr@)rZ
ConfigChangesrr�rrr�setUp�szChangesTest.setUpcCs|�|j|j�dSr@)r(r�emptyr�rrr�	test_init�szChangesTest.test_initcCs8|��}|�||j�|�dddd�|�||j�dS)Nrr�r�r�)rr(�loadedrrrrr�test_add_option�szChangesTest.test_add_optioncCs�|jj}|�|dddd��|�|dddd��|�tddd�|�|dddd��|�tddd�|�|dddd��|�t�dd��t�d�dS)Nrr�Zwhat�0�
use-spacesr�)r�save_optionrHrJr(r��
has_optionrY)r*rrrr�test_save_option�szChangesTest.test_save_optioncCs�|��}|�|���|�tddd�|�tddd�|�tddd	�|�d
ddd�|�|���t�	d�t�	d�t�	d�dS)Nr�r�r�r�r�rrrrr)
rrH�save_allr(r�r�r�rrJrYrrrr�test_save_added�s

zChangesTest.test_save_addedcCsV|j}|�dddd�|�dddd�|��|�t�dd��|�t�dd��dS)Nrr�r�ZidledocZELDIZcodeldi)rrrrrJr�rrHrrrr�test_save_help�szChangesTest.test_save_helpcCs|j}|�dddd�dS)Nrr�rr�rrrrr�test_save_default�szChangesTest.test_save_defaultc	Cs�|��}|�dd�|�||j�dD]4\}}t|�|dd�|�||�|�t��|||t||Wd�n1sBwYqdS)NrZfake))rr�)r
rrP�value)rZdelete_sectionr(rr
rIr��KeyError)r*rZcfgtype�sectionrrr�test_delete_sections���zChangesTest.test_delete_sectioncCs"|��}|��|�||j�dSr@)r�clearr(r
rrrr�
test_clearszChangesTest.test_clearN)r;r<r=r
rrr	rr
rrrrrrrrrrr��s"


�	r�c@seZdZdd�ZdS)�WarningTestcCs�|j}t�t_t��}t�dd�Wd�n1swY|tjdh�||��d�t��}t�dd�Wd�n1sBwY||��d�t��}t�dd�Wd�n1sbwY|tjddh�||��d	�dS)
N�warning�key)rrzwarning
r�warn2�yek)r r!zwarn2
)r(r�rZ_warnedrri�getvalue)r*ZEqual�stderrrrr�	test_warns ���zWarningTest.test_warnN)r;r<r=r$rrrrrsrr^�)�	verbosity)!r>rrrerVrTr�rrr�rZidlelib.idle_test.mock_idlerrrrr
rAr�r�r�r�rrZTestCaserr?r[r�r�rr;rrrrr�<module>s>;SoV�