Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_configparser.cpython-312.pyc

�

'ΜgYU����ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
Gd�dej�ZGd�d�Z
Gd�d	e
�ZGd
�deej�ZGd�d
eej�ZGd�deej�ZGd�de�ZGd�dej�ZGd�de�ZGd�de�ZGd�deej�ZGd�deej�ZGd�de�ZGd�de
ej�ZGd �d!eej�ZGd"�d#e�ZGd$�d%e
ej�ZGd&�d'ej�ZGd(�d)e�ZGd*�d+e
ej�Z Gd,�d-eej�Z!Gd.�d/�Z"d0�Z#Gd1�d2ej�Z$Gd3�d4ej�Z%Gd5�d6ej�Z&Gd7�d8ej�Z'Gd9�d:ej�Z(Gd;�d<eej�Z)Gd=�d>ej�Z*Gd?�d@ej�Z+e,dAk(rejZ�yy)B�N)�support)�	os_helperc�4�eZdZd�Zd�Zd�Zd�Zd�Zd�ZeZ	y)�
SortedDictc�H�t|jj��S�N)�sorted�data�items��selfs �3/usr/local/lib/python3.12/test/test_configparser.pyrzSortedDict.itemss���d�i�i�o�o�'�(�(�c�H�t|jj��Sr)r	r
�keysrs rrzSortedDict.keyss���d�i�i�n�n�&�'�'rc�N�|j�D�cgc]}|d��	c}Scc}w)N�)r)r
�is  r�valueszSortedDict.valuess$��"�j�j�l�+�l���!��l�+�+��+s�"c�4�t|j��Sr)�iterrrs r�	iteritemszSortedDict.iteritemss���D�J�J�L�!�!rc�4�t|j��Sr)rrrs r�iterkeyszSortedDict.iterkeyss���D�I�I�K� � rc�4�t|j��Sr)rrrs r�
itervalueszSortedDict.itervaluess���D�K�K�M�"�"rN)
�__name__�
__module__�__qualname__rrrrrr�__iter__�rrrr
s'��)�(�,�"�!�#��Hrrc�|�eZdZdZdZdZdZdZejZ
dZejZ
ejZdd�Zdd�Zy)	�CfgParserTestCaseClassF)�=�:)�;�#TNc��t||j|j|j|j|j
|j|j|j|j��
}|jdi|��}|S)N)
�defaults�allow_no_value�
delimiters�comment_prefixes�inline_comment_prefixes�empty_lines_in_values�	dict_type�strict�default_section�
interpolationr!)�dictr*r+r,r-r.r/r0r1r2�config_class)r
r)�	arguments�instances    r�	newconfigz CfgParserTestCaseClass.newconfig/sv�����.�.����!�2�2�$(�$@�$@�"&�"<�"<��n�n��;�;� �0�0��,�,�
�	�%�4�$�$�1�y�1���rc�J�|j|�}|j|�|Sr)r7�read_string)r
�stringr)�cfs    r�
fromstringz!CfgParserTestCaseClass.fromstring?s!��
�^�^�H�
%��
���v���	rr)rrrr*r+r,r-r.�configparser�
_default_dictr/r0�DEFAULTSECTr1�_UNSETr2r7r<r!rrr#r#$sN���N��J�!��(�� ���*�*�I�
�F�"�.�.�O� �'�'�M�� rr#c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�
BasicTestCasec�<!�gd�}|jr|jd�|j�ddg}|j�}|j�|j}|||�|jd�}|j�|||�|D�cgc]}|��}}|j�|j|j�|j�|||�|dj�}tt|��}|||�|j�}tt|��}|j	t|�t|��|D]\}}|||j��||j�||j�||jdd�d�||jd	d�d
�||jdd�d�||jdd�d
�||jdd�d�||jdd�d
�||jdd�d�||jdd�d�||jdd�d�||jdd�d�|j|jdd�d�||jdd�d�||j!dd�d�||jdd�d�||jd d!�d"�|jr||jdd#�d�||jddd�$�d�||jddddi�%�d�|j#t$j&�5|jd&d�ddd�|j#t$j(�5|jdd'�ddd�||jd&dd�$�d�||jdd'd�$�d�||jd	dd�$�d
�||jd(dd�$�d�||jddd)�$�d�||jdd*d)�$�d)�||jdd*d+�$�d+�|j#t$j(�5|jdd*�ddd�|j|jddd,�$�d�|j|jdd-d,�$�d,�||jdd-d.�$�d.�|j#t$j(�5|jdd-�ddd�||j!ddd/�$�d�||j!dd0d1�$�d1�||j!dd0d/�$�d/�|j#t$j(�5|j!dd0�ddd�||j!d2dd/�$�d/�|jr6||jdd#d�$�d�||jdd3d�$�d�||ddd�||d	dd
�|d}||jd�|j+|j,|�|j#t.�5d4|_
ddd�|j#t.�5d5|_ddd�||dd�||dd
�||ddd�||ddd
�||ddd�||ddd�||d6dd7�|jr||dd#d�||djdd�d�||djdd�$�d�||djdddi�%�d�|j#t0�5|d&dddd�|j#t0�5|dd'ddd�|j#t0�5|d&jdd�$�ddd�||djd'd�d�||djd'd�$�d�||djd'�d�||d	jdd�d
�||d	jdd�$�d
�|j#t0�5|d(jdd�ddd�||djdd)�d�||djdd)�$�d�||djd*d)�d)�||djd*d)�$�d)�||djd*d+�d+�||djd*d+�$�d+�||djd*�d�|j|djdd,�d�|j|djdd,�$�d�|j|djd-d,�d,�|j|djd-d,�$�d,�||djd-d.�d.�||djd-d.�$�d.�||djd-�d�||dj!dd/�d�||dj!dd/�$�d�||dj!d0d1�d1�||dj!d0d1�$�d1�||dj!d0d/�d/�||dj!d0d/�$�d/�||dj!d0�d�|jrr||djd#d�d�||djd#d�$�d�||djd3d�d�||djd3d�$�d�d8||jd9<d:||jd;<|j3|j5d��|j7|j9dd��|j7|j5d��|j7|j5|j��|j3|j;dd�d<�|j7|j9dd�d=�|j7|j;dd�d>�|j3|j9dd9��|j7|j;dd9��|j3|j;|jd9��|j7|j9dd9��|j7|j;|jd9��|j#t$j&�5}|j;d?d�ddd�|j	j<j>d@�||jd6d�d7�|d=|j7d|v�|j#t0�5|d=ddd�|j#t@�5||j=ddd�|d	d=|j7d|d	v�|j#t0�5|d	d=ddd�|j3d;|d	v�|j#t0�5|d	d;=ddd�||jd;=|j7d;|d	v�|j#t0�5||jd;=ddd�|j#t0�5|d?d=ddd�ycc}w#1swY��xYw#1swY���xYw#1swY�
��xYw#1swY�
�`xYw#1swY�	��xYw#1swY�	�xYw#1swY�	�xYw#1swY��xYw#1swY���xYw#1swY���xYw#1swY��!xYw#1swY��2xYw#1swY���xYw#1swY���xYw#1swY��xxYw#1swY��KxYw#1swY��xYw#1swYyxYw)AN)
�
Commented Bar�Foo Bar�Internationalized Stuff�	Long Line�Section\with$weird%characters[	�Spaces�
Spacey Bar�Spacey Bar From The Beginning�Types�This One Has A ] In It�NoValue)�baz�qwe)�foo�bar3rKrErQ�bar1rJ�bar2rRrOrPrD�bar4rI�key with spaces�value�another with spaces�splat!rL�int�*�42�float�)\��(�?z0.44�booleanF�123�strange but acceptablerM�forks�spoons�option-without-value��fallback��varszNo Such Foo Barzno-such-foozNo Such Spacey Bar�zno-such-int�18gz
no-such-floatz0.0Tzno-such-boolean�yesz
No Such Typeszno-such-option-without-valuezName is read-onlyzParser is read-onlyrG�7this line is much, much longer than my editor
likes it.�1�
this_value�2�
that_valuez4remove_option() failed to report existence of optionz'remove_option() failed to remove optionzIremove_option() failed to report non-existence of option that was removed�No Such Section)rq)!r*�append�sort�sections�assertEqualrr1r	�list�len�namer)�get�getint�assertAlmostEqual�getfloat�
getboolean�assertRaisesr=�NoSectionError�
NoOptionError�assertIs�parser�AttributeError�KeyError�
assertTrue�remove_section�assertFalse�
has_option�
remove_option�	exception�args�
ValueError)	r
r;�E�F�L�eq�sectionrx�cms	         r�
basic_testzBasicTestCase.basic_testGs���

�����
�H�H�Y��	����
�_�-��
�K�K�M��	����
�
�
��
�1�a���H�H�4�5��	����
�1�a��%'�'�B��W�B��'�	����	����%�%�&�	����
�1�a���.�/�5�5�7���4��7�O��
�1�a���H�H�J���4��7�O������Q���Q��(��M�D�'��t�W�\�\�"��
�2�;�;�=�"�T�1�1�2�3�	�2�6�6�)�U�#�V�,�
�2�6�6�,��&��/�
�2�6�6�1�5�9�6�B�
�2�6�6�1�5�9�5�A�
�2�6�6�/�5�)�6�2�
�2�6�6�/�5�)�5�1�
�2�6�6�(�-�.��8�
�2�6�6�(�1�2�H�=�
�2�9�9�W�e�$�b�)�
�2�6�6�'�5�!�4�(����r�{�{�7�G�<�d�C�
�2�6�6�'�7�#�V�,�
�2�=�=��)�,�e�4�
�2�6�6�'�5�!�#;�<�
�2�6�6�*�G�4�h�?�����r�v�v�i�!7�8�$�?�	�2�6�6�)�U�U�6�3�V�<�
�2�6�6�)�U�%���6�8�%�@�
�
�
�|�:�:�
;��F�F�$�e�,�<�
�
�
�|�9�9�
:��F�F�9�m�,�;�
�2�6�6�#�U�U�6�;�U�C�
�2�6�6�)�]�U�6�;�U�C�
�2�6�6�,���6�5�v�>�
�2�6�6�&���6�=�t�D�
�2�9�9�W�e�b�9�1�2�6�
�2�9�9�W�m�b�9�9�2�>�
�2�9�9�W�m�d�9�;�T�B�
�
�
�|�9�9�
:��I�I�g�}�-�;����r�{�{�7�G�47� +� 9�:>�	@����r�{�{�7�O�47� +� 9�:=�	?�
�2�;�;�w��%�;�@�%�H�
�
�
�|�9�9�
:��K�K���1�;�
�2�=�=��)�d�=�;�U�C�
�2�=�=��"3�e�=�D��	�
�2�=�=��"3�d�=�C�T�J�
�
�
�|�9�9�
:��M�M�'�#4�5�;�
�2�=�=��)�d�=�C�T�J�����r�v�v�i�!7�%�v�H�$�O��r�v�v�i�!?�$��&�',�
.�	�2�i�=����(�
�2�l��E�"�F�+��4�5��
�7�<�<�8�9��
�
�g�n�n�b�)�
�
�
�~�
.�.�G�L�/�
�
�
�~�
.�2�G�N�/�
�7�5�>�6�"�
�7�5�>�5�!�
�2�o��u�%�v�.�
�2�o��u�%�u�-�
�2�h�<�)�*�G�4�
�2�h�<�-�.��9�
�2�k�?�5�!�E�	G�����r�)�}�3�4�d�;�
�2�i�=���U�E�*�F�3�
�2�i�=���U�U��3�V�<�
�2�i�=���U�%����8�%�@�
�
�
�x�
(�� �!�%�(�)�
�
�
�x�
(��y�M�-�(�)�
�
�
�x�
(�� �!�%�%�e�e�%�<�)�
�2�i�=���]�E�2�E�:�
�2�i�=���]�U��;�U�C�
�2�i�=���]�+�T�2�
�2�l�����t�,�f�5�
�2�l�������5�v�>�
�
�
�x�
(��#�$�(�(���5�)�
�2�g�;���e�R�(�"�-�
�2�g�;���e�b��1�2�6�
�2�g�;���m�R�0�"�5�
�2�g�;���m�b��9�2�>�
�2�g�;���m�T�2�D�9�
�2�g�;���m�d��;�T�B�
�2�g�;���m�,�d�3����r�'�{�3�3�G�S�A�4�H����r�'�{�3�3�G�=@� 4� B�CG�	I����r�'�{�3�3�O�S�I�3�O����r�'�{�3�3�O�=@� 4� B�CF�	H�
�2�g�;�����7��?�
�2�g�;����%��@�%�H�
�2�g�;����0�$�7�
�2�g�;�!�!�)�T�2�E�:�
�2�g�;�!�!�)�d�!�;�U�C�
�2�g�;�!�!�"3�U�;�U�C�
�2�g�;�!�!�"3�e�!�D��	�
�2�g�;�!�!�"3�T�:�D�A�
�2�g�;�!�!�"3�d�!�C�T�J�
�2�g�;�!�!�"3�4�d�;�����r�)�}� � �!7��?��F��r�)�}� � �!7�%� �H�$�O��r�)�}� � �!?��G��O��r�)�}� � �!?�$�!�&�',�
.�25��4��� ��.�14��4��� ��.�	
����)�)�(�3�4�������x�1B�C�D�����*�*�8�4�5�����*�*�4�+?�+?�@�A�����(�(��E�:�N�	P�������y�%�8�=�	?�����)�)�)�U�;�(�	)�	
����
�
�i��>�?�����)�)�)�\�B�C�����(�(��)=�)=�|�L�M�������y�,�?�@�����)�)�$�*>�*>��M�N�
�
�
�|�:�:�
;�r����.��6�<�������*�*�,@�A�
�2�6�6�+�u�%�E�	G�
�w�K�����B��'�
�
�
�x�
(��7��)�
�
�
�z�
*��4�'�'�(�+��|��U�#�����"�\�"2�2�3�
�
�
�x�
(��<� ��'�)������<�(8�8�9�
�
�
�x�
(��<� ��.�)��t�#�#�$�\�2������L�)9�9�:�
�
�
�x�
(��4�'�'�(��6�)�
�
�
�x�
(��$�%�e�,�)�
(��}
(�R<�
;��
:�
:��;�
:��;�
:��;�
:��/�
.��
.�
.�� )�
(��
(�
(��
(�
(��)�
(��r<�
;��)�
(��
*�
*��)�
(��)�
(��)�
(��
(�
(�s�	~0�~5���+�6)�6�:A@�5	A@�	A@�A@*�A@7�AA�AA�'AA�.AA+�(AA8�2AB� AB�5~?���&�)3�6A@�@A@
�@A@�@A@'�@*A@4�@7AA�AAA�AAA�AAA(�A+AA5�A8AB�BAB�BABc��dj|j|j�}|jr|dz
}|j	|�}|j|�|jr�|jtj�5|jtjdj|j���ddd�|jtj�5|jtjdj|j���ddd�y|jtjdj|j���|jtjdj|j���y#1swY��xYw#1swYyxYw)Nax[Foo Bar]
foo{0[0]}bar1
[Spacey Bar]
foo {0[0]} bar2
[Spacey Bar From The Beginning]
  foo {0[0]} bar3
  baz {0[0]} qwe
[Commented Bar]
foo{0[1]} bar4 {1[1]} comment
baz{0[0]}qwe {1[0]}another one
[Long Line]
foo{0[1]} this line is much, much longer than my editor
   likes it.
[Section\with$weird%characters[	]
[Internationalized Stuff]
foo[bg]{0[1]} Bulgarian
foo{0[0]}Default
foo[en]{0[0]}English
foo[de]{0[0]}Deutsch
[Spaces]
key with spaces {0[1]} value
another with spaces {0[0]} splat!
[Types]
int {0[1]} 42
float {0[0]} 0.44
boolean {0[0]} NO
123 {0[1]} strange but acceptable
[This One Has A ] In It]
  forks {0[0]} spoons
z[NoValue]
option-without-value
z�                    [Duplicate Options Here]
                    option {0[0]} with a value
                    option {0[1]} with another value
                z�                    [And Now For Something]
                    completely different {0[0]} True
                    [And Now For Something]
                    the larch {0[1]} 1
                z�                [Duplicate Options Here]
                option {0[0]} with a value
                option {0[1]} with another value
            z�                [And Now For Something]
                completely different {0[0]} True
                [And Now For Something]
                the larch {0[1]} 1
            )�formatr+r,r*r<r�r0r~r=�DuplicateOptionErrorr9�textwrap�dedent�DuplicateSectionError�r
�
config_stringr;s   r�
test_basiczBasicTestCase.test_basic'sb���<�F�4�?�?�D�1�1�2�=	�>����)�
�M��_�_�]�
+��������;�;��"�"�<�#D�#D�E����x���0��F�4�?�?�+�	 -�.�F��"�"�<�#E�#E�F����x���0�
�F�4�?�?�+� -�.�G�F�
�N�N�8�?�?�,���t���'�	)�
*�
�N�N�8�?�?�,�
��t���'�)�
*�)F�E��G�F�s�>F,�*>F8�,F5�8Gc
��ddiddiddd�ddd�ddiid	d
ddd
�ddd�ddddd�ddid�
}|jr|jdddii�|j�}|j|�|j	|�|j
r|j
tj�5|jddiddid��ddd�|j
tj�5|jdd d!d"�i�ddd�y|jddiddid#��|jdd d!d"�i�y#1swY�wxYw#1swYyxYw)$NrQrSrTrRrP)rQrOrUrl�	Bulgarian�Default�English�Deutsch)zfoo[bg]rQzfoo[en]zfoo[de]rWrY)rVrXr[r^Fra)rZr]r_�{rbrc)
rErJrKrDrGrHrFrIrLrMrNrd�key�key2�value2)rmrzDuplicate Options Herezwith a valuezwith another value)�option�OPTION)r��SECTION)
r*�updater7�	read_dictr�r0r~r=r�r�)r
�configr;s   r�test_basic_from_dictz"BasicTestCase.test_basic_from_dictjs����v���v����.�
���
���2�'� �$�$�	(�$+�'/��
�� �-�	���'�K(
��R����M�M��*�D���
�
�^�^�
��
���V��������;�;��"�"�<�#E�#E�F������)���)���G�
�"�"�<�#D�#D�E����,�"0�"6�/���F�E�
�L�L�!�7�+�"�H�-��
�
�L�L�(�,�2�+��
�#G�F��
F�E�s�'D6�'E�6D?�Ec�*�|j�}|jd�|jd�|jd�|j�}|j�|j}||gd��|jddd�||j
d�dg�||jdd�dd�|jtj�5|jddd�ddd�|j|jdd��|j|jdd��|jddd	�d
D]$}|j|jd|�d��&||j
d�dg�||j
d�dg�|jdd�||j
d�g�|jd
j!|j"d��}||j
d�dg�||jdd�d�|jdj!|j"d�ddi��}|j|jdd��y#1swY���xYw)N�A�a�B)r�r�r�rW�b�@could not locate option, expecting case-insensitive option names�A-B�	A-B value��a-bzA-bza-Br��9has_option() returned false for option which should existr��3[MySection]
Option{} first line   
	second line   
r�	MySectionr��Option�first line
second line�[section]
nekey{}nevalue
r��r)r��Key)r7�add_sectionrtrsru�set�optionsryr~r=rr�r�r�r�r<r�r+)r
r;r�r��opts     r�test_case_sensitivityz#BasicTestCase.test_case_sensitivity�s&��
�^�^�
��
���s��
���s��
���s���K�K�M��	����
�
�
��
�1�o��
���s�C��!�
�2�:�:�c�?�S�E�"�
�2�6�6�#�s��W�M�	O�
�
�
�|�:�:�
;��F�F�3��W�%�<�	
����
�
�c�3�/�0�������s�C�0�1�
���s�E�;�'�/�C��O�O��
�
�c�3�'�K�
M�0�	�2�:�:�c�?�U�G�$�
�2�:�:�c�?�S�E�"�
����c�"�
�2�:�:�c�?�B���_�_�E�L�L�����"�
$�%��	�2�:�:�k�"�X�J�/�
�2�6�6�+�x�(�*C�D��_�_�0�06��t���q�7I�0J�',�W�o��7��	
����
�
�i��7�8�5<�
;�s� J�Jc	��|j�}i|d<ddi|d<i|d<|D�cgc]}|��}}|j�|j}|j}||t	dd|j
dg��||dj
�dh�||dddd�|jt�5d|dd<ddd�|jd|dv�d|dd<d	D]}|j||dvd
��||dj
�dh�||dj
�dh�|dd=||dj
�i�|jdj|jd
��}||dj
�dh�||ddd�|jdj|jd
�ddi��}|jd|dv�ycc}w#1swY��@xYw)Nr�r�rWr�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�)
r7rsru�assertCountEqualr	r1rr~r�r�r<r�r+)r
r;r�r�r��elem_eqr�s       r�$test_case_sensitivity_mapping_accessz2BasicTestCase.test_case_sensitivity_mapping_access�s��
�^�^�
����3����.��3����3��$&�'�B��W�B��'�	����
�
�
���'�'��
�1�f�c�3�� 4� 4�c�:�;�<�
�2�c�7�<�<�>�C�5�!�
�2�c�7�3�<��M�	O�
�
�
�x�
(�"�B�s�G�C�L�)�	
����r�#�w��'�$��3����/�C��O�O��r�#�w��K�
M�0�	�2�c�7�<�<�>�E�7�#�
�2�c�7�<�<�>�C�5�!��s�G�C�L���3������#��_�_�E�L�L�����"�
$�%��	�2�k�?���!�H�:�.�
�2�k�?�8�$�&?�@��_�_�0�06��t���q�7I�0J�',�W�o��7��	
�����I��.�/��C
(�)�
(�s�	G;�9	H�H
c��|jddi�}|j|j|jd�dd�|jddi�}|j|j|jd�dd�y)NrQ�Bar�Foor�z<could not locate option, expecting case-insensitive defaults)r7ruryr1�r
r;s  r�test_default_case_sensitivityz+BasicTestCase.test_default_case_sensitivitysx��
�^�^�U�E�N�
+������F�F�4�'�'��/��N�	P��^�^�U�E�N�
+������F�F�4�'�'��/��J�	Lrc�l�|j�}|j|tjdj	|j
d��|j|tjdj	|j
d��|j|tjd�}|j|jd�|js�|j|tjd�}|j|jd�tjdd	�
�}|j
ddk(rtj}|f}ntj}|ddf}t|d
��5}|j|||�}ddd�|j|j|�yy#1swY�'xYw)Nz[Foo]
{}val-without-opt-name
rr�No Section!
)�<???>rr�z[Foo]
  wrong-indent
)r��cfgparser.3�
configdata��subdirr$z.  # INI with as many tricky parts as possible
�utf-8��encoding)
r7�parse_errorr=�ParsingErrorr�r+�MissingSectionHeaderErrorrur�r*r�findfile�open)r
r;�e�tricky�error�expected�fs       r�test_parse_errorszBasicTestCase.test_parse_errorssw��
�^�^�
������\�6�6�4�4:�F�4�?�?�1�;M�4N�	P�	
����\�6�6�4�4:�F�4�?�?�1�;M�4N�	P�
���R��!G�!G�,�
.��������!>�?��"�"�� � ��\�%>�%>� 9�;�A����Q�V�V�Z�0��%�%�m�L�I�F����q�!�S�(�$�1�1��"�9��$�>�>��"�A�M�O���f�w�/�1��$�$�R���2��0����Q�V�V�X�.�#�0�/�s�0F*�*F3c���t|d�r|}ntj|�}|j|�5}|j	|�ddd�|j
S#1swYj
SxYw)N�readline)�hasattr�io�StringIOr~�	read_filer�)r
r;�exc�src�sior�s      rr�zBasicTestCase.parse_error.sZ���3�
�#��C��+�+�c�"�C�
�
�
�s�
#�r��L�L���$��|�|��$��|�|��s�A�A0c���|j�}|j|j�gd�|j|j	d�d�|jtj�5|jd�ddd�|jtj�5|jddd�ddd�|j|tjdd�}|j|jd�|jd�|j|tjdd�}|j|jd�y#1swY��xYw#1swY��xYw)	Nz0new ConfigParser should have no defined sectionsr�z5new ConfigParser should have no acknowledged sectionsrQ�barrW)rQ)r�rQ)r7rurtr��has_sectionr~r=rr�r��	get_errorr�r�r��r
r;r�s   r�test_query_errorszBasicTestCase.test_query_errors7s��
�^�^�
����������K�	M��������.�$�	%��
�
�|�:�:�
;��J�J�u��<�
�
�
�|�:�:�
;��F�F�5�%��)�<��N�N�2�|�:�:�E�5�I���������*�
���u���N�N�2�|�9�9�5�%�H���������0�<�
;��
;�
;�s�2E�+E!�E�!E*c��	|j||�|jd|j�d|j���y#|$r}|cYd}~Sd}~wwxYw)Nzexpected exception type �.)ry�failrr)r
r;r�r�r�r�s      rr�zBasicTestCase.get_errorHsN��	<��F�F�7�F�#�
�I�I�����)9�)9�;�
<���	��H��	�s�A�A�A�A�Ac�\�|jdj|jd���}tdd�D]o}|j	|jdd|z��|j
|jdd|z��|jt|j
dd	|z��qy)
Nz�[BOOLTEST]
T1{equals}1
T2{equals}TRUE
T3{equals}True
T4{equals}oN
T5{equals}yes
F1{equals}0
F2{equals}FALSE
F3{equals}False
F4{equals}oFF
F5{equals}nO
E1{equals}2
E2{equals}foo
E3{equals}-1
E4{equals}0.1
E5{equals}FALSE AND MOREr��equalsr��BOOLTESTzt%dzf%dze%d)	r<r�r+�ranger�r}r�r~r�)r
r;�xs   r�test_booleanzBasicTestCase.test_booleanQs���
�_�_�
'�(.�v�T�_�_�Q�5G�v�'H�!��$�q�!��A��O�O�B�M�M�*�e�a�i�@�A����R�]�]�:�u�q�y�A�B����j� �m�m�Z����
D�rc	��|j�}|jd�|jtj�5}|jd�ddd�j
}|j
t|�d�|j
|jd�|j�r0|jtj�5}|jtjdj|jd���d��ddd�|j
}|j
t|�d	�|j
|jd
�|jtj�5}|j!ddd
d�i�ddd�|j
}|j
t|�d�|j
|jd�yy#1swY���xYw#1swY��xYw#1swY�gxYw)Nr�zSection 'Foo' already exists)r�NNz�                    [Foo]
                    will this be added{equals}True
                    [Bar]
                    what about this{equals}True
                    [Foo]
                    oops{equals}this won't
                rr��	<foo-bar>��sourcezFWhile reading from '<foo-bar>' [line  5]: section 'Foo' already exists)r�r�r�r��valzis really `opt`)r��OPTzIWhile reading from '<dict>': option 'opt' in section 'Bar' already exists)r�r�z<dict>N)r7r�r~r=r�r�ru�strr�r0r9r�r�r�r+r�r�)r
r;r�r�s    r�test_weird_errorszBasicTestCase.test_weird_errorsjs���
�^�^�
��
���u��
�
�
�|�A�A�
B�b��N�N�5�!�C��L�L������Q��!?�@�������!4�5��;�;��"�"�<�#E�#E�F�"����x���0��F�$�/�/�!�"4�F�5� 7�@K��L�G����A����S��V�&O�
P����Q�V�V�%<�=��"�"�<�#D�#D�E�����e�U�;L�%M�N�O�F����A����S��V�&M�
N����Q�V�V�%C�D�)�
C�
B��G�F��F�E�s%�G�
AG)�8G5�G&�)G2�5G>c��|j�}tjdj|jd���}|j
r:|j
tj�5|j|�ddd�n|j|�|j|jdd�d�y#1swY�,xYw)Nz_            [Foo]
            x{equals}1
            y{equals}2
            y{equals}3
        rr�r�r�rm)r7r�r�r�r+r0r~r=r�r9rury)r
r;�inis   r�%test_get_after_duplicate_option_errorz3BasicTestCase.test_get_after_duplicate_option_error�s���
�^�^�
���o�o��

�F�$�/�/�!�,�F�-�/���;�;��"�"�<�#D�#D�E����s�#�F�E�
�N�N�3���������s�+�S�1�	F�E�s�.B=�=Cc���dj|j|jd|j��}|jr|dz
}|j|�}dD]�}t
j�}|j||��|jd}|rdj|�}dj||j�	�}|jr|d
z
}|j|j�|���y)Na8[Long Line]
foo{0[0]} this line is much, much longer than my editor
   likes it.
[{default_section}]
foo{0[1]} another very
 long line
[Long Line - With Comments!]
test {0[1]} we        {comment} can
            also      {comment} place
            comments  {comment} in
            multiline {comment} values
r)�commentr1z![Valueless]
option-without-value
)TF)�space_around_delimitersz {} z�[{default_section}]
foo{equals}another very
	long line

[Long Line]
foo{equals}this line is much, much longer than my editor
	likes it.

[Long Line - With Comments!]
test{equals}we
	also
	comments
	multiline

)r�r1z"[Valueless]
option-without-value

)r�r+r,r1r*r<r�r��writeru�getvalue)r
r�r;r	�output�	delimiter�
expect_strings       r�
test_writezBasicTestCase.test_write�s��
�������1F�1F�q�1I�(,�(<�(<��>�	�����
%�
�M�
�_�_�]�
+��'4�#��[�[�]�F��H�H�V�5L�H�M�����*�I�&�"�M�M�)�4�	�
��V�9�,0�,@�,@��B�
�"�"�"����
�

���V�_�_�.�
�>�;(5rc�z�|jdj|jd���}Gd�dt�}|j	ddd�|j	dd|d��|j	dd	d�|j	dd	|d��|j	ddd�|j	dd	d�y)
N�[sect]
option1{eq}foo
r�r�c��eZdZy)�2BasicTestCase.test_set_string_types.<locals>.mystrN)rrrr!rr�mystrr�s��rr�sect�option1�splat�option2)r<r�r+rr�)r
r;rs   r�test_set_string_typesz#BasicTestCase.test_set_string_types�s���
�_�_�0�06��$�/�/�!�:L��0M�O��	�C�	�
���v�y�'�*�
���v�y�%��.�1�
���v�y�'�*�
���v�y�%��.�1�
���v�y�'�*�
���v�y�'�*rc�d�|jddk7r|jd�tjdd��}|j	�}|j|dgd�	�}|j
||g�|j
|jd
d�d�|j	�}|j|d�	�}|j
||g�|j
|jd
d�d�|j	�}|jtj|�d�	�}|j
||g�|j
|jd
d�d�|j	�}|jtj|�|gd�	�}|j
|||g�|j
|jd
d�d�|j	�}|jdgd�	�}|j
|g�|j	�}|jgd�	�}|j
|g�y)
Nrr$�incompatible format�cfgparser.1r�r��nonexistent-filer�r�rErQ�newbar)
r+�skipTestrr�r7�readruryr�FakePath)r
�file1r;�parsed_filess    r�test_read_returns_file_listz)BasicTestCase.test_read_returns_file_list�s����?�?�1���$��M�M�/�0�� � ��|�D��
�^�^�
���w�w��'9�:�W�w�M�������w�/�������	�5�1�8�<�
�^�^�
���w�w�u�w�w�7�������w�/�������	�5�1�8�<�
�^�^�
���w�w�y�1�1�%�8�7�w�K�������w�/�������	�5�1�8�<�
�^�^�
���w�w�	� 2� 2�5� 9�5�A�G�w�T�������u�~�6�������	�5�1�8�<�
�^�^�
���w�w� 2�3�g�w�F������r�*�
�^�^�
���w�w�r�G�w�4������r�*rc���|jddk7r|jd�tjdd��j	�}|j�}|j
|d��}|j||g�|j�}|j
d	d��}|j|g�|j�}|j
|d	gd��}|j||g�y)
Nrr$rrr�r�r�r�snonexistent-file)r+r rr��encoder7r!ru)r
�file1_bytestringr;r$s    r�0test_read_returns_file_list_with_bytestring_pathz>BasicTestCase.test_read_returns_file_list_with_bytestring_path�s����?�?�1���$��M�M�/�0�"�+�+�M�,�O�V�V�X��
�^�^�
���w�w�/�'�w�B������(8�'9�:�
�^�^�
���w�w�2�W�w�E������r�*�
�^�^�
���w�w� 0�2E�F�QX�w�Y������(8�'9�:rc�^�|jdj|jd���S)Nah[Foo]
bar{equals}something %(with1)s interpolation (1 step)
bar9{equals}something %(with9)s lots of interpolation (9 steps)
bar10{equals}something %(with10)s lots of interpolation (10 steps)
bar11{equals}something %(with11)s lots of interpolation (11 steps)
with11{equals}%(with10)s
with10{equals}%(with9)s
with9{equals}%(with8)s
with8{equals}%(With7)s
with7{equals}%(WITH6)s
with6{equals}%(with5)s
With5{equals}%(with4)s
WITH4{equals}%(with3)s
with3{equals}%(with2)s
with2{equals}%(with1)s
with1{equals}with

[Mutual Recursion]
foo{equals}%(bar)s
bar{equals}%(foo)s

[Interpolation Error]
name{equals}%(reference)s
rr�)r<r�r+rs r�get_interpolation_configz&BasicTestCase.get_interpolation_configs1�����
*�.+1�&�����8J�&�*K�1M�	Mrc�j�|jdj|j�ddi��}t|j	dddi���}|j�|j
||�|jtj�5|j	d�ddd�y#1swYyxYw)	Nz�
            [section]
            name {0[0]} %(value)s
            key{0[1]} |%(name)s|
            getdefault{0[1]} |%(default)s|
        �default�	<default>r�r�rWrgzno such section)
r<r�r+rvrrsrur~r=r)r
r�r;r�s    r�check_items_configz BasicTestCase.check_items_config*s���
�_�_��

�F�4�?�?�#�y�+�.F��H��
����)�7�G�*<��=�>��	��������H�%�
�
�
�|�:�:�
;��H�H�&�'�<�
;�
;�s�B)�)B2c��|jdj|j�ddi��}|j|j	�dd�|j|j	�dd�|j|j	�dd�|jt�5|j	�ddd�y#1swYyxYw)	N��
            [section1]
            name1 {0[0]} value1
            [section2]
            name2 {0[0]} value2
            [section3]
            name3 {0[0]} value3
        r-r.r�r�section1�section2�section3)r<r�r+ru�popitemr~r�r�s  r�test_popitemzBasicTestCase.test_popitem7s���
�_�_��
�F�4�?�?�#�y�+�.F��H��	
�������a��*�5��������a��*�5��������a��*�5�
�
�
�x�
(��J�J�L�)�
(�
(�s�-C�Cc�"�|jddi�}|j|j|jd�dd�ddd�|d<|j|j	�dg�|jt|dj
��hd	��|j�|jt|j	��t��|jt||jj
��dh�y)
NrQr�r�r��value1r�)rr�zing>rQrr)r7ruryr1rtr�r�clearr�s  r�
test_clearzBasicTestCase.test_clearFs���
�^�^�U�E�N�
+������F�F�4�'�'��/��N�	P�"*�h�?��6�
����������1�����R��Z�_�_�.�/�1N�O�
���
�����R�[�[�]�+�S�U�3�����R�� 4� 4�5�:�:�<�=��w�Grc�:�|jdj|j�ddi��}|jt	|dj��ddh�|jt	|dj��d	dh�|jt	|d
j��ddh�|j|ddd�|j|dd	d
�|j|d
dd�|j|j
�gd��ddi|d<|jt	|dj��ddh�|j|ddd�|jd	|d�|j|j
�gd��i|d
<|jt	|d
j��dh�|jd|d
�|j|j
�gd��||j||j<|jt	||jj��t	��i||j<|jt	||jj��t	��|jt	|dj��dh�|jt	|dj��dh�|jt	|d
j��t	��|j|j
�gd��|d|d<|jt	|dj��dh�y)Nr1�nameD�valueDr�r2�name1�namedr3�name2r4�name3r8r��value3)r2r3r4�name22�value22)
r<r�r+rur�rrt�assertNotInr1�assertNotEqualr�s  r�test_setitemzBasicTestCase.test_setitemRs��
�_�_��
�F�4�?�?�#�w��.A��C��	
����R�
�^�0�0�2�3�g�w�5G�H�����R�
�^�0�0�2�3�g�w�5G�H�����R�
�^�0�0�2�3�g�w�5G�H�����J���0�(�;�����J���0�(�;�����J���0�(�;��������(L�M�"�I�.��:������R�
�^�0�0�2�3�h��5H�I�����J���1�9�=�����"�Z�.�1��������(L�M���:������R�
�^�0�0�2�3�g�Y�?�����"�Z�.�1��������(L�M�#%�d�&:�&:�#;��4��� ����C��4�#7�#7� 8� =� =� ?�@�#�%�H�#%��4��� �����R�� 4� 4�5�:�:�<�=�s�u�E�����R�
�^�0�0�2�3�g�Y�?�����R�
�^�0�0�2�3�h�Z�@�����R�
�^�0�0�2�3�S�U�;��������(L�M��J���:������R�
�^�0�0�2�3�h�Z�@rc��|jr|jd�tjdj	|j
d��}|j
�}|jtj�5|j|�ddd�|j|jdd�d�|j|ddd�y#1swY�DxYw)Nz2if no_value is allowed, ParsingError is not raisedzC            [DEFAULT]
            test {0} test
            invalidr�DEFAULT�test)
r*r r�r�r�r+r7r~r=r�r9rury)r
�invalidr;s   r�test_invalid_multiline_valuez*BasicTestCase.test_invalid_multiline_valuexs�������M�M�N�O��/�/�#��v�d�o�o�a�0�1�
��
�^�^�
��
�
�
�|�8�8�
9��N�N�7�#�:�������	�6�2�F�;�����I��v�.��7�:�
9�s�>C�CN)rrrr�r�r�r�r�r�r�r�r�r�r�rrrrr%r)r+r/r6r;rHrMr!rrrBrBEs���[-�@A*�FJ�X'9�T&0�PL�/�8�1�"<�D�2E�>
2�4?�l+�+�B;�$M�6(�
�
H�$A�L
8rrBc�(�eZdZejZdZy)�StrictTestCaseTN)rrrr=�RawConfigParserr4r0r!rrrOrO�s���/�/�L�
�FrrOc�T�eZdZejZd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
y	)
�ConfigParserTestCasec��|j�}|j}||jdd�d�||jdd�d�||jdd�d�|j|tj
dd�}|jtjk(r|j|jd	�yt|jtj�r|j|jd	�yy)
Nr�r�z%something with interpolation (1 step)�bar9z.something with lots of interpolation (9 steps)�bar10z/something with lots of interpolation (10 steps)�bar11)rVr��5something %(with11)s lots of interpolation (11 steps))r+ruryr�r=�InterpolationDepthErrorr2r@r��
isinstance�LegacyInterpolation)r
r;r�r�s    r�test_interpolationz'ConfigParserTestCase.test_interpolation�s���
�
*�
*�
,��
�
�
��
�2�6�6�%���!H�I�
�2�6�6�%�� �;�	=�
�2�6�6�%��!�<�	>��N�N�2�|�C�C�U�G�T������!4�!4�4����Q�V�V�&I�
J�
��*�*�L�,L�,L�
M����Q�V�V�&I�
J�Nrc��|j�}|j|tjdd�}|j	|j
d�|j	|jd�|j	|jd�|jtjk(r|j	|jd�yt|jtj�r|j	|jd�yy)N�Interpolation Errorrx�	reference)rxr]z
%(reference)sr^)
r+r�r=�InterpolationMissingOptionErrorrur^r�r�r2r@r�rYrZr�s   r� test_interpolation_missing_valuez5ConfigParserTestCase.test_interpolation_missing_value�s���
�
*�
*�
,���N�N�2�|�K�K�0�&�
:��������k�2�������$9�:�������6�*�����!4�!4�4����Q�V�V�&B�
C�
��*�*�L�,L�,L�
M����Q�V�V�&B�
C�Nrc�*�|jgd��y)N)�r-r.)�
getdefaultz|<default>|)r�z|value|)rxrW�r/rs r�
test_itemszConfigParserTestCase.test_items�s�����!4�	5rc���|jdj|jd���}|j|j	dd�d�|j
tjk(r#|j|j	dd�d�yt|j
tj�r1|jt�5|j	dd�ddd�yy#1swYyxYw)	Nzc[section]
option1{eq}xxx
option2{eq}%(option1)s/xxx
ok{eq}%(option1)s/%%s
not_ok{eq}%(option2)s/%%srrr��okzxxx/%s�not_okz
xxx/xxx/%s)r<r�r+ruryr2r=r@rYrZr~�	TypeErrorr�s  r�test_safe_interpolationz,ConfigParserTestCase.test_safe_interpolation�s���
�_�_�9�:@��$(�O�O�A�$6�:@�:8�	9��	
������	�4�0�(�;�����!4�!4�4����R�V�V�I�x�8�,�G�
��*�*�L�,L�,L�
M��"�"�9�-����y�(�+�.�-�N�-�-�s�
C'�'C0c�$�|jdj|jd���}|j|j	dd�d�|jt|jddd�|jt|jddd�|jt|jddd	�|j|j	dd�d�|jdd
d�|j|j	dd
�d�y)
NrrrrrrQ�%foo�foo%�f%oor�foo%%barzfoo%bar)r<r�r+ruryr~r�r�r�s  r�#test_set_malformatted_interpolationz8ConfigParserTestCase.test_set_malformatted_interpolation�s���
�_�_�0�06��$�/�/�!�:L��0M�O��	
�������	�2�E�:����*�b�f�f�f�i��H����*�b�f�f�f�i��H����*�b�f�f�f�i��H��������	�2�E�:�	���v�y�*�-��������	�2�I�>rc��|jdj|jd���}|jt|j
ddd�|jt|j
ddd�|jt|j
ddt
��|jt|j
ddd�|jt|j
ddd�|jt|j
ddt
��|jt|j
dd	d
�|jt|jd	�y)Nrrrrrrg�?rr�zinvalid opt name!)r<r�r+r~rir��objectr�r�s  r�test_set_nonstring_typesz-ConfigParserTestCase.test_set_nonstring_types�s���
�_�_�0�06��$�/�/�!�:L��0M�O��	
���)�R�V�V�V�Y��B����)�R�V�V�V�Y��D����)�R�V�V�V�Y���I����)�R�V�V�V�Y��B����)�R�V�V�V�Y��D����)�R�V�V�V�Y���I����)�R�V�V�V�S�:M�N����)�R�^�^�S�9rc�z�|j�}|jt|j|j�yr)r7r~r�r�r1r�s  r�test_add_section_defaultz-ConfigParserTestCase.test_add_section_default�s*��
�^�^�
�����*�b�n�n�d�6J�6J�Krc��|jddi��}|j||jdd�|j||jj	d�d�|jddi��}|j||jdd	�|j||jj	d�d�y
)zbpo-23835 fix for ConfigParserr�333333@r�rmz2.4r��������@r�z5.2N)r7rur1r{r|r�s  r�test_defaults_keywordz*ConfigParserTestCase.test_defaults_keyword�s���
�^�^�a��X�^�
.������D�0�0�1�#�6��>����r�$�"6�"6�7�@�@��E�s�K�
�^�^�c�3�Z�^�
0������D�0�0�1�#�6��>����r�$�"6�"6�7�@�@��E�s�KrN)rrrr=�ConfigParserr4r[r`rerjrprsruryr!rrrRrR�s9���,�,�L�J� C�5�
,�?� :�L�LrrRc��eZdZejZdZejd�j�Z
d�Zd�Zd�Z
d�Zy)�#ConfigParserTestCaseNoInterpolationNz�
        [numbers]
        one = 1
        two = %(one)s * 2
        three = ${common:one} * 3

        [hexen]
        sixteen = ${numbers:two} * 8
    c���|j|ddd�|j|ddd�|j|ddd�|j|dd	d
�y)N�numbers�onerm�twoz%(one)s * 2�threez${common:one} * 3�hexen�sixteenz${numbers:two} * 8)rur�s  r�assertMatchesIniz4ConfigParserTestCaseNoInterpolation.assertMatchesIni�sh������I��u�-�s�3�����I��u�-�}�=�����I��w�/�1D�E�����G��Y�/�1E�Frc�\�|j|j�}|j|�yr)r<rr�r�s  r�test_no_interpolationz9ConfigParserTestCaseNoInterpolation.test_no_interpolations"��
�_�_�T�X�X�
&�����b�!rc�d�|j�}|j|jd��y�N�)r7�assertIsNoner9r�s  r�test_empty_casez3ConfigParserTestCaseNoInterpolation.test_empty_cases%��
�^�^�
�����"�.�.��,�-rc��Gd�dtj�}|�}|j|j�|j	|�y)Nc��eZdZdZy)�bConfigParserTestCaseNoInterpolation.test_none_as_default_interpolation.<locals>.CustomConfigParserN)rrr�_DEFAULT_INTERPOLATIONr!rr�CustomConfigParserr�s��%)�"rr�)r=rzr9rr�)r
r�r;s   r�"test_none_as_default_interpolationzFConfigParserTestCaseNoInterpolation.test_none_as_default_interpolation
s<��	*��!:�!:�	*� �
!��
���t�x�x� ����b�!r)rrrr=rzr4r2r�r��striprr�r�r�r�r!rrr|r|�sH���,�,�L��M�
�(�/�/��	�
����G�"�.�"rr|c���eZdZejZej�5ejde	�ej�Zddd�d�Zy#1swYd�ZyxYw)�'ConfigParserTestCaseLegacyInterpolation�ignoreNc�L�|jdj|jd���}|j|j	dd�d�|jddd�|j|j	dd�d�|jddd�|j|j	dd�d�|jddd	�|j|j	dd�d	�|jdd
d�|j|j	dd
�d�y)NrrrrrrQrlrmrnrro)r<r�r+ruryr�r�s  rrpzKConfigParserTestCaseLegacyInterpolation.test_set_malformatted_interpolations���
�_�_�0�06��$�/�/�!�:L��0M�O��	
�������	�2�E�:�
���v�y�&�)��������	�2�F�;�
���v�y�&�)��������	�2�F�;�
���v�y�&�)��������	�2�F�;�	���v�y�*�-��������	�2�J�?r)
rrrr=rzr4�warnings�catch_warnings�simplefilter�DeprecationWarningrZr2rpr!rrr�r�sU���,�,�L�	 ��	 �	 �	"�����h�(:�;�8��8�8�:�
�
#�@�	
#�@�s�%A�Ar�c��eZdZd�Zy)�,ConfigParserTestCaseInvalidInterpolationTypec��tjddfD]Q}|j|��5|jt�5tj
|��ddd�ddd��Sy#1swY�xYw#1swY�jxYw)Nr[za string)rW�r2)r=�ExtendedInterpolation�subTestr~rirz)r
rWs  r�*test_error_on_wrong_type_for_interpolationzWConfigParserTestCaseInvalidInterpolationType.test_error_on_wrong_type_for_interpolation,sa��"�8�8�2�
�K�E����E��*��&�&�y�1� �-�-�E�B�2�+�*�L�1�1��+�*�s"�A5�A)�A5�)A2�.A5�5A>	N)rrrr�r!rrr�r�+s��Crr�c��eZdZdZdZdZy)�)ConfigParserTestCaseNonStandardDelimiters�z:=�$��//�"N�rrrr+r,r-r!rrr�r�3����J�"��)�rr�c��eZdZdZy)�-ConfigParserTestCaseNonStandardDefaultSection�generalN)rrrr1r!rrr�r�9s���Orr�c�Z�eZdZejZdj
dd�Zd�Zd�Z	d�Z
y)�MultilineValuesTestCasezSI'm having spam spam spam spam spam spam spam beaked beans spam spam spam and spam!� �	
c��|j�}td�D]`}dj|�}|j|�td�D].}|j	|dj|�|j
��0�bt
tjdd��5}|j|�ddd�y#1swYyxYw)N�dz	section{}�
z
lovely_spam{}�wr�r�)
r7r�r�r�r��wonderful_spamr�r�TESTFNr
)r
r;r�s�jr�s      r�setUpzMultilineValuesTestCase.setUpCs���
�^�^�
���s��A��"�"�1�%�A��N�N�1���2�Y�����q�/�0�0��3�T�5H�5H�I���
�)�"�"�C�'�
:�a��H�H�Q�K�;�
:�
:�s�B6�6B?c�J�tjtj�yr)�os�unlinkrr�rs r�tearDownz MultilineValuesTestCase.tearDownMs��
�	�	�)�"�"�#rc��|j�}ttjd��5}|j	|�ddd�|j|j
dd�|jjdd��y#1swY�FxYw)Nr�r��section8�lovely_spam4r��
)	r7r�rr�r�ruryr��replace)r
�cf_from_filer�s   r� test_dominating_multiline_valuesz8MultilineValuesTestCase.test_dominating_multiline_valuesPsr���~�~�'��
�)�"�"�W�
5���"�"�1�%�6�����)�)�*�n�E��,�,�4�4�V�T�B�	D�6�
5�s�B�BN)rrrr=rzr4r�r�r�r�r�r!rrr�r�=s3���,�,�L�,�-4�W�S�&�-A���$�Drr�c�<�eZdZejZd�Zd�Zd�Zd�Z	y)�RawConfigParserTestCasec��|j�}|j}||jdd�d�||jdd�d�||jdd�d�||jdd�d	�y)
Nr�r�z*something %(with1)s interpolation (1 step)rTz3something %(with9)s lots of interpolation (9 steps)rUz5something %(with10)s lots of interpolation (10 steps)rVrW)r+rury�r
r;r�s   rr[z*RawConfigParserTestCase.test_interpolation]s~��
�
*�
*�
,��
�
�
��
�2�6�6�%���7�	9�
�2�6�6�%�� �@�	B�
�2�6�6�%��!�B�	D�
�2�6�6�%��!�B�	Drc�*�|jgd��y)N)rb)rcz
|%(default)s|)r�z
|%(name)s|)rxz	%(value)srdrs rrez"RawConfigParserTestCase.test_itemsis�����!8�	9rc���|j�}|jd�|jddd�|jddgd��|jddddi�|j|j	dd�d�|j|j	dd�gd��|j|j	dd�ddi�|jd	�|jd	d
d�|j|j	d	d
�d�|j
tjur>d�|_|jddd�|j|j	dd�d�yy)
Nz
non-stringrZrrv)rrr��r���
r3�pign��!	@r�zthis is sickTc��|Srr!)r�s r�<lambda>zBRawConfigParserTestCase.test_set_nonstring_types.<locals>.<lambda>s��qr)	r7r�r�rury�_dictr=r>�optionxformr�s  rrsz0RawConfigParserTestCase.test_set_nonstring_typesos)��
�^�^�
��
���|�$�
���|�U�A�&�
���|�V�%>�?�
���|�V�d�G�_�5��������e�4�a�8��������f�5�2�	4��������f�5��g��G�
���s��
���s�N�D�)��������^�4�d�;�
�8�8�|�1�1�1�)�B�N��F�F�<��A�&����R�V�V�L�!�4�a�8�2rc�:�|jt�5}|jddi��ddd�j}|j	t|�d�|jddi��}|j
||jdd�y#1swY�gxYw)	z-bpo-23835 legacy behavior for RawConfigParserrrwr�Nz%'int' object has no attribute 'lower'r�rxr�)r~r�r7r�rurr{r1)r
�ctx�errr;s    rryz-RawConfigParserTestCase.test_defaults_keyword�s���
�
�
�~�
.�#��N�N�Q��H�N�-�/��m�m������S��#J�K�
�^�^�c�3�Z�^�
0�����r�$�"6�"6�7��<�c�B�/�
.�s�B�BN)
rrrr=rPr4r[rersryr!rrr�r�Zs#���/�/�L�
D�9�9�(Crr�c��eZdZdZdZdZy)�,RawConfigParserTestCaseNonStandardDelimitersr�r�Nr�r!rrr�r��r�rr�c�6�eZdZejZdZdZdZd�Z	y)�RawConfigParserTestSambaConf)r'r&z----)r�Fc��tjdd��}|j�}|j|dgd��}|j	||g�gd�}|j	|j�|�|j	|j
dd	�d
�|j	|jdd�d�|j	|j
dd
�d�|j	|j
dd�d�y)Nzcfgparser.2r�r�rr�r�)�global�homes�printerszprint$z
pdf-generator�tmp�Agustinr��	workgroup�MDKGROUPzmax log size�2zhosts allowz127.r�zecho commandz
cat %s; rm %s)rr�r7r!rurtryrz)r
�smbconfr;r$rts     r�test_readingz)RawConfigParserTestSambaConf.test_reading�s����"�"�=��F��
�^�^�
���w�w��);�<�w�w�O�������y�1�A����������1��������+�6�
�C�������8�^�<�b�A��������-�8�&�A��������~�6��HrN)
rrrr=rPr4r,r-r.r�r!rrr�r��s%���/�/�L�)��%��!��Irr�c�z�eZdZejZej�ZdZdZ	dd�Z
d�Zd�Zd�Z
d�Zd	�Zd
�Zy)�)ConfigParserTestCaseExtendedInterpolation�commonTNc�\�|j|�}|r||_|j|�|Sr)r7r�r9)r
r:r)r�r;s     rr<z4ConfigParserTestCaseExtendedInterpolation.fromstring�s+��
�^�^�H�
%���(�B�N�
���v���	rc�~�|jtjd�j��}|j}||ddd�||ddd�||ddd�||ddd�||ddd	�||dd
d�||ddd
�||ddd�||ddd�||ddd�||ddd�||ddd�||ddd�||ddd�||ddd�||dd
d�||ddd�y)Na
            [common]
            favourite Beatle = Paul
            favourite color = green

            [tom]
            favourite band = ${favourite color} day
            favourite pope = John ${favourite Beatle} II
            sequel = ${favourite pope}I

            [ambv]
            favourite Beatle = George
            son of Edward VII = ${favourite Beatle} V
            son of George V = ${son of Edward VII}I

            [stanley]
            favourite Beatle = ${ambv:favourite Beatle}
            favourite pope = ${tom:favourite pope}
            favourite color = black
            favourite state of mind = paranoid
            favourite movie = soylent ${common:favourite color}
            favourite song = ${favourite color} sabbath - ${favourite state of mind}
        r�zfavourite Beatle�Paulzfavourite color�green�tomzfavourite bandz	green dayzfavourite popezJohn Paul II�sequelz
John Paul III�ambv�Georgezson of Edward VIIzGeorge Vzson of George Vz	George VI�stanley�blackzfavourite state of mind�paranoidzfavourite moviez
soylent greenzfavourite songzblack sabbath - paranoid)r<r�r�r�rur�s   r�test_extended_interpolationzEConfigParserTestCaseExtendedInterpolation.test_extended_interpolation�s���
�_�_�X�_�_�.�
�,�U�W�-��0�
�
��
�2�h�<�*�+�V�4�
�2�h�<�)�*�G�4�
�2�e�9�'�(�&�1�
�2�e�9�&�'��1�
�2�e�9�%�&��4�
�2�e�9�%�&��7�
�2�e�9�X���0�
�2�f�:�(�)�8�4�
�2�f�:�'�(�'�2�
�2�f�:�)�*�J�7�
�2�f�:�'�(�+�6�
�2�i�=�+�,�h�7�
�2�i�=�*�+�W�5�
�2�i�=�2�3�Z�@�
�2�i�=�*�+�_�=�
�2�i�=�)�*�N�;�
�2�i�=�)�*�%�	'rc�X�|jtjd�j��}|j	t
j�5|ddddd�|j	t
j�5|ddddd�y#1swY�:xYw#1swYyxYw)Nz�
            [one for you]
            ping = ${one for me:pong}

            [one for me]
            pong = ${one for you:ping}

            [selfish]
            me = ${me}
        zone for you�ping�selfish�me)r<r�r�r�r~r=rXr�s  r�test_endless_loopz;ConfigParserTestCaseExtendedInterpolation.test_endless_loop�s���
�_�_�X�_�_�	.�	
��U�W�	���
�
�|�C�C�
D��}��f�%�E�
�
�
�|�C�C�
D��y�M�$��E�
D�E�
D��
D�
D�s�	B�	B �B� B)c���|jd�}|j|ddd�|j|ddd�|j|ddd�tj}|j	|�5}|dd	ddd�|jj
jd
�|j|j
jdd�y#1swY�YxYw)
Nz�
            [dollars]
            $var = $$value
            $var2 = ${$var}
            ${sick} = cannot interpolate me

            [interpolated]
            $other = ${dollars:$var}
            $trying = ${dollars:${sick}}
        �dollarsz$varz$value�interpolatedz$otherz${sick}zcannot interpolate mez$tryingzdollars:${sickr�z${dollars:${sick}})r<rur=r_r~r�r^r�)r
r;�exception_classr�s    r�test_strange_optionsz>ConfigParserTestCaseExtendedInterpolation.test_strange_options�s���
�_�_�	�	
��	
����I��v�.��9�����N�+�H�5�x�@�����I��y�1�3J�K�&�F�F��
�
�
��
/�2��~��y�)�0�������/�/�1A�B�������*�*�1�-�/C�D�0�
/�s�;	C�C%c�8�tjd�j�}|j|�}|j}||ddd�||ddd�||ddd�||ddd	�||d
dd�||d
d
d�y)Naj
            [common]
            optionlower = value
            OptionUpper = Value

            [Common]
            optionlower = a better ${common:optionlower}
            OptionUpper = A Better ${common:OptionUpper}

            [random]
            foolower = ${common:optionlower} redefined
            FooUpper = ${Common:OptionUpper} Redefined
        r��optionlowerrW�OptionUpper�Value�Common�a better value�A Better Value�random�foolower�value redefined�FooUpper�A Better Value Redefined)r�r�r�r<ru�r
rr;r�s    r�test_case_sensitivity_basiczEConfigParserTestCaseExtendedInterpolation.test_case_sensitivity_basics����o�o��
��U�W�	��_�_�S�
!��
�
�
��
�2�h�<�
�&��0�
�2�h�<�
�&��0�
�2�h�<�
�&�(8�9�
�2�h�<�
�&�(8�9�
�2�h�<�
�#�%6�7�
�2�h�<�
�#�%?�@rc���tjd�j�}|jtj
�5|j
|�}ddd�|j
|d���}|j}||ddd�||ddd�||d	dd
�||d	dd�||dd
d�||ddd�y#1swY��xYw)Na8
            [common]
            option = value
            Option = Value

            [Common]
            option = a better ${common:option}
            Option = A Better ${common:Option}

            [random]
            foo = ${common:option} redefined
            Foo = ${Common:Option} Redefined
        c��|Srr!)r�s rr�z[ConfigParserTestCaseExtendedInterpolation.test_case_sensitivity_conflicts.<locals>.<lambda>1s��#r)r�r�r�rWr�rrrrrrQr	r�r)r�r�r�r~r=r�r<rurs    r�test_case_sensitivity_conflictszIConfigParserTestCaseExtendedInterpolation.test_case_sensitivity_conflictss����o�o��
��U�W�	��
�
�|�@�@�
A�����%�B�B��_�_�S�o�_�
>��
�
�
��
�2�h�<��!�7�+�
�2�h�<��!�7�+�
�2�h�<��!�#3�4�
�2�h�<��!�#3�4�
�2�h�<��� 1�2�
�2�h�<��� :�;�B�
A�s�C�C!c���|jd�}|jtj�5|ddddd�|jtj�5|ddddd�|jtj�5|ddddd�|jtj�5|ddddd�|jtj�5|ddddd�|jt
�5d|dd	<ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY�`xYw#1swYyxYw)
Na
            [interpolation fail]
            case1 = ${where's the brace
            case2 = ${does_not_exist}
            case3 = ${wrong_section:wrong_value}
            case4 = ${i:like:colon:characters}
            case5 = $100 for Fail No 5!
        zinterpolation fail�case1�case2�case3�case4�case5z
BLACK $ABBATH�case6)r<r~r=�InterpolationSyntaxErrorr_r�r�s  r�test_other_errorsz;ConfigParserTestCaseExtendedInterpolation.test_other_errors:s2��
�_�_��
���
�
�|�D�D�
E��#�$�W�-�F�
�
�
�|�K�K�
L��#�$�W�-�M�
�
�
�|�K�K�
L��#�$�W�-�M�
�
�
�|�D�D�
E��#�$�W�-�F�
�
�
�|�D�D�
E��#�$�W�-�F�
�
�
�z�
*�0?�B�#�$�W�-�+�
*�F�
E��
L�
L��
L�
L��
E�
E��
E�
E��
*�
*�sG�	D)�!	D5�	E�	E
�1	E�	E%�)D2�5D>�E
�
E�E"�%E.)NN)rrrr=rzr4r�r2r1r0r<r�r�r�r
rrr!rrr�r��sN���,�,�L�6�L�6�6�8�M��O�
�F��+'�Z �"E�*A�0<�6@rr�c��eZdZdZy)�ConfigParserTestCaseNoValueTN)rrrr*r!rrrrRs���Nrrc�@�eZdZejZdhZdhZdZd�Z	d�Z
y)�ConfigParserTestCaseTrickyFiler$r'Tc�"�tjdd��}|j�}|jt	|j|d���d�|j|j
�gd��|j|j|jdd	d
i��d�|jt�5|j|jdd
d	d
i��ddd�|jt	|jdd�jd��d�|jt	|jdd�jd��d�d}|j|j|d��|j|j|d�d�|jt	|jd��d�|jt j"�5|jd�ddd�|j|jdd�d�|j|jdd�|jdd��|j|jd d�d!�y#1swY���xYw#1swY��xYw)"Nr�r�r�r�r�r)�strange�
corruption�&yeah, sections can be indented as well�another one!�no values here�tricky interpolation�more interpolation�go�interpolatez-1rg���T)�rawrhr�otherr��r rWr�r!zare they subsectionszlets use some Unicodeu	片仮名r"r�r#r$�letszdo thisr%zgo shopping)rr�r7rurwr!rtrzr1r~r�ry�splitr�r}rr=r_)r
r�r;�longnames    r�test_cfgparser_dot_3z3ConfigParserTestCaseTrickyFile.test_cfgparser_dot_3\s���!�!�-��E��
�^�^�
������R�W�W�V�g�W�>�?��C��������)?�	@�	
������4�#7�#7��)6��(=�#�?�@B�	D�
�
�
�z�
*��I�I�d�*�*�D�d�)�4�0�
�
2�+�	
����R�V�V�I�w�7�=�=�d�C�D�a�H�����R�V�V�L�'�:�@�@��F�G��L�;��������x�1G�H�I��������*A�B�K�P�����R�X�X�n�5�6��:�
�
�
�|�K�K�
L��H�H�%�&�M������� 6��?��K������� 6��?���� 6��=�	?������� 4�f�=�}�M�!+�
*��M�
L�s�;"I8�'J�8J�Jc���tjdd��}|j�}|jt�5|j|d��ddd�y#1swYyxYw)Nr�r�r��asciir�)rr�r7r~�UnicodeDecodeErrorr!)r
r�r;s   r�test_unicode_failurez3ConfigParserTestCaseTrickyFile.test_unicode_failure|sK���!�!�-��E��
�^�^�
��
�
�
�1�
2��G�G�F�W�G�-�3�
2�
2���A�A#N)rrrr=rzr4r+r,r*r/r3r!rrrrVs-���,�,�L���J��u���N�N�@.rrc�&�eZdZdZdZd�Zd�Zd�Zy)�Issue7005TestCasezrTest output when None is set() as a value and allow_no_value == False.

    http://bugs.python.org/issue7005

    z[section]
option = None

c���|d��}|jd�|jddd�tj�}|j	|�|j�S�NF)r*r�r�)r�r�r�r�r
r)r
r4�cpr�s    r�preparezIssue7005TestCase.prepare�sJ��
��
/��
���y�!�
���y�(�D�)��k�k�m��
����
��|�|�~�rc���tjd��}|jd�|jt�5|jddd�ddd�y#1swYyxYwr8)r=rzr�r~rir�)r
r9s  r�test_none_as_value_stringifiedz0Issue7005TestCase.test_none_as_value_stringified�sH��
�
&�
&�e�
<��
���y�!�
�
�
�y�
)��F�F�9�h��-�*�
)�
)�r4c�z�|jtj�}|j||j�yr)r:r=rPru�expected_output)r
rs  r�"test_none_as_value_stringified_rawz4Issue7005TestCase.test_none_as_value_stringified_raw�s,�����l�:�:�;�������!5�!5�6rN)rrr�__doc__r>r:r<r?r!rrr6r6�s���5�O��.�7rr6c��eZdZeZd�Zy)�SortedTestCasec��|jd�}tj�}|j|�|j	|j�d�y)Nz [b]
o4=1
o3=2
o2=3
o1=4
[a]
k=v
z,[a]
k = v

[b]
o1 = 4
o2 = 3
o3 = 2
o4 = 1

)r<r�r�r
rur)r
r;rs   r�test_sortedzSortedTestCase.test_sorted�sJ��
�_�_�%�&�������
�����������*�&�	'rN)rrrrr/rDr!rrrBrB�s���I�'rrBc�2�eZdZejZdZdZd�Zy)�CompatibleTestCasez#;r&c��tjd�}|j|�}|j|j	dd�d�|j|j	dd�d�|j|j	dd�d�y)	Nz�        [Commented Bar]
        baz=qwe ; a comment
        foo: bar # not a comment!
        # but this is a comment
        ; another comment
        quirk: this;is not a comment
        ; a space must precede an inline comment
        rDrQzbar # not a comment!rOrP�quirkzthis;is not a comment)r�r�r<ruryr�s   r�test_comment_handlingz(CompatibleTestCase.test_comment_handling�s|�� ���)�
�
��_�_�]�
+����������7�/�	1���������7��?���������9�0�	2rN)	rrrr=rPr4r,r-rIr!rrrFrF�s���/�/�L���!��2rrFc�,�eZdZejZdd�Zy)�CopyTestCaseNc�L�|j|�}|j|�|j�}|j|�|j�D]M}|j|j
k(r�||j
j
�D]\}}|||k(s�||=��O|Sr)r7r9r�rrxr1r)r
r:r)r;�cf_copyr�r-rWs        rr<zCopyTestCase.fromstring�s���
�^�^�H�
%��
���v���.�.�"�����"���~�~�'�G��|�|�t�3�3�3��"$�T�%9�%9�":�"@�"@�"B�����7�#�u�,���(�#C�(��rr)rrrr=rzr4r<r!rrrKrK�s���,�,�L�
rrKc��eZdZd�Zd�Zy)�FakeFilec���tjdd��}t|d��5}|j�|_|jj�ddd�y#1swYyxYw)Nrr�r�r�r�)rr�r��	readlines�lines�reverse)r
�	file_pathr�s   r�__init__zFakeFile.__init__�sI���$�$�]�<�H�	�
�)�g�
.�!�����D�J��J�J��� �/�
.�
.�s�0A�A'c�b�t|j�r|jj�Syr�)rwrR�poprs rr�zFakeFile.readline�s!���t�z�z�?��:�:�>�>�#�#�rN)rrrrUr�r!rrrOrO�s��!�rrOc#�`K�|j�}|r|��|j�}|r�yy�w)z+As advised in Doc/library/configparser.rst.N)r�)r��lines  r�readline_generatorrZ�s)�����:�:�<�D�
��
��z�z�|���s�).�.c�$�eZdZd�Zd�Zd�Zd�Zy)�ReadFileTestCasec��tjdd��g}	|j|djd��|D]|}tj�}t|d��5}|j|�ddd�|jd|�|jd	|d�|j|dd	d
��~y#t$rY��wxYw#1swY�ZxYw)Nrr�r�r�utf8r�r�rErQr)rr�rrr'�UnicodeEncodeErrorr=rzr�r��assertInru)r
�
file_pathsrTr�r�s     r�	test_filezReadFileTestCase.test_file�s����&�&�}�\�J�K�
�	����j��m�2�2�6�:�;�$�I�!�.�.�0�F��i�'�2�a�� � ��#�3��M�M�)�V�,��M�M�%��	�!2�3����V�I�.�u�5�x�@�
$��"�	��	��3�2�s�#B?�#C�?	C�
C�C	c�0�tjd�j�jd�}t	j
�}|j
|�|jd|�|jd|d�|j|ddd�y)Nz%
        [Foo Bar]
        foo=newbarr�rErQr)	r�r�r�r-r=rzr�r`ru)r
rRr�s   r�
test_iterablezReadFileTestCase.test_iterables������!���u�w�u�u�T�{�	��*�*�,��������
�
�i��(��
�
�e�V�I�.�/�����	�*�5�1�8�<rc�t�tj�}|jt�5|j	t��ddd�|j	t
t���|jd|�|jd|d�|j|ddd�y#1swY�kxYw)z
Issue #11670.NrErQr)	r=rzr~rir�rOrZr`ru�r
r�s  r�test_readline_generatorz(ReadFileTestCase.test_readline_generators����*�*�,��
�
�
�y�
)����X�Z�(�*����+�H�J�7�8��
�
�i��(��
�
�e�V�I�.�/�����	�*�5�1�8�<�*�
)�s�B.�.B7c��tjd�j�jd�}t	j
�}|j
tj�5}|j|d��ddd�|jtj�d�tjd�j�jd�}t	j
�}|j
tj�5}|j|d��ddd�|jt|j�d�tjd	�j�jd�}t	j
�}|j
tj�5}|j|d��ddd�|jt|j�d
�tjd�j�jd�}t	j
�}|j
tj�5}|j|d��ddd�|jt|j�d�y#1swY��"xYw#1swY���xYw#1swY��xYw#1swY�UxYw)
z
Issue #18260.z"
        [badbad]
        [badbad]r�sbadbadr�NzGWhile reading from b'badbad' [line  2]: section 'badbad' already existsz5
        [badbad]
        bad = bad
        bad = badzWWhile reading from b'badbad' [line  3]: option 'bad' in section 'badbad' already existsz
        [badbad]
        = badz=Source contains parsing errors: b'badbad'
	[line  2]: '= bad'z"
        [badbad
        bad = badzDFile contains no section headers.
file: b'badbad', line: 1
'[badbad')r�r�r�r-r=rzr~r�r�rurr�r�r�r�)r
rRr��dses    r�test_source_as_bytesz%ReadFileTestCase.test_source_as_bytess;�����!���U�W�U�U�4�[�	��*�*�,��
�
�
�|�A�A�
B�c����U�9��5�C������
�
��
�	
�
���!���e�g�e�e�D�k�	��*�*�,��
�
�
�|�@�@�
A�S����U�9��5�B������
�
��
&�	
�
���!���%�'�%�%��+�	��*�*�,��
�
�
�|�8�8�
9�S����U�9��5�:������
�
��M�	
����!���e�g�e�e�D�k�	��*�*�,��
�
�
�|�E�E�
F�#����U�9��5�G������
�
��
�	
�GC�
B��B�
A��:�
9��G�
F�s0�&J�J'�2J4�K�J$�'J1�4J=�K	N)rrrrbrdrgrjr!rrr\r\�s��A�=�=�-
rr\c�:�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�CoverageOneHundredTestCasez"Covers edge cases in the codebase.c�~�tjdd�}|j|jd�|j|jd�|j|j
d�|j|jd�|j|jd�|jt|�d�y)Nr�r�)r�r�NNz3Option 'option' in section 'section' already exists)	r=r�rur�r�r��linenor�r�r
r�s  r�test_duplicate_option_errorz6CoverageOneHundredTestCase.test_duplicate_option_errorKs����1�1�)�X�F��������	�2�������x�0�������t�,�������t�,�������%F�G�����U��&6�	7rc���tjddd�}|j|jd�|j|jd�|j|j
d�y)Nr�r��rawval)r�r�rr)r=rXrur�r�r�ros  r�test_interpolation_depth_errorz9CoverageOneHundredTestCase.test_interpolation_depth_errorUsV���4�4�X�y�5=�?��������%D�E�������x�0�������	�2rc�F�|jt�5}tj�ddd�tjd��}|j	|j
d�tjd�}|j	|j
d�y#1swY�mxYw)Nr�r�)r~rir=r�rur�)r
r�r�s   r�test_parsing_errorz-CoverageOneHundredTestCase.test_parsing_error\st��
�
�
�y�
)�R��%�%�'�*��)�)��:��������x�0��)�)�(�3��������x�0�*�
)�s�B�B c���tj�}|jd�|jtj�5}|ddddd�|jt
j�d�|jtj�5}|ddddd�|jt
|j�d�y#1swY��xYw#1swY�;xYw)Nz�
            [section]
            invalid_percent = %
            invalid_reference = %(()
            invalid_variable = %(does_not_exist)s
        r��invalid_percentz.'%' must be followed by '%' or '(', found: '%'�invalid_referencez+bad interpolation variable reference '%(()')r=rzr9r~rrurr��r
r�r�s   r�test_interpolation_validationz8CoverageOneHundredTestCase.test_interpolation_validationds����*�*�,������	
��
�
�|�D�D�
E���9��/�0�F�����R�\�\�*�->�	?�
�
�
�|�D�D�
E���9��1�2�F�����R�\�\�*�-?�	@�
F�
E��F�
E�s�	C�	C�C�C&c�:�tjd��5}tjdt�t	j
�ddd�|j
t�d�|D]"}|j|jt��$y#1swY�LxYw)NT)�record�alwaysr)
r�r�r�r�r=rZ�assertGreaterEqualrwr��category)r
r��warnings   r�$test_legacyinterpolation_deprecationz?CoverageOneHundredTestCase.test_legacyinterpolation_deprecationusr��
�
$�
$�D�
1�Q��!�!�(�,>�?��,�,�.�2�	
����A���*��G��M�M�'�*�*�,>�?��	2�
1�s�/B�Bc��tj�}|jd�|jt	|d�d�y)Nz7
            [section]
            key = value
        r�z<Section: section>)r=rzr9ru�reprrfs  r�test_sectionproxy_reprz1CoverageOneHundredTestCase.test_sectionproxy_repr}s@���*�*�,������	
�	
����f�Y�/�0�2F�Grc�N�tj�}ddl}|j|jd<|jd�|j
d|j�|j|jdd�d�|j|jdd�d	�|j|djd�d�|j|djd�d	�|`|jt�5|jdd�ddd�|j
d|j�|jd=|jd|j�|jt�5|jdd�ddd�|jt�5|djd�ddd�|jt�5|djd�ddd�y#1swY��xYw#1swY�zxYw#1swY�TxYw#1swYyxYw)
Nr�decimalzS
            [s1]
            one = 1
            [s2]
            two = 2
        �s1rr�s2r�r�)r=rzr��Decimal�
convertersr9r`ru�
getdecimalr~r�rF)r
r�r�s   r�"test_inconsistent_converters_statez=CoverageOneHundredTestCase.test_inconsistent_converters_state�s����*�*�,���'.������)�$�����	
�	
�
�
�i��!2�!2�3�����*�*�4��7��;�����*�*�4��7��;�������0�0��7��;�������0�0��7��;���
�
�
�~�
.����d�E�*�/��
�
�i��!2�!2�3����i�(�����F�$5�$5�6�
�
�
�~�
.����d�E�*�/�
�
�
�~�
.��4�L�#�#�E�*�/�
�
�
�~�
.��4�L�#�#�E�*�/�
.�/�
.��
/�
.��
.�
.��
.�
.�s0�G7�7H�'H�H�7H�H�H�H$N)rrrr@rprsrurzr�r�r�r!rrrlrlHs+��,�7�3�1�@�"@�H�+rrlc�R�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zy
)�ExceptionPicklingTestCasezBTests for issue #13760: ConfigParser exceptions are not picklable.c�J�ddl}tjd�}t|jdz�D]o}|j||�}|j
|�}|j|j|j�|jt|�t|���qy)NrrWr)
�pickler=�Errorr��HIGHEST_PROTOCOL�dumps�loadsru�messager��r
r��e1�proto�pickled�e2s      r�
test_errorz$ExceptionPicklingTestCase.test_error�s}���
�
�
��
(���6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����T�"�X�t�B�x�0�	8rc���ddl}tjd�}t|jdz�D]�}|j||�}|j
|�}|j|j|j�|j|j|j�|j|j|j�|jt|�t|����y)Nrr�r)r�r=rr�r�r�r�rur�r�r�r�r�s      r�test_nosectionerrorz-ExceptionPicklingTestCase.test_nosectionerror�s����
�
(�
(��
3���6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�Z�Z����4����T�"�X�t�B�x�0�
8rc�0�ddl}tjdd�}t|jdz�D]�}|j||�}|j
|�}|j|j|j�|j|j|j�|j|j|j�|j|j|j�|jt|�t|����y)Nrr�r�r)
r�r=r�r�r�r�r�rur�r�r�r�r�r�s      r�test_nooptionerrorz,ExceptionPicklingTestCase.test_nooptionerror�s����
�
'�
'��)�
<���6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�Z�Z����4����R�Y�Y��	�	�2����T�"�X�t�B�x�0�8rc��ddl}tjddd�}t|jdz�D�]}|j||�}|j
|�}|j|j|j�|j|j|j�|j|j|j�|j|j|j�|j|j|j�|jt|�t|����y)Nrr�r�r�r)r�r=r�r�r�r�r�rur�r�r�r�rnr�r�s      r�test_duplicatesectionerrorz4ExceptionPicklingTestCase.test_duplicatesectionerror�s����
�
/�
/�	�8�S�
I���6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�Z�Z����4����R�Y�Y��	�	�2����R�Y�Y��	�	�2����T�"�X�t�B�x�0�8rc���ddl}tjdddd�}t|jdz�D�].}|j||�}|j
|�}|j|j|j�|j|j|j�|j|j|j�|j|j|j�|j|j|j�|j|j|j�|jt|�t|����1y)Nrr�r�r�r�r)r�r=r�r�r�r�r�rur�r�r�r�r�rnr�r�s      r�test_duplicateoptionerrorz3ExceptionPicklingTestCase.test_duplicateoptionerror�s����
�
.�
.�y�(�H�����6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�Z�Z����4����R�Y�Y��	�	�2����R�Y�Y��	�	�2����R�Y�Y��	�	�2����T�"�X�t�B�x�0�8rc�2�ddl}tjddd�}t|jdz�D]�}|j||�}|j
|�}|j|j|j�|j|j|j�|j|j|j�|j|j|j�|jt|�t|����y�Nrr�r��msgr)
r�r=�InterpolationErrorr�r�r�r�rur�r�r�r�r�r�s      r�test_interpolationerrorz1ExceptionPicklingTestCase.test_interpolationerror�s����
�
,�
,�X�y�%�
H���6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�Z�Z����4����R�Y�Y��	�	�2����T�"�X�t�B�x�0�8rc��ddl}tjdddd�}t|jdz�D�]}|j||�}|j
|�}|j|j|j�|j|j|j�|j|j|j�|j|j|j�|j|j|j�|jt|�t|����y)Nrr�r�rrr^r)r�r=r_r�r�r�r�rur�r�r�r�r^r�r�s      r�$test_interpolationmissingoptionerrorz>ExceptionPicklingTestCase.test_interpolationmissingoptionerror�s����
�
9�
9�(�I��k�#���6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�Z�Z����4����R�Y�Y��	�	�2����R�\�\�2�<�<�8����T�"�X�t�B�x�0�8rc�2�ddl}tjddd�}t|jdz�D]�}|j||�}|j
|�}|j|j|j�|j|j|j�|j|j|j�|j|j|j�|jt|�t|����yr�)
r�r=rr�r�r�r�rur�r�r�r�r�r�s      r�test_interpolationsyntaxerrorz7ExceptionPicklingTestCase.test_interpolationsyntaxerror�s����
�
2�
2�8�Y��
N���6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�Z�Z����4����R�Y�Y��	�	�2����T�"�X�t�B�x�0�8rc�2�ddl}tjddd�}t|jdz�D]�}|j||�}|j
|�}|j|j|j�|j|j|j�|j|j|j�|j|j|j�|jt|�t|����y)Nrr�r�rrr)
r�r=rXr�r�r�r�rur�r�r�r�r�r�s      r�test_interpolationdeptherrorz6ExceptionPicklingTestCase.test_interpolationdeptherrors����
�
1�
1�(�I�����6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�Z�Z����4����R�Y�Y��	�	�2����T�"�X�t�B�x�0�8rc�(�ddl}tjd�}|jdd�|jdd�|jdd�t	|j
dz�D]�}|j
||�}|j|�}|j|j|j�|j|j|j�|j|j|j�|j|j|j�|jt|�t|����tjd	�}|jdd�|jdd�|jdd�t	|j
dz�D]�}|j
||�}|j|�}|j|j|j�|j|j|j�|j|j|j�|j|j|j�|jt|�t|����y)
Nrr�r�line1r��line2r��line3�filename)r�r=r�rrr�r�r�r�rur�r�r��errorsr�r�s      r�test_parsingerrorz+ExceptionPicklingTestCase.test_parsingerrors����
�
&�
&�x�
0��
�	�	�!�W��
�	�	�!�W��
�	�	�!�W���6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�Y�Y��	�	�2����R�Y�Y��	�	�2����T�"�X�t�B�x�0�8��
&�
&�z�
2��
�	�	�!�W��
�	�	�!�W��
�	�	�!�W���6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�Y�Y��	�	�2����R�Y�Y��	�	�2����T�"�X�t�B�x�0�8rc��ddl}tjddd�}t|jdz�D�]}|j||�}|j
|�}|j|j|j�|j|j|j�|j|j|j�|j|j|j�|j|j|j�|jt|�t|����y)Nrr�r�rYr)r�r=r�r�r�r�r�rur�r�rYr�rnr�r�s      r�test_missingsectionheadererrorz8ExceptionPicklingTestCase.test_missingsectionheadererror/s����
�
3�
3�J��V�
L���6�2�2�Q�6�7�E��l�l�2�u�-�G����g�&�B����R�Z�Z����4����R�W�W�b�g�g�.����R�W�W�b�g�g�.����R�Y�Y��	�	�2����R�Y�Y��	�	�2����T�"�X�t�B�x�0�8rN)rrrr@r�r�r�r�r�r�r�r�r�r�r�r!rrr�r��s<��L�1�	1�
1�1�
1�
1�1�
1�1�1�61rr�c��eZdZdZd�Zy)�InlineCommentStrippingTestCasez}Tests for issue #14590: ConfigParser doesn't strip inline comment when
    delimiter occurs earlier without preceding space..c�
�tjd��}|jd�|d}|j|dd�|j|dd�|j|d	d
�|j|dd�|j|d
d�|j|dd�|j|dd�|d}|j|dd�|j|dd�|j|d	d�y)N)r&r'r�)r-a�
        [section]
        k1 = v1;still v1
        k2 = v2 ;a comment
        k3 = v3 ; also a comment
        k4 = v4;still v4 ;a comment
        k5 = v5;still v5 ; also a comment
        k6 = v6;still v6; and still v6 ;a comment
        k7 = v7;still v7; and still v7 ; also a comment

        [multiprefix]
        k1 = v1;still v1 #a comment ; yeah, pretty much
        k2 = v2 // this already is a comment ; continued
        k3 = v3;#//still v3# and still v3 ; a comment
        r��k1zv1;still v1�k2�v2�k3�v3�k4zv4;still v4�k5zv5;still v5�k6zv6;still v6; and still v6�k7zv7;still v7; and still v7�multiprefixzv3;#//still v3# and still v3)r=rzr9ru)r
�cfgr�s   r�test_strippingz-InlineCommentStrippingTestCase.test_strippingAs	���'�'�A�������	
�
�	�N������4��-�0�����4��$�'�����4��$�'�����4��-�0�����4��-�0�����4��"=�>�����4��"=�>��
�������4��-�0�����4��$�'�����4��"@�ArN)rrrr@r�r!rrr�r�=s
��:�Brr�c�.�eZdZdZd�Zd�Zd�Zd�Zd�Zy)�ExceptionContextTestCasezO Test that implementation details doesn't leak
    through raising exceptions. c�*�tj�}|jd�|jtj�}|5|jdd�ddd�|j
|jjd�y#1swY�0xYw)Nz�
        [Paths]
        home_dir: /Users
        my_dir: %(home_dir1)s/lumberjack
        my_pictures: %(my_dir)s/Pictures
        �Paths�my_dirT)	r=rzr9r~r_ryr�r��__suppress_context__rys   r�test_get_basic_interpolationz5ExceptionContextTestCase.test_get_basic_interpolationesq���*�*�,������	
��
�
�|�K�K�
L��
��J�J�w��)���
�
�b�l�l�7�7��>��R�s�B	�	Bc�R�tjtj���}|jd�|j	tj
�}|5|j
dd�ddd�|j|jjd�y#1swY�0xYw)Nr�z�
        [Paths]
        home_dir: /Users
        my_dir: ${home_dir1}/lumberjack
        my_pictures: ${my_dir}/Pictures
        r�r�T)
r=rzr�r9r~r_ryr�r�r�rys   r�test_get_extended_interpolationz8ExceptionContextTestCase.test_get_extended_interpolationrs���*�*�$�:�:�<�>������	
��
�
�|�K�K�
L��
��J�J�w��)���
�
�b�l�l�7�7��>��R�s�B�B&c�$�tj�}|jd�|jtj�5}|jd�ddd�|j
jjd�y#1swY�0xYw)Nz2
        [Paths]
        home_dir: /Users
        rKT)	r=rzr9r~rr�r�r�r�rys   r�test_missing_optionsz-ExceptionContextTestCase.test_missing_options�sm���*�*�,������	
��
�
�|�:�:�
;�r��N�N�6�"�<��
�
�b�l�l�7�7��>�<�
;�s�B�Bc��tj�}|jtj�5}|j	ddd�ddd�|jjjd�y#1swY�0xYw)N�Section1�an_int�15T)r=rzr~rr�r�r�r��r
r�r�s   r�test_missing_sectionz-ExceptionContextTestCase.test_missing_section�s\���*�*�,��
�
�
�|�:�:�
;�r��J�J�z�8�T�2�<��
�
�b�l�l�7�7��>�<�
;�s�A7�7Bc��tj�}|jtj�5}|j	dd�ddd�|jjjd�y#1swY�0xYw)Nr�r�T)r=rzr~rr�r�r�r�r�s   r�test_remove_optionz+ExceptionContextTestCase.test_remove_option�s\���*�*�,��
�
�
�|�:�:�
;�r�� � ��X�6�<��
�
�b�l�l�7�7��>�<�
;�s�A6�6A?N)	rrrr@r�r�r�r�r�r!rrr�r�as ��$�?�?�?�?�?rr�c�B��eZdZdZej
Zd�fd�	Zd�Z�xZ	S)�ConvertersTestCasez Introduced in 3.5, issue #18159.c�H��t�|�|��}d�|jd<|S)Nr�c��|j�D�cgc]"}|j�r|j���$c}Scc}wr)r-r�)�vr�s  rr�z.ConvertersTestCase.newconfig.<locals>.<lambda>�s4��A�G�G�I�1?�I�q�45�G�G�I�23����I�1?��1?s�'=rv)�superr7r�)r
r)r6�	__class__s   �rr7zConvertersTestCase.newconfig�s,����7�$�h�$�7��'?����F�#��rc�
�|j�}|jd|j�|jd|j�|j|jd�|j|jd�|j|jd�|j	|jd�|jt
|j�d�|jt�5d�|jd<ddd�|jt�5d�|jd<ddd�|jd	�|d
}|j|dd�|j|dd
�|j|dd�|j|dd�|j|dd�|j|jd
d�d�|j|jd
d�d
�|j|jd
d�d�|j|jd
d�d�|j|jd
d�d�|j|jd
d�d�|j|jd
d�d�|j|jd
d�d�|j|jd
d�gd��|j|jd
d�d�|j|jd�d�|j|jd�d�|j|jd�d�|j|jd�gd��|j|jd�d�|jt�5|j!d
d�ddd�|jt�5|j!d�ddd�ddl}|j$|jd<|jd|j�|j	|jd�|jt
|j�d�|j%d�}|j|j!d
d�|�|j|j!d�|�|jd=|j'd|j�|jt
|j�d�|jt�5|j!d
d�ddd�|jt�5|j!d�ddd�|jt(�5|jd=ddd�|jt(�5|jd=ddd�|jt(�5|jd=ddd�y#1swY��xYw#1swY���xYw#1swY��RxYw#1swY��0xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swYyxYw)Nr_rvrZr]r+c��|Srr!�r�s rr�z4ConvertersTestCase.test_converters.<locals>.<lambda>�s��1rr�c��|Srr!r�s rr�z4ConvertersTestCase.test_converters.<locals>.<lambda>�s��Qrz~
        [s]
        str = string
        int = 1
        float = 0.5
        list = a b c d e f g
        bool = yes
        r�rr:rmz0.5z
a b c d e f g�boolrkrg�?)r�r��c�dr�r��gTrr�r�)r7r`r�r��assertIsNotNonerurwr~r�r9ryrzr|�getlistr}r�r�r�r�rFr�)r
r�r�r��dec0_5s     r�test_convertersz"ConvertersTestCase.test_converters�s����n�n����
�
�i����0��
�
�f�c�n�n�-����#�.�.��/�0����#�.�.��1�2����#�.�.��3�4����S�^�^�F�3�4�����S�^�^�,�a�0�
�
�
�z�
*�!,�C�N�N�2��+�
�
�
�z�
*�#.�C�N�N�4� �+�����	
�
��H������5��8�,�����5��3�'�����7��U�+�����6��O�4�����6��E�*��������e�,�h�7��������e�,�c�2��������g�.��6��������f�-��?��������f�-�u�5��������e�,�h�7�������C��/��3�������c�7�3�S�9�������S�&�1�4C�	D��������V�4�d�;�������u��x�0�������%��!�,�������G�,�c�2�������6�*�-<�	=�������f�-�t�4�
�
�
�~�
.��N�N�3��(�/�
�
�
�~�
.�
�L�L��!�/��$+�O�O����y�!��
�
�i����0����S�^�^�I�6�7�����S�^�^�,�a�0�����'���������W�5�v�>�������g�.��7��N�N�9�%�����C�N�N�3�����S�^�^�,�a�0�
�
�
�~�
.��N�N�3��(�/�
�
�
�~�
.�
�L�L��!�/�
�
�
�x�
(����y�)�)�
�
�
�x�
(����r�"�)�
�
�
�x�
(����t�$�)�
(�u+�
*��
*�
*��B/�
.��
.�
.��/�
.��
.�
.��
(�
(��
(�
(��
(�
(�sl�;X�)X)�X6�Y�Y�Y�/Y(�Y4�Z�X&�)X3�6Y�Y
�Y�Y%�(Y1�4Y=�Z	r)
rrrr@r=rzr4r7r��
__classcell__�r�s@rr�r��s���*��,�,�L��D%rr�c�,�eZdZdZdZd�Zd�Zd�Zd�Zy)�!BlatantOverrideConvertersTestCasez}What if somebody overrode a getboolean()? We want to make sure that in
    this case the automatic converters do not kick in.z�
        [one]
        one = false
        two = false
        three = long story short

        [two]
        one = false
        two = false
        three = four
    c���tjdti��}|j|j�|j|�|j
|jd�y)Nrw)r�)r=rzrwr9r��	_test_lenr�r��r
r�s  r�test_converters_at_initz9BlatantOverrideConvertersTestCase.test_converters_at_init�sI���'�'�E�3�<�@��������$����s�����S�^�^�E�2�3rc��Gd�dtj�}|�}|j|j�|j	|�|j|jd�|j|jdd��|j|jdd��|j|jdd��|j|jdd��|j|jd<|j|jdd��|j|jdd��|j|jdd��|j|jdd��y)Nc�d��eZdZdZddej
d��fd�
Zddej
d�d�Z�xZS)�OBlatantOverrideConvertersTestCase.test_inheritance.<locals>.StrangeConfigParserz0a historic borough in south central PennsylvaniaFN�r)rhrfc�8��||k(ryt�|�|||||��S)NTr�)r�r})r
r�r�r)rhrfr�s      �rr}zZBlatantOverrideConvertersTestCase.test_inheritance.<locals>.StrangeConfigParser.getbooleans0����f�$���w�)�'�6�s��3;�*�=�=rc�8�|j||t|||��S)Nr�)�	_get_convrw)r
r�r�r)rhrfs      r�getlenzVBlatantOverrideConvertersTestCase.test_inheritance.<locals>.StrangeConfigParser.getlen	s%���~�~�g�v�s��$�/7�&�9�9r)	rrr�
gettysburgr=r@r}r�r�r�s@r�StrangeConfigParserr�s5���K�J�9>�T�!-�!4�!4�
=�6;�� ,� 3� 3�
9�
9rr�rwrr�r_)r=rzr9r�r�r�r�r�r}r��_convert_to_boolean)r
r�r�s   r�test_inheritancez2BlatantOverrideConvertersTestCase.test_inheritance�s)��	9�,�";�";�	9�"�#��������$����s�����#�.�.��/�0�������u�e�4�5�������u�e�4�5��������u�5�6��������u�5�6�$'�$;�$;����y�!��������u�5�6��������u�5�6��������u�5�6��������u�5�6rc�Z�|jt|j�d�|jd|j�|jd|j�|j	d|j�|j|jd�|j|jd�|j|jd�|j|j
dd�d�|j|j
dd	�d�|j|j
dd
�d�|j|j
d	d�d�|j|j
d	d	�d�|j|j
d	d
�d�|j|j
d	dd
��d
�|jtj�5|j
d	d�ddd�|j|dj
d�d�|j|dj
d	�d�|j|dj
d
�d�|j|d	j
d�d�|j|d	j
d	�d�|j|d	j
d
�d�|j|d	j
dd
�d
�|j|d	j
d�d�y#1swY��,xYw)Nr+r_rw�tysburgrZr]rr�r�r���fourrre)
rurwr�r`rFr�r�r~r=r�r�s  rr�z+BlatantOverrideConvertersTestCase._test_lens�������S�^�^�,�a�0��
�
�i����0��
�
�e�S�^�^�,�����C�N�N�3����#�.�.��/�0����#�.�.��1�2����#�.�.��3�4�������E�5�1�1�5�������E�5�1�1�5�������E�7�3�R�8�������E�5�1�1�5�������E�5�1�1�5�������E�7�3�Q�7�������E�6�A��>��B�
�
�
�|�9�9�
:��J�J�u�f�%�;�����U��*�*�5�1�1�5�����U��*�*�5�1�1�5�����U��*�*�7�3�R�8�����U��*�*�5�1�1�5�����U��*�*�5�1�1�5�����U��*�*�7�3�Q�7�����U��*�*�6�1�5�q�9�����U��*�*�6�2�D�9�;�
:�s�#L � L*c���tj��d��_�fd��_�j	|j
�|j
t�j�d�|jd�j�|jd�j�|j�jd�|j�jd�|j�jd�|j�jdd��|j�jd	d	��|j�jdd	��|j�jd	d���j�jd<|j�jdd��|j�jd	d	��|j�jdd	��|j�jd	d��|j
�jdd�d
�|j
�jdd	�d
�|j
�jdd�d�|j
�jd	d�d
�|j
�jd	d	�d
�|j
�jd	d�d
�|jt �5|j
�djd�d
�ddd�|jt �5|j
�d	jd�d
�ddd�y#1swY�LxYw#1swYyxYw)Nc��y)NTr!)r�r�s  rr�zLBlatantOverrideConvertersTestCase.test_instance_assignment.<locals>.<lambda>8s��rc�&��t�||�Sr)rw)r�r�r�s  �rr�zLBlatantOverrideConvertersTestCase.test_instance_assignment.<locals>.<lambda>9s���S��W��f�1E�-Frr�r_rwrZr]rr�r�r�rr+)r=rzr}r�r9r�rurwr�r`rFr�r�r�r�r~r�r�s @r�test_instance_assignmentz:BlatantOverrideConvertersTestCase.test_instance_assignment6s�����'�'�)��5���F��
�������$�����S�^�^�,�a�0��
�
�i����0��������/����#�.�.��/�0����#�.�.��1�2����#�.�.��3�4�������u�e�4�5�������u�e�4�5�������u�e�4�5�������u�e�4�5�$'�$;�$;����y�!��������u�5�6��������u�5�6��������u�5�6��������u�5�6�������E�5�1�1�5�������E�5�1�1�5�������E�7�3�R�8�������E�5�1�1�5�������E�5�1�1�5�������E�7�3�Q�7��
�
�~�
.����S��Z�.�.�u�5�q�9�/�
�
�
�~�
.����S��Z�.�.�u�5�q�9�/�
.�/�
.��
.�
.�s�<%M,�>%M8�,M5�8NN)	rrrr@r�r�rr�rr!rrr�r��s"��:�
�F�4�7�::�4:rr�c��eZdZd�Zy)�MiscTestCasec�>�tj|tdh��y)Nr�)�not_exported)r�check__all__r=rs r�test__all__zMiscTestCase.test__all__Ys�����T�<�w�i�HrN)rrrrr!rrr
r
Xs��Irr
�__main__).�collectionsr=r�r�r��unittestr�rKr�test.supportr�UserDictrr#rB�TestCaserOrRr|r�r�r�r�r�r�r�r�r�rrr6rBrFrKrOrZr\rlr�r�r�r�r�r
r�mainr!rr�<module>rsq����	�	�����"���%�%��.��B@
8�*�@
8�F�]�H�$5�$5��
_L�=�(�*;�*;�_L�D!"�-��9J�9J�!"�H@�.B�@�0C�8�3D�3D�C�*�0D�*� �4H� �D�m�X�->�->�D�:0C�m�X�->�->�0C�f*�3J�*�I�#9�8�;L�;L�I�(h@�
�x�?P�?P�h@�V�"6��*.�%;�X�=N�=N�*.�Z7��)�)�7�:'�,�'�.2�/��1B�1B�2�,�=�(�"3�"3��&
�
��P
�x�(�(�P
�fW+��!2�!2�W+�tX1�� 1� 1�X1�v!B�X�%6�%6�!B�H3?�x�0�0�3?�lO%���(9�(9�O%�dl:��(9�(9�l:�^I�8�$�$�I�
�z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists