HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/idlelib/idle_test/__pycache__/test_config.cpython-311.opt-1.pyc
�

��VcS���P�dZddlmZddlZddlZddlZddlmZmZddl	Z	ddl	m
Z
ddlZddlmZej
Z
e
jZiZejd��xZed<ejd��xZed	<ejd��xZed
<ejd��xZed<d�Zd
�ZGd�de	j��ZGd�de	j��ZGd�de	j��ZGd�de	j��ZGd�de	j��ZGd�de	j��Zedkre	j d���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�
extensionsc�@�tt_dt_dS)NT)�testcfg�idleConf�userCfg�idlelib�testing���1D:\Python311\Lib\idlelib\idle_test\test_config.py�setUpModulers���H���G�O�O�Orc�@�tt_dt_dS)NF)�usercfgrrrrrrr�tearDownModuler!s���H���G�O�O�Orc�.�eZdZdZdZd�Zd�Zd�Zd�ZdS)�IdleConfParserTestzTest that IdleConfParser worksz�
        [one]
        one = false
        two = true
        three = 10

        [two]
        one = a string
        two = true
        three = false
    c�j�tjd��}|�|j��|j}|�|�ddd���d��|�|�ddd���d��||�ddd	���d
��||�dd��d��|�|�ddd���d��|�|�ddd���d��||�dd��d��||�dd��d
��|�|�dd����||�ddd���d��dS)Nr�one�bool��typeF�twoT�three�int�
za string�true�false�not�exist�DEFAULT��default)r�IdleConfParser�read_string�assertEqual�assertIs�Get�assertIsNone)�self�parser�eqs   r�test_getzIdleConfParserTest.test_get5s����&�r�*�*�����4�;�'�'�'�
�
��	
�
�
�f�j�j���F�j�;�;�U�C�C�C��
�
�f�j�j���F�j�;�;�T�B�B�B�
��6�:�:�e�W�5�:�1�1�2�6�6�6�
��6�:�:�e�U�#�#�Z�0�0�0��
�
�f�j�j���F�j�;�;�T�B�B�B��
�
�f�j�j���f�j�=�=�u�E�E�E�	��6�:�:�e�U�#�#�V�,�,�,�
��6�:�:�e�W�%�%�w�/�/�/�	
���&�*�*�U�G�4�4�5�5�5�
��6�:�:�e�W�i�:�8�8�)�D�D�D�D�Drc�2�tjd��}|�|j��|j}|�|d��gd���|�|d��gd���|�|d��g��dS)Nrr)rr!r"r!z	not exist)rr,r-�
GetOptionList�assertCountEqualr.)r2r3�get_lists   r�test_get_option_listz'IdleConfParserTest.test_get_option_listJs����&�r�*�*�����4�;�'�'�'��'�����h�h�u�o�o�/F�/F�/F�G�G�G����h�h�u�o�o�/F�/F�/F�G�G�G������+�.�.��3�3�3�3�3rc��tjd��}|���|�|���g��dS)Nr)rr,�Loadr.�sections�r2r3s  r�test_load_nothingz$IdleConfParserTest.test_load_nothingRsE���&�r�*�*�����
�
�
�������*�*�B�/�/�/�/�/rc��td��}tj|��}|���|�|�dd��d��|�|�d��dg��dS)N�cfgparser.1�Foo Bar�foo�newbar)rrr,r<r.r0r7)r2�config_pathr3s   r�test_load_filez!IdleConfParserTest.test_load_fileWs|���}�-�-���&�{�3�3�����
�
�
�������I�u�5�5�x�@�@�@�����-�-�i�8�8�5�'�B�B�B�B�BrN)	�__name__�
__module__�__qualname__�__doc__rr5r:r?rFrrrrr&se������(�(�
�F�E�E�E�*4�4�4�0�0�0�
C�C�C�C�Crrc�>�eZdZdZdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
S)�IdleUserConfParserTestz"Test that IdleUserConfParser worksrc�*�tj|��S�N)r�IdleUserConfParser)r2�paths  r�
new_parserz!IdleUserConfParserTest.new_parserds���(��.�.�.rc��|���}|�d��|�|�ddd����|�|�ddd����|�|�ddd����|�|�dd��d��|�|�ddd����|�|���ddg��|�|�dd��d��dS)N�Foo�barr%r&�Bar)	rQ�add_section�
assertTrue�	SetOption�assertFalser.r0r8r=r>s  r�test_set_optionz&IdleUserConfParserTest.test_set_optiongs+�����"�"�����5�!�!�!�����(�(���v�>�>�?�?�?�����)�)�%���?�?�@�@�@�����(�(���w�?�?�@�@�@�������E�5�1�1�7�;�;�;�	
����(�(���v�>�>�?�?�?����f�o�o�/�/�%���@�@�@�������E�5�1�1�6�:�:�:�:�:rc�|�|���}|�d��|�ddd��|�|�dd����|�|�dd����|�|�dd����dS)NrSrTr%�Not�Exist)rQ�
AddSectionrXrW�RemoveOptionrYr>s  r�test_remove_optionz)IdleUserConfParserTest.test_remove_optionws������"�"�����%� � � ������v�.�.�.�����+�+�E�5�9�9�:�:�:�����,�,�U�E�:�:�;�;�;�����,�,�U�G�<�<�=�=�=�=�=rc�P�|���}|�|���g��|�d��|�d��|�d��|�|���ddg��dS)NrSrU)rQr.r=r^r8r>s  r�test_add_sectionz'IdleUserConfParserTest.test_add_section�s������"�"��������*�*�B�/�/�/�	���%� � � ����%� � � ����%� � � ����f�o�o�/�/�%���@�@�@�@�@rc�~�|���}|�d��|�d��|�ddd��|�|���gd���|���|�|���dg��dS)NrSrU�Idle�name�val)rUrSrd)rQr^rXr8r=�RemoveEmptySectionsr.r>s  r�test_remove_empty_sectionsz1IdleUserConfParserTest.test_remove_empty_sections�s������"�"�����%� � � ����%� � � �������/�/�/����f�o�o�/�/�1G�1G�1G�H�H�H��"�"�$�$�$�������*�*�V�H�5�5�5�5�5rc��|���}|�d��|�d��|�|�����|�|���g��|�ddd��|�d��|�|�����|�|���dg��dS)NrSrUrTr&)	rQr^rW�IsEmptyr.r=rXrYr8r>s  r�
test_is_emptyz$IdleUserConfParserTest.test_is_empty�s������"�"�����%� � � ����%� � � �������(�(�)�)�)�������*�*�B�/�/�/������w�/�/�/����%� � � �������)�)�*�*�*����f�o�o�/�/�%��9�9�9�9�9rc���tj��5}tj�|d��}|�|��}|�d��|�ddd��|�tj�	|����|�
��|�tj�	|����|�d��|�
��|�tj�	|����ddd��dS#1swxYwYdS)Nztest.cfgrSrTr%)
�tempfile�TemporaryDirectory�osrP�joinrQr^rXrY�exists�SaverW�remove_section)r2�tdirrPr3s    r�	test_savez IdleUserConfParserTest.test_save�sZ��
�
(�
*�
*�	3�d��7�<�<��j�1�1�D��_�_�T�*�*�F����e�$�$�$����U�E�6�2�2�2�
���R�W�^�^�D�1�1�2�2�2��K�K�M�M�M��O�O�B�G�N�N�4�0�0�1�1�1�
�!�!�%�(�(�(��K�K�M�M�M����R�W�^�^�D�1�1�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s�D5E�E�EN)r)rGrHrIrJrQrZr`rbrhrkrurrrrLrLas�������,�,�/�/�/�/�;�;�;� >�>�>�	A�	A�	A�6�6�6�:�:�:�3�3�3�3�3rrLc��eZdZdZed���Zed���Zd$d�Zd�Ze	j
ej�
d��d��d	���Ze	j
ej�
d��d
��d���Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d �Z$d!�Z%d"�Z&d#S)%�IdleConfTestzTest for idleConfc�0�i|_tjd���}tdkr%tj�t��}n/tj�tjd��}|j
D]i}tj�|d|z��}t|d��5}|�
��|j|<ddd��n#1swxYwY�jtj|_t!��t_dS)NT��_utest�__main__rz../config-%s.def�r)�
config_stringr�IdleConfrGrorP�dirname�__file__�abspath�sys�config_typesrp�open�read�_warn�	orig_warnr)�cls�conf�idle_dir�ctyperE�fs      r�
setUpClasszIdleConfTest.setUpClass�s�������d�+�+�+���z�!�	4��w���x�0�0�H�H��w���s�x��{�3�3�H��&�	4�	4�E��'�,�,�x�1C�e�1K�L�L�K��k�3�'�'�
4�1�+,�6�6�8�8��!�%�(�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4�
4����
4�
4�
4�
4�����
��v�v����s�8C!�!C%	�(C%	c�(�|jt_dSrN)r�rr�)r�s r�
tearDownClasszIdleConfTest.tearDownClass�s���}����rFc�,�tj|���S)Nry)rr~)r2rzs  r�
new_configzIdleConfTest.new_config�s����f�-�-�-�-rc�`�tjd���}|jD]�}tjd��|j|<|j|�|j|��tjd��|j|<|j|�|j|����|S)zbReturn a mocked idleConf

        Both default and user config used the same config-*.def
        Tryr)	rr~r�r,�
defaultCfgr-r}rOr)r2r�r�s   r�mock_configzIdleConfTest.mock_config�s���
��d�+�+�+���&�	G�	G�E�%+�%:�2�%>�%>�D�O�E�"��O�E�"�.�.�t�/A�%�/H�I�I�I�"(�";�B�"?�"?�D�L����L���+�+�D�,>�u�,E�F�F�F�F��r�winzthis is test for unix systemc���|�d���}tjdd���5tjdd���5|�|���d��ddd��n#1swxYwYddd��n#1swxYwYtjdd���5tjd	d
���5tjd��5|�|���d��ddd��n#1swxYwYddd��n#1swxYwYddd��n#1swxYwYtjd
d���5|�t��5|�t��5|���ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)NTry�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�r2r�s  r�test_get_user_cfg_dir_unixz'IdleConfTest.test_get_user_cfg_dir_unix�s1�����d��+�+���Z�,�;�
G�
G�
G�	L�	L���,�4�@�@�@�
L�
L�� � ��!3�!3�!5�!5�7J�K�K�K�
L�
L�
L�
L�
L�
L�
L�
L�
L�
L�
L����
L�
L�
L�
L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L�
�Z�,�3�
?�
?�
?�	B�	B���K�6I�J�J�J�
B�
B��Z�
�+�+�B�B��$�$�T�%7�%7�%9�%9�%@�B�B�B�B�B�B�B�B�B�B�B�B�B�B����B�B�B�B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B����
B�
B�
B�
B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B��Z��5G�
H�
H�
H�	)�	)��"�"�:�.�.�
)�
)��&�&�'8�9�9�)�)��&�&�(�(�(�)�)�)�)�)�)�)�)�)�)�)����)�)�)�)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)����
)�
)�
)�
)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)���B�)A9�-B�9A=	�=B�A=	�B�B�B�1E�D)�)D�D)�D�D)�D�D)�E�)D-	�-E�0D-	�1E�E�E�!G'�<G�F8�,G�8F<�<G�?F<�G�G'�G	�G'�G	�G'�'G+�.G+zthis is test for Windows systemc���|�d���}tjdd���5tjdd���5|�|���d��ddd��n#1swxYwYddd��n#1swxYwYtjdd���5tjd	d
���5tjd��5|�|���d��ddd��n#1swxYwYddd��n#1swxYwYddd��n#1swxYwYtjd
d���5|�t��5|�t��5|���ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)NTryr�zC:\foor�r�zC:\foo\.idlercr�r�zC:\foo\cpythonr�zC:\foo\cpython\.idlercr�r�r�r�s  r�test_get_user_cfg_dir_windowsz*IdleConfTest.test_get_user_cfg_dir_windows�s1�����d��+�+���Z�,�9�
E�
E�
E�	K�	K���,�4�@�@�@�
K�
K�� � ��!3�!3�!5�!5�7I�J�J�J�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�
�Z�,�3�
?�
?�
?�	B�	B���K�6H�I�I�I�
B�
B��Z�
�+�+�B�B��$�$�T�%7�%7�%9�%9�%@�B�B�B�B�B�B�B�B�B�B�B�B�B�B����B�B�B�B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B����
B�
B�
B�
B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B��Z��5G�
H�
H�
H�	)�	)��"�"�:�.�.�
)�
)��&�&�'8�9�9�)�)��&�&�(�(�(�)�)�)�)�)�)�)�)�)�)�)����)�)�)�)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)����
)�
)�
)�
)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)r�c
�b�|�d���}d}tj�ddi��5tjd|���5|���ddd��n#1swxYwYddd��n#1swxYwY|�|j���|j��|�|j	���|j��|j�
��D]"}|�|tj
���#|j	�
��D]"}|�|tj���#|j���D]B\}}|�|jt$j�|d|�d	������C|j	���D]I\}}|�|jt$j�|jpd
d|�d������JdS)NTryr�rG�__foo__zos.path.dirnamer�zconfig-z.def�#z.cfg)r�rr��dict�CreateConfigHandlersr8r�rr�r�values�assertIsInstancerr,rO�itemsr.�filerorPrp�userdir)r2r�r��default_parser�user_parser�cfg_typer3s       r�test_create_config_handlersz(IdleConfTest.test_create_config_handlerss������d��+�+����
�Z�_�_�j�)�4�
5�
5�	,�	,���-�H�E�E�E�
,�
,��)�)�+�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�
	
���d�o�2�2�4�4�d�6G�H�H�H����d�l�/�/�1�1�4�3D�E�E�E�#�o�4�4�6�6�	I�	I�N��!�!�.�&�2G�H�H�H�H��<�.�.�0�0�	J�	J�K��!�!�+�v�/H�I�I�I�I�!%�� 5� 5� 7� 7�	O�	O��H�f����V�[��W�\�\�(�4L�h�4L�4L�4L�M�M�
O�
O�
O�
O� $�� 2� 2� 4� 4�	Z�	Z��H�f����V�[��W�\�\�$�,�*=�#�?W��?W�?W�?W�X�X�
Z�
Z�
Z�
Z�	Z�	Zs5�B	�A2�&B	�2A6	�6B	�9A6	�:B	�	B
�B
c�N�|�d���}td��}tj|��|jd<tj|��|jd<|���|j}||jd�	dd��d��||jd�
d��dg��||jd�	dd��d��||jd�
d��dg��dS)NTryrArCrBrD)r�rrr,r�rOr�LoadCfgFilesr.r0r7)r2r�rEr4s    r�test_load_cfg_filesz IdleConfTest.test_load_cfg_files&s�����d��+�+���}�-�-��!'�!6�{�!C�!C�����$�7��D�D���U��	
������
�
��	��4�?�5�!�%�%�i��7�7��B�B�B�
��4�?�5�!�/�/�	�:�:�U�G�D�D�D�	��4�<���"�"�9�e�4�4�h�?�?�?�
��4�<���,�,�Y�7�7�%��A�A�A�A�Arc�
�|���}tjd��5}|���|�|jt
|j����ddd��dS#1swxYwYdS)Nz&idlelib.config.IdleUserConfParser.Save)r�rr��SaveUserCfgFilesr.�
call_count�lenr)r2r��ms   r�test_save_user_cfg_filesz%IdleConfTest.test_save_user_cfg_files;s������!�!��
�Z�@�
A�
A�	>�Q��!�!�#�#�#����Q�\�3�t�|�+<�+<�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	>�	>s�AA8�8A<�?A<c	��|���}|j}||�ddd��d��||�dddd���d��tjd��5}||�ddd	d���d��||�ddd
��d��||�ddd
d���d��||jd
��ddd��dS#1swxYwYdS)Nr	�EditorWindow�width�80r#r�P�idlelib.config._warn�font�	NotExists�NEr*�)r�r.�	GetOptionrr�r�)r2r�r4r�s    r�test_get_optionzIdleConfTest.test_get_optionBsY�����!�!��
�
��
��4�>�>�&�.�'�:�:�D�A�A�A�
��4�>�>�&�.�'��>�F�F��K�K�K�
�Z�.�
/�
/�	$�5��B�t�~�~�f�n�f�5�~�I�I�4�P�P�P��B�t�~�~�f�n�k�B�B�D�I�I�I��B�t�~�~�f�n�k�4�~�P�P�RV�W�W�W��B�u���#�#�#�		$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$s�4A9C:�:C>�C>c��|���}|�dddd��|�|�ddd��d��dS)Nr	rSrTrD)r�rXr.r�r�s  rrZzIdleConfTest.test_set_optionNsW�����!�!�����v�u�e�X�6�6�6���������u�=�=�x�H�H�H�H�Hrc��|���}|�|�dd��gd���|�|�dd��gd���|�tj��5|�dd��ddd��n#1swxYwY|�tj��5|�dd��ddd��dS#1swxYwYdS)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_listTs������!�!��������	�6�2�2�
-�
-�
-�	.�	.�	.�	
��������/�/�
-�
-�
-�	.�	.�	.�
�
�
�v�6�
7�
7�	2�	2�����&�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�
�
�
�v�7�
8�
8�	8�	8����	�;�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s$�B/�/B3�6B3�C=�=D�Dc���|���}|j}||�dd��ddd���||�dd��ddd���|�dd	d
d��|�dd	dd
��t	jd��5||�d	d��dd
d���ddd��dS#1swxYwYdS)N�IDLE Classic�normalz#000000z#ffffff)�
foreground�
background�cursor�blackr
�Foobarznormal-foregroundz#747474znormal-backgroundz#171717r�)r�r.�GetHighlightrXrr��r2r�r4s   r�test_get_highlightzIdleConfTest.test_get_highlightes������!�!��
�
��
��4���^�X�6�6�y�GP�9R�9R�	S�	S�	S�	��4���^�X�6�6�w�GP�9R�9R�	S�	S�	S�	
���{�H�.A�9�M�M�M����{�H�.A�9�M�M�M�
�Z�.�
/�
/�	Q�	Q��B�t� � ��8�4�4�Y�EN�7P�7P�
Q�
Q�
Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q����	Q�	Q�	Q�	Q�	Q�	Qs�&$C�C�Cc�F�|���}|�|�dd��|�dd����|�tj��5|�dd��ddd��dS#1swxYwYdS)Nr+r�r��bad)r�r.�GetThemeDictr�r�InvalidThemer�s  r�test_get_theme_dictz IdleConfTest.test_get_theme_dictws������!�!��	
������i��8�8����f�n�5�5�	7�	7�	7��
�
�v�2�
3�
3�	5�	5����e�^�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5s�2B�B�Bc��|���}|�|���|�d����|�|���|�d����dS)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�sy�����!�!������*�*�,�,�d�.J�.J�7�.S�.S�T�T�T�����)�)�+�+�T�-I�-I�&�-Q�-Q�R�R�R�R�Rrc��|���}|�|�d��d��dS)Nr�r�)r�r.r�r�s  r�test_current_colors_and_keysz)IdleConfTest.test_current_colors_and_keys�s=�����!�!������5�5�g�>�>��O�O�O�O�Orc��tj}|�d���}dt_|�|���d��dt_|�|���d��dt_|�|���d��|t_dS)	NTry�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_keyszIdleConfTest.test_default_keys�s����<�����d��+�+���������*�*�,�,�.D�E�E�E��������*�*�,�,�.@�A�A�A�#�������*�*�,�,�.@�A�A�A�(����rc��t�d��|j}tj}||d���g��||��dg��||d���dg��||d���ddg��||dd�	��ddg��t�d��t�d��dS)
Nzn
            [ZzDummy]
            enable = True
            [DISABLE]
            enable = False
            T)�
shell_only�ZzDummy)�editor_onlyF)�active_only�DISABLE)rr)�userextnr-r.r�
GetExtensionsrs)r2r4�iGEs   r�test_get_extensionsz IdleConfTest.test_get_extensions�s������	�	�	��
���$��
��3�3�$�����$�$�$�
��3�3�5�5�9�+����
��3�3�4� � � �9�+�.�.�.�
��3�3�5�!�!�!�I�y�#9�:�:�:�
��3�3�5�d�3�3�3�i��5K�L�L�L����	�*�*�*����	�*�*�*�*�*rc��|���}|�|�|�dd����gd���dS)Nr+r)�AutoComplete�CodeContext�FormatParagraph�
ParenMatchr)r�r8�RemoveKeyBindNamesr�r�s  r�test_remove_key_bind_namesz'IdleConfTest.test_remove_key_bind_names�sd�����!�!������#�#�D�$7�$7�	�<�$P�$P�Q�Q�W�W�W�	Y�	Y�	Y�	Y�	Yrc��t�d��|j}|t�d��d��|t�d��d��t�d��dS)N�=
            [ZzDummy]
            enable = True
            zz-inrzz-out)rr-r.r�GetExtnNameForEventrs)r2r4s  r�test_get_extn_name_for_eventz)IdleConfTest.test_get_extn_name_for_event�s�������	�	�	��
��
��8�'�'��/�/��;�;�;�
��8�'�'��0�0�$�7�7�7����	�*�*�*�*�*rc���t�d��|�t�d��ddgi��t�d��dS)Nrr�<<z-in>>�!<Control-Shift-KeyRelease-Insert>)rr-r.r�GetExtensionKeysrs�r2s r�test_get_extension_keysz$IdleConfTest.test_get_extension_keys�sr������	�	�	�	
����2�2�9�=�=��<�=�>�	@�	@�	@����	�*�*�*�*�*rc��t�d��|j}tj}||d��i��dgdgd�}||d��|��t�d��dS)Nrr�rz!<Control-Shift-KeyRelease-Delete>)rz	<<z-out>>r)rr-r.r�GetExtensionBindingsrs)r2r4�iGEB�expects    r�test_get_extension_bindingsz(IdleConfTest.test_get_extension_bindings�s�������	�	�	��
���,��
��4�4����b�!�!�!�B�C� C�D�F�F��
��4�4�	�?�?�F�#�#�#����	�*�*�*�*�*rc��|���}|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)r�r.�
GetKeyBindingr�s   r�test_get_keybindingz IdleConfTest.test_get_keybinding�sE�����!�!��
�
��
��4���0�*�=�=�
$�&<�=�	?�	?�	?�
��4���1�:�>�>�
�N�+�	-�	-�	-�
��4���4�j�A�A�
� 1�2�	4�	4�	4�
��4���0�*�=�=�@Q�?R�S�S�S�
��4���0�*�=�=�@Q�?R�S�S�S�	��4���l�J�7�7��<�<�<�
��4���0�,�?�?��D�D�D�D�Drc��tj}|���}dt_|�|���|�|�������|t_dS)Nr�)r�r�r�r.�GetCurrentKeySet�	GetKeySetr�r�s   r�test_get_current_keysetz$IdleConfTest.test_get_current_keyset�sk���<�����!�!��$�������.�.�0�0�$�.�.��AQ�AQ�AS�AS�2T�2T�U�U�U�(����rc��|���}|jd�d��|jd�d��|jd�ddd��|jd�ddd��|�|�d��d	d
��dS)Nrr��Foobar_cfgBindings�enable�True�newfooz<Key-F3>r�z
<<newfoo>>r)r�r�rV�setr.r*r�s  r�test_get_keysetzIdleConfTest.test_get_keyset�s������!�!��	
���%�1�1�(�;�;�;����%�1�1�2F�G�G�G����%�)�)�(�H�f�E�E�E����%�)�)�*>��*�U�U�U�������(:�;�;�L�I�2�N�N�N�N�Nrc�n�|���}|�|�d����|�|�d����|�|�d����|�|�d����dS)N�copy�cutzdel-word-rightz
not-exists)r�rW�
IsCoreBindingrYr�s  r�test_is_core_bindingz!IdleConfTest.test_is_core_bindings������!�!������*�*�6�2�2�3�3�3�����*�*�5�1�1�2�2�2�����*�*�+;�<�<�=�=�=�����+�+�L�9�9�:�:�:�:�:rc�<�|���}|�|�d��g��|�|�d��g��|�tj��5|�|�d��g��ddd��n#1swxYwY|�|���|�d��|�d��z��|jd�	ddd��|jd�	ddd	��|jd�	dd
d��|jd�	ddd
��|�|�d��gd���|�|���|�d��|�d��z��dS)Nr+r�r�r	r��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<)�Pillowz(https://pillow.readthedocs.io/en/latest/r;)�Pythonzhttps://python.orgr9)
r�r.�GetExtraHelpSourceListr�rr�r8�GetAllExtraHelpSourcesListrrXr�s  r�test_extra_help_source_listz(IdleConfTest.test_extra_help_source_listsk�����!�!��	
����4�4�Y�?�?��D�D�D�����4�4�V�<�<�b�A�A�A�
�
�
�v�6�
7�
7�	E�	E����T�8�8��?�?��D�D�D�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�����+�+�-�-��'�'�	�2�2�T�5P�5P�QW�5X�5X�X�	Z�	Z�	Z�
	
��V��&�&�{�C�9T�U�U�U���V��&�&�{�C�9T�U�U�U���V��&�&�{�C�9j�k�k�k���V��&�&�{�C�9j�k�k�k�����4�4�V�<�<�A�A�A�	B�	B�	B�	
����+�+�-�-��'�'�	�2�2�T�5P�5P�QW�5X�5X�X�	Z�	Z�	Z�	Z�	Zs�*B<�<C�Cc��ddlm}ddlm}ddlm}|���}|d��|��}|���|�|dd|�����}|�	|�
|d	d
��|d|ddkrd
n|d|df��|���~dS)Nr)�requires)�Tk)�Font�gui�TkFixedFontT)rerq�rootr	r��family�sizer$�weight)�test.supportrD�tkinterrE�tkinter.fontrFr��withdraw�actualr.�GetFont�destroy)r2rDrErFr�rIr�s       r�
test_get_fontzIdleConfTest.test_get_font*s���)�)�)�)�)�)�������%�%�%�%�%�%����!�!���������r�t�t���
�
�����K�K���-��4�H�H�H�I�I������L�L��v�~�6�6�
�x�[��&�	�Q��=�"�"�A�f�I�q��{�K�	M�	M�	M�
	
�������D�Drc�R�|���}|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�)r�r.�GetCoreKeysr�s   r�test_get_core_keyszIdleConfTest.test_get_core_keys=s]�����!�!��
�
��
��4�����1�2�]�O�D�D�D�
��4�����j�)�M�=�+I�J�J�J�
��4�����0�1�I�;�?�?�?�
��4���2�3�3�4G�H��0�1�	3�	3�	3�
��4���.�/�/�
�;�>O�=P�Q�Q�Q�
��4���/�0�0�1C�D��>�*�	,�	,�	,�
��4���.�/�/�0B�C�
�N�+�	-�	-�	-�	-�	-rN)F)'rGrHrIrJ�classmethodr�r�r�r��unittest�skipIfr�r��
startswithr�r�r�r�r�r�rZr�r�r�r�r�rrrrrr!r'r+r2r7rBrTrWrrrrwrw�sc������������[�� �%�%��[�%�.�.�.�.�����X�_�S�\�,�,�U�3�3�5S�T�T�)�)�U�T�)�,�X�_���0�0��7�7�7�9Z�[�[�)�)�\�[�)�,Z�Z�Z�6B�B�B�*>�>�>�
$�
$�
$�I�I�I�8�8�8�"Q�Q�Q�$
5�
5�
5�S�S�S�P�P�P�
(�(�(� +�+�+�$Y�Y�Y�+�+�+�+�+�+�+�+�+�E�E�E�"(�(�(�"O�O�O�;�;�;�Z�Z�Z�6���&
-�
-�
-�
-�
-rrwc�p�eZdZdZejZdZe���Zd�Z	d�Z
d�Zd�Zd�Z
d�Zd	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).
    r�c��|�|�d��|j��t�d��|�|�d��|j��dtdd<|�|�d��d��dtdd<|�|�d��|j��t�d��dS)Nr�z<
            [Theme]
            default = True
            �IDLE Newre�non-existent)r.�	colorkeys�
default_theme�usermainr-rsrs r�test_old_builtin_themez+CurrentColorKeysTest.test_old_builtin_themeXs����������0�0�$�2D�E�E�E�����	�	�	�
	
�������0�0�$�2D�E�E�E�$.����&�!��������0�0�*�=�=�=�$2����&�!��������0�0�$�2D�E�E�E�����(�(�(�(�(rc��t�d��|�|�d��d��dtdd<|�|�d��d��dtdd<|�|�d��|j��t�d��dS)NzZ
            [Theme]
            default = True
            name2 = IDLE Dark
            r�z	IDLE Darkr_rer`�name2)rcr-r.rarbrsrs r�test_new_builtin_themez+CurrentColorKeysTest.test_new_builtin_themejs�������	�	�	�
	
�������0�0�+�>�>�>�$.����&�!��������0�0�+�>�>�>�%3����'�"��������0�0�$�2D�E�E�E�����(�(�(�(�(rc��t�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`rf)rcr-r.rarb�userhighrsrs r�test_user_override_themez-CurrentColorKeysTest.test_user_override_themezs�������	�	�	�
	
�������0�0�$�2D�E�E�E����1�2�2�2��������0�0�-�@�@�@�%3����'�"��������0�0�-�@�@�@�����(�(�(����
�.�.�.�.�.rc��|�|�d��|j��t�d��|�|�d��d��dtdd<|�|�d��|j��t�d��dS)Nr�z`
            [Keys]
            default = True
            name = IDLE Classic Unix
            r$r`re)r.rar�rcr-rsrs r�test_old_builtin_keysz*CurrentColorKeysTest.test_old_builtin_keys�s����������/�/��1B�C�C�C�����	�	�	�
	
�������/�/�1D�E�E�E�#1����� ��������/�/��1B�C�C�C�����'�'�'�'�'rc��t�d��|�|�d��d��dtdd<|�|�d��d��dtdd<|�|�d��|j��t�d��dS)Nz`
            [Keys]
            default = True
            name2 = IDLE Modern Unix
            r�r�r$rer`rf)rcr-r.rar�rsrs r�test_new_builtin_keysz*CurrentColorKeysTest.test_new_builtin_keys�s�������	�	�	�
	
�������/�/�1C�D�D�D�#6����� ��������/�/�1C�D�D�D�$2�����!��������/�/��1B�C�C�C�����'�'�'�'�'rc��t�d��|�|�d��|j��t
�d��|�|�d��d��dtdd<|�|�d��d��t�d��t
�d��dS)Nz[
            [Keys]
            default = False
            name = Custom Keys
            r�z[Custom Keys]
a=bzCustom Keysr`rf)rcr-r.rar��userkeysrsrs r�test_user_override_keysz,CurrentColorKeysTest.test_user_override_keys�s�������	�	�	�
	
�������/�/��1B�C�C�C����1�2�2�2��������/�/��?�?�?�$2�����!��������/�/��?�?�?�����'�'�'����
�.�.�.�.�.rN)rGrHrIrJrr�rarbr�rdrgrjrlrnrqrrrr]r]Ms����������0�I�"�M��(�(�*�*�L�)�)�)�$)�)�)� /�/�/�"
(�
(�
(�(�(�(� /�/�/�/�/rr]c�~�eZdZiiiid�Zd�Zdddiidddiid	d
diiid�Zd�Zd
�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d�ZdS)�ChangesTest)r	r
rrc��|j}|�dddd��|�dddd��|�d	d
dd��|S)
Nr	�Msec�mitem�mvalr
�Hsec�hitem�hvalr�Ksec�kitem�kval��changes�
add_option�r2rs  r�loadzChangesTest.load�s\���,�����6�6�7�F�;�;�;����;����@�@�@����6�6�7�F�;�;�;��rrurvrwrxryrzr{r|r}c�6�tj��|_dSrN)r�
ConfigChangesrrs r�setUpzChangesTest.setUp�s���+�-�-����rc�F�|�|j|j��dSrN)r.r�emptyrs r�	test_initzChangesTest.test_init�s"�������t�z�2�2�2�2�2rc���|���}|�||j��|�dddd��|�||j��dS)Nr	rurvrw)r�r.�loadedr�r�s  r�test_add_optionzChangesTest.test_add_option�s_���)�)�+�+������$�+�.�.�.����6�6�7�F�;�;�;�����$�+�.�.�.�.�.rc�R�|jj}|�|dddd����|�|dddd����|�t
ddd��|�|dddd����|�t
ddd��|�|dddd����|�t
�dd����t
�d��dS)Nr	r��what�0�
use-spacesr<)r�save_optionrWrYr.rc�
has_optionrs)r2r�s  r�test_save_optionzChangesTest.test_save_option�s���l�.�������F�H�f�c�B�B�C�C�C������V�X�v�s�C�C�D�D�D�����(�+�F�3�S�9�9�9������F�H�l�C�H�H�I�I�I�����(�+�L�9�3�?�?�?������F�H�l�C�H�H�I�I�I�����,�,�X�|�D�D�E�E�E�����)�)�)�)�)rc��|���}|�|�����|�tddd��|�t
ddd��|�tddd	��|�d
ddd��|�|�����t�	d��t
�	d��t�	d��dS)Nrurvrwrxryrzr{r|r}r	)
r�rW�save_allr.rcrirpr�rYrsr�s  r�test_save_addedzChangesTest.test_save_added�s	���)�)�+�+������(�(�*�*�+�+�+�����&�)�'�2�F�;�;�;�����&�)�'�2�F�;�;�;�����&�)�'�2�F�;�;�;����6�6�7�F�;�;�;�����)�)�+�+�,�,�,�����'�'�'�����'�'�'�����'�'�'�'�'rc�T�|j}|�dddd��|�dddd��|���|�t
�dd����|�t
�dd����dS)Nr	r�r=�idledoc�ELDI�codeldi)rr�r�r�rYrcr�rWr�s  r�test_save_helpzChangesTest.test_save_help�s����,�����F�K���C�C�C����6�;��	�B�B�B�����������,�,�[�&�A�A�B�B�B�����+�+�K��@�@�A�A�A�A�Arc�D�|j}|�dddd��dS)Nr	r�r�r<r~r�s  r�test_save_defaultzChangesTest.test_save_default�s)���,�����6�8�\�3�?�?�?�?�?rc��|���}|�dd��|�||j��dD]�\}}t|�|dd��|�||��|�t��5|||t||ddd��n#1swxYwY��dS)Nr	�fake))r	ru)rr{re�value)r��delete_sectionr.r�rrXr��KeyError)r2r�cfgtype�sections    r�test_delete_sectionzChangesTest.test_delete_sections���)�)�+�+�����v�v�.�.�.�����$�+�.�.�.� D�	*�	*��G�W��G��&�&�w���@�@�@��"�"�7�G�4�4�4��"�"�8�,�,�
*�
*��� ��)�)��� ��)�)�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*��	*�	*s�"C
�
C	�C	c��|���}|���|�||j��dSrN)r��clearr.r�r�s  r�
test_clearzChangesTest.test_clears:���)�)�+�+���
�
��������$�*�-�-�-�-�-rN)rGrHrIr�r�r�r�r�r�r�r�r�r�r�r�rrrrsrs�s��������B�r��C�C�E�������0�1�"�W�f�$5�6����/�0�� � �F�
.�.�.�3�3�3�/�/�/�
*�
*�
*�
(�
(�
(�B�B�B�@�@�@�	*�	*�	*�.�.�.�.�.rrsc��eZdZd�ZdS)�WarningTestc��|j}t��t_t	��5}tjdd��ddd��n#1swxYwY|tjdh��||���d��t	��5}tjdd��ddd��n#1swxYwY||���d��t	��5}tjdd��ddd��n#1swxYwY|tjddh��||���d	��dS)
N�warning�key)r�r�zwarning
r�warn2�yek)r�r�zwarn2
)r.r1r�_warnedrr��getvalue)r2�Equal�stderrs   r�	test_warnzWarningTest.test_warns���� �������
�
�
�	+�&��L��E�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�
��f�n�0�1�2�2�2�
��f�o�o����0�0�0�
�
�
�	+�&��L��E�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�
��f�o�o����$�$�$�
�
�
�	)�&��L��%�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�
��f�n�0�/�B�C�C�C�
��f�o�o����.�.�.�.�.s5�A�A�A�C�C�C�7D�D� DN)rGrHrIr�rrrr�r�s#������
/�
/�
/�
/�
/rr�r{�)�	verbosity)!rJrrr�rormrMrrrYr�idlelib.idle_test.mock_idlerrrrrrOrcrirprrr�TestCaserrLrwr]rsr�rGr	rrr�<module>r�s�����
������
�
�
�
�	�	�	�	�����2�2�2�2�2�2�2�2���������������,�,�,�,�,�,��?��
�
��
��6�V�6�r�:�:�:��7�6�?�";�&�";�B�"?�"?�?��7�;��6�V�6�r�:�:�:��7�6�?�#<�6�#<�R�#@�#@�@��7�<� �������
8C�8C�8C�8C�8C��*�8C�8C�8C�vP3�P3�P3�P3�P3�X�.�P3�P3�P3�fV-�V-�V-�V-�V-�8�$�V-�V-�V-�rl/�l/�l/�l/�l/�8�,�l/�l/�l/�^S.�S.�S.�S.�S.�(�#�S.�S.�S.�l/�/�/�/�/�(�#�/�/�/�$�z����H�M�A��������r