HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //proc/self/root/opt/alt/python312/lib64/python3.12/test/__pycache__/test_csv.cpython-312.opt-1.pyc
�

~h�e(����ddlZddlZddlZddlmZddlmZddlZddlZddl	Z	ddl
mZddlm
Z
mZmZddlmZddlmZddlmZGd	�d
�ZGd�dej.�ZGd
�dej.�ZGd�dej.�ZGd�de�ZGd�dej8�ZGd�de�ZGd�de�ZGd�dej8�Z Gd�de�Z!Gd�dej.�Z"Gd�d ej.�Z#Gd!�d"ej.�Z$Gd#�d$ej.�Z%Gd%�d&�Z&ejNe(ed'�d(�Gd)�d*ej.��Z)Gd+�d,ej.�Z*Gd-�d.ej.�Z+Gd/�d0ej.�Z,e-d1k(rej\�yy)2�N)�StringIO)�
TemporaryFile)�support)�warnings_helper�
import_helper�check_disallow_instantiation)�permutations)�dedent)�OrderedDictc��eZdZd�Zy)�BadIterablec��t��N��OSError��selfs �4/opt/alt/python312/lib64/python3.12/test/test_csv.py�__iter__zBadIterable.__iter__s���
�N)�__name__�
__module__�__qualname__r�rrr
r
s��rr
c�`�eZdZdZd�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�Zd�Zej8ej:�ej>e ��d����Z!d�Z"d�Z#d�Z$d�Z%d�Z&d �Z'd!�Z(d"�Z)d#�Z*d$�Z+d%�Z,d&�Z-d'�Z.y())�Test_Csvz�
    Test the underlying C csv parser in ways that are not appropriate
    from the high level interface. Further tests of this nature are done
    in TestDialectRegistry.
    c�T�|jt|�|jt|d�|jt||d��|jt||d��|jt||d��|jtj||d�|jt||d��|jt||d��|jt||d��|jt||d��|jt||d��|jt||d�	�|jt||tjd
��|jt||tjd��|jt||tj
d
��y)Nr��bad_attr��	delimiter�XX�foo���	quotechar��lineterminator��quoting�)r*r&)�assertRaises�	TypeError�csv�Error�	QUOTE_ALL�
QUOTE_NONE)r�ctor�args   r�_test_arg_validzTest_Csv._test_arg_validss�����)�T�*����)�T�4�0����)�T�3�1��=����)�T�3�A��>����)�T�3�D��A����#�)�)�T�3��6����)�T�3�$��?����)�T�3�!��<����)�T�3�!��<����)�T�3�t��D����)�T�3�q��A����)�T�3���=����)�T�3�"%�-�-�2�	�	?����)�T�3�"%�-�-�4�	�	A����)�T�3�"%�.�.�B�	�	@rc��|jtjg�|jttjt��yr)r4r.�readerr,rr
rs r�test_reader_arg_validzTest_Csv.test_reader_arg_valid2s.�����S�Z�Z��,����'�3�:�:�{�}�=rc��|jtjt��Gd�d�}|j	t
tj|��y)Nc��eZdZed��Zy)�1Test_Csv.test_writer_arg_valid.<locals>.BadWriterc��t�rrrs r�writez7Test_Csv.test_writer_arg_valid.<locals>.BadWriter.write9s���
rN)rrr�propertyr<rrr�	BadWriterr:8s��
�
��
rr>)r4r.�writerrr,r)rr>s  r�test_writer_arg_validzTest_Csv.test_writer_arg_valid6s<�����S�Z�Z���4�	�	�	
���'�3�:�:�y�{�;rc��||�}|j|jjd�|j|jjd�|j|jj
d�|j|jjd�|j|jjd�|j|jjtj�|j|jjd�|j|jjd�|jtt|jd�|jtt |jdd�|jtt|jd�|jtt |jdd�y)	N�,T�
�"Fr!�:r*)�assertEqual�dialectr!�assertIs�doublequote�
escapecharr(r&r*r.�
QUOTE_MINIMAL�skipinitialspace�strictr,�AttributeError�delattr�setattr)rr2�args�objs    r�_test_default_attrszTest_Csv._test_default_attrs>sB���D�k��������.�.��4��
�
�c�k�k�-�-�t�4�������/�/��6�������3�3�V�<�������.�.��4�������,�,�c�.?�.?�@��
�
�c�k�k�2�2�E�:��
�
�c�k�k�(�(�%�0����.�'�3�;�;��L����.�'�3�;�;��S�Q����.�'�3�;�;�	�J����.�'�3�;�;�#�T�	+rc�D�|jtjg�yr)rSr.r6rs r�test_reader_attrszTest_Csv.test_reader_attrsP���� � ����R�0rc�T�|jtjt��yr)rSr.r?rrs r�test_writer_attrszTest_Csv.test_writer_attrsS���� � ����X�Z�8rc
���tdddddtjdd��}||i|��}|j|jj
d�|j
|jjd�|j|jjd�|j|jjd�|j|jjd�|j|jjtj�|j
|jjd�|j
|jjd�y)NrEF�\�
�*T)r!rIrJr(r&r*rLrM)�dictr.r1rFrGr!rHrIrJr(r&r*rLrM)rr2rQ�kwargsrRs     r�_test_kw_attrszTest_Csv._test_kw_attrsVs�����4�%)�S�!�n�n�t�!�#���D�#�F�#��������.�.��4��
�
�c�k�k�-�-�u�5�������/�/��6�������3�3�T�:�������.�.��4�������,�,�c�n�n�=��
�
�c�k�k�2�2�D�9��
�
�c�k�k�(�(�$�/rc�D�|jtjg�yr)r`r.r6rs r�test_reader_kw_attrszTest_Csv.test_reader_kw_attrsfs�����C�J�J��+rc�T�|jtjt��yr)r`r.r?rrs r�test_writer_kw_attrszTest_Csv.test_writer_kw_attrsis�����C�J�J��
�3rc��Gd�d�}||fz}||�}|j|jjd�|j|jjd�|j|jj
d�|j|jjd�|j|jjd�|j|jjtj�|j|jjd�|j|jjd�y)	Nc�@�eZdZdZdZdZdZdZejZ
dZdZy)�-Test_Csv._test_dialect_attrs.<locals>.dialect�-F�^�$�#TN)
rrrr!rIrJr(r&r.r0r*rLrMrrrrGrgns/���I��K��J��N��I��M�M�G�!���FrrGrhFrirjrkT)
rFrGr!rHrIrJr(r&r*r.r0rLrM)rr2rQrGrRs     r�_test_dialect_attrszTest_Csv._test_dialect_attrsls���	�	��w�j� ���D�k��������.�.��4��
�
�c�k�k�-�-�u�5�������/�/��5�������3�3�S�9�������.�.��4�������,�,�c�m�m�<��
�
�c�k�k�2�2�D�9��
�
�c�k�k�(�(�%�0rc�D�|jtjg�yr)rlr.r6rs r�test_reader_dialect_attrsz"Test_Csv.test_reader_dialect_attrs�rVrc�T�|jtjt��yr)rlr.r?rrs r�test_writer_dialect_attrsz"Test_Csv.test_writer_dialect_attrs�rYrc�(�tddd��5}tj|fi|��}|j|�|j	d�|j|j
�||jjz�ddd�y#1swYyxYw�N�w+�utf-8r+��encoding�newliner)	rr.r?�writerow�seekrF�readrGr()r�fields�expectr_�fileobjr?s      r�_write_testzTest_Csv._write_test�s|��
�4�'�2�
>�	E�'��Z�Z��2�6�2�F��O�O�F�#��L�L��O����W�\�\�^�#�f�n�n�&C�&C�C�
E�		E�	E�	E�s�A0B�Bc�F�tddd��5}tj|fi|��}|j|�5|j	|�ddd�|jd�|j
|j�d�ddd�y#1swY�CxYw#1swYyxYwrr)rr.r?r,rxryrFrz)r�excr{r_r}r?s      r�_write_error_testzTest_Csv._write_error_test�s���
�4�'�2�
>�	1�'��Z�Z��2�6�2�F��"�"�3�'�
(�����'�
(��L�L��O����W�\�\�^�R�0�	1�	1�
(�
(��	1�	1�s"�(B�B�	9B�B	�B�B c���|jtjd�|jdd�|jdgd�|jtjdgtj��|jt
t
��Gd�d�}|jt
|��Gd�d�}|jt
|�g�y)	Nrr+�""r)c��eZdZd�Zd�Zy)�.Test_Csv.test_write_arg_valid.<locals>.BadListc��y)N�
rrs r�__len__z6Test_Csv.test_write_arg_valid.<locals>.BadList.__len__�s��rc��|dkDrt�y)N�r)r�is  r�__getitem__z:Test_Csv.test_write_arg_valid.<locals>.BadList.__getitem__�s���q�5�!�M�rN)rrrr�r�rrr�BadListr��s��
�
"rr�c��eZdZd�Zy)�.Test_Csv.test_write_arg_valid.<locals>.BadItemc��t�rrrs r�__str__z6Test_Csv.test_write_arg_valid.<locals>.BadItem.__str__�����
rN)rrrr�rrr�BadItemr�����
rr�)r�r.r/r~r1rr
)rr�r�s   r�test_write_arg_validzTest_Csv.test_write_arg_valid�s������s�y�y�$�/�����R� ����$���&����s�y�y�4�&�C�N�N��K����w��
�6�	"�	"�	
���w��	�2�	�	�	
���w����4rc�@�ddz}|j||g|�d|���y)N�X�P�rB)r~)r�	bigstrings  r�test_write_bigfieldzTest_Csv.test_write_bigfield�s*���%�K�	����)�I�.�#�Y�10�	1rc�@�|jgd�d�|jtjgd�tj��|jgd�dtj
��|jgd�dtj��|jgd�dtj��|jddgdtj��|jgd	�d
tj��|jgd	�dtj��y)N��ar$zp,q�	a,1,"p,q"r)z"a",1,"p,q"z
"a","1","p,q"�a
br$z	"a
b","1")r�r+Nr$z	"a","",,1z"a","",,"1")
r~r�r.r/r1rK�QUOTE_NONNUMERICr0�
QUOTE_STRINGS�
QUOTE_NOTNULLrs r�test_write_quotingzTest_Csv.test_write_quoting�s��������4����s�y�y�-�),���	�	9������#&�#4�#4�	�	6�����
�#&�#7�#7�	�	9������#&�=�=�	�	2����&���\�#&�=�=�	�	2�����+�#&�#4�#4�	�	6�����-�#&�#4�#4�	�	6rc���|jgd�dd��|jtjgd�dd��|jgd�ddd��|jd	gd
dtj��|jd	gddtjd�
�|jd	gddtj
��|jgd�ddtj
��|jddgddtj
��|jddgddtj��|jddgddtj��|jddgddtj��|jddgddtj
��|jddgddtj��|jgd�ddtj��y)Nr�r�r[�rJ)r�r$zp,"q"F)rJrIz
a,1,"p,\"q\""rD�"""")rJr*z\")rJr*rIza,1,p\,qr�z\\,az"\\","a"z\ z\\ ,az\,z\\\,,az,\z",\\",a)zC\�6�7zX"z
C\\,6,7,"X""")r~r�r.r/rKr1r0rs r�test_write_escapezTest_Csv.test_write_escape�s��������$(�	�	*����s�y�y�/�*.�E�	�	C�����*;�$(��	�	?����#���$(�C�4E�4E�	�	G����#���$(�C�4E�4E�',�	�	.�	
���#���$(�C�N�N�	�	D������$(�C�N�N�	�	D����$���h�$(�#�.�.�	�	B����$���h�$(�#�2C�2C�	�	E����$���l�$(�#�-�-�	�	A����%���y�$(�#�2C�2C�	�	E����%���{�$(�#�.�.�	�	B����%���{�$(�#�2C�2C�	�	E����0�2C�$(�#�2C�2C�	�	Erc
�d�dD]�}|j|��5t�5}tj||��}|j	ddg�|j	ddg�|j|j
�d|�d|���ddd�ddd���y#1swY�xYw#1swY��xYw)	N)rC�
r\z!@#�r'r��br$r��a,bz1,2)�subTestrr.r?rxrF�getvalue)rr(�sior?s    r�test_write_lineterminatorz"Test_Csv.test_write_lineterminator�s���=�	=�N����^��<�
=��Z�=�3� �Z�Z��N�K�F��O�O�S�#�J�/��O�O�Q��F�+��$�$�S�\�\�^�'*�>�*:�'*�>�*:�&<�=�	=�
=�
=�	=�=�=��
=�
=�s#�B&�A$B�B&�B#�B&�&B/	c��|jtgd��d�|jtgd��d�|jtg�d�|jtdg�d�|jtjtdg�tj
��|jtddg�d�y)	Nr�r�)r�r$Nza,1,r+r�r)rB)r~�iterr�r.r/r1rs r�test_write_iterablezTest_Csv.test_write_iterable�s�������o�.��<�����n�-�v�6�����b��2�&�����t�f��t�,����s�y�y�$��v�,�����O�����t�T�l�+�S�1rc���Gd�d�}tj|��}|jt|jdgg�tddd��5}tj|�}|jt|jd�|j	ddgd	d
gg�|jd�|j|j�d�ddd�y#1swYyxYw)
Nc��eZdZd�Zy)�+Test_Csv.test_writerows.<locals>.BrokenFilec��t�rr)r�bufs  rr<z1Test_Csv.test_writerows.<locals>.BrokenFile.write�r�rN)rrrr<rrr�
BrokenFiler��r�rr�r�rsrtr+rur��c�drz
a,b
c,d
)
r.r?r,r�	writerowsrr-ryrFrz)rr�r?r}s    r�test_writerowszTest_Csv.test_writerows�s���	�	����J�L�)�����'�6�#3�#3�s�e�W�=�
�4�'�2�
>�	?�'��Z�Z��(�F����i��)9�)9�4�@����s�C�j�3��*�5�6��L�L��O����W�\�\�^�-=�>�	?�	?�	?�s
�A?C�C'c��tddd��5}tj|�}|jddgddgg�|j	d�|j|j
�d�ddd�tddd��5}tj|�}|jdgdgg�|j	d�|j|j
�d	�ddd�tddd��5}tj|�}|jdgdgg�|j	d�|j|j
�d
�ddd�y#1swY��xYw#1swY��xYw#1swYyxYw)Nrsrtr+rur�r�rza,
,d
z""
a
za
""
)rr.r?r�ryrFrz�rr}r?s   r�test_writerows_with_nonez!Test_Csv.test_writerows_with_nonesH��
�4�'�2�
>�	=�'��Z�Z��(�F����s�D�k�D�#�;�7�8��L�L��O����W�\�\�^�^�<�		=��4�'�2�
>�	<�'��Z�Z��(�F����t�f�s�e�_�-��L�L��O����W�\�\�^�]�;�		<��4�'�2�
>�	<�'��Z�Z��(�F����s�e�d�V�_�-��L�L��O����W�\�\�^�]�;�		<�	<�	=�	=��	<�	<��	<�	<�s&�AE�AE&�5AE2�E#�&E/�2E;c��tddd��5}tj|�}|jt|j
d�|jt|j
t��ddd�y#1swYyxYw)Nrsrtr+ru)rr.r?r,r-r�rr
r�s   r�test_writerows_errorszTest_Csv.test_writerows_errorssi��
�4�'�2�
>�	H�'��Z�Z��(�F����i��)9�)9�4�@����g�v�'7�'7���G�	H�	H�	H�s�A A8�8B)�categoryc�&�ddl}|jd�}tddd��5}tj|�}|j|gg�|j
d�|j|j�d�ddd�y#1swYyxYw)Nrr�rsrtr+ruza
)	�	_testcapi�unicode_legacy_stringrr.r?r�ryrFrz)rr�r�r}r?s     r�test_writerows_legacy_stringsz&Test_Csv.test_writerows_legacy_stringss{��	��+�+�C�0��
�4�'�2�
>�	6�'��Z�Z��(�F����q�c�U�#��L�L��O����W�\�\�^�W�5�		6�	6�	6�s�AB�Bc�j�tj|fi|��}t|�}|j||�yr)r.r6�listrF)r�inputr|r_r6�results      r�
_read_testzTest_Csv._read_test(s.�����E�,�V�,���f��������(rc�6�|jgg�|jdggg�|jtj|jdgdd��|jdgdggd��|jtj|jdgd�y)	Nr+z"ab"cr$�rM�abcr)rIsabc�r�r,r.r/rs r�test_read_oddinputszTest_Csv.test_read_oddinputs-s�������B�������r�d�#����#�)�)�T�_�_�"�)�T�A�	�	7�����	�U�G�9�A��>����#�)�)�T�_�_�!�(�D�	*rc���|jddgddgddgg�|jddgddgddgg�|jd	d
gddgddgg�|jddgddgddgg�d
}|jtj|�5t	tj
dg��ddd�|jtj|�5t	tj
dg��ddd�|jtj|�5t	tj
dg��ddd�y#1swY��xYw#1swY�^xYw#1swYyxYw)Nr�zc,dr�r�r�r�za,b
zc,d
za,b
zc,d
za,b
zc,d
zwith newline=''za,b
c,dza,b
c,dza,b
c,d)r��assertRaisesRegexr.r/�nextr6)r�errmsgs  r�
test_read_eolzTest_Csv.test_read_eol7s?��������#�c��S��I�(>�?�����'�*�c�#�Y��S�	�,B�C�����I�.�#�c��S��I�0F�G�����'�*�c�#�Y��S�	�,B�C�"��
�
#�
#�C�I�I�v�
6�	+�����Z�L�)�*�	+�
�
#�
#�C�I�I�v�
6�	+�����Z�L�)�*�	+�
�
#�
#�C�I�I�v�
6�	-�����\�N�+�,�	-�	-�		+�	+��	+�	+��	-�	-�s$� E� E� E�E
�E�E%c��|jdgddgg�|jdgdgg�|jdgdggd��|jtj|jdggd�	�|jtj|jdggd�	�|jtj|jdggdd�
�y)Nza,"r�r+z"arir�r�Tr�)rJrMr�rs r�
test_read_eofzTest_Csv.test_read_eofEs��������3��)��-������#���(��������x�C��8����#�)�)�T�_�_�u�g�r�$��O����#�)�)�T�_�_�t�f�b���N����#�)�)�T�_�_��%���D�	�	Brc���|jdgdgg�|jdggd�g�|jdggd�g�|jdggd�gd��|jd	ggd�g�y)
Nr��a,b,c)r�zbr�za,b,c)r�zbr�za,b\,cr[r�za,"b",c�r�rs r�
test_read_nulzTest_Csv.test_read_nulNsj�������$���)������&7�%8�9������&7�%8�9�����
�(9�':�t��L�����
�(9�':�;rc��|jdggd�g�|jdggd�gd��|jdggd�gd��y)Nza,b,c�r�r�r�za;b;c�;r zabcr�r�rs r�test_read_delimiterzTest_Csv.test_read_delimiterUsC������	�O�#4�5�����	�O�#4���D������o�%6�$��Grc���|jdggd�gd��|jdgddggd��|jdgddggd��|jd	gddggd��|jd
gddggd��|jdgdd
ggd��|jdggd�gd��|jdggd�gd��|jdggd�gd��|jdggd�g�y)Nza,\b,cr�r[r�za,b\,cr�zb,cza,"b\,c"za,"b,\c"z	a,"b,c\""zb,c"za,"b,c"\zb,c\za,^b,crir�r�)r�z\br�r�rs r�test_read_escapezTest_Csv.test_read_escapeZs��������o�%6�4��H������s�E�l�^���E�����
��e��~�$��G�����
��e��~�$��G������#�v���D��I�����
��g��'7�D��I�����
�_�$5�#��F������o�%6�4��H������&7�%8�T��J������&7�%8�9rc���|jdggd�g�|jdggd�gdd��|jdggd�gtjd��|jdggd�gtj�	�|jd
gddgg�|j	t
|jd
gggtj�	�|jdggd�gd��|jdggd�gd��y)Nz	1,",3,",5)�1z,3,�5)r�rD�3rDr�r[)r&rJ�r*rJz
,3,"5",7.3, 9)r+�r�g333333@�	r)z"a
b", 7r�z 7zabc,3z	1,@,3,@,5�@r%z	1,,3,,5r�)r�r.r1r�r,�
ValueErrorrs r�test_read_quotingzTest_Csv.test_read_quotingfs�������
�(9�':�;�����
�(A�'B�"&�4�	�	9�����
�(A�'B� #���4�	�	A�	
����)�,@�+A� #� 4� 4�	�	6�����
����'7�8����*�d�o�o�"�)�b�T�"%�"6�"6�	�	8�	
����
�(9�':�c��J������*;�)<���Mrc�4�|jdggd�gd��y)Nzno space, space,  spaces,	tab)zno space�space�spacesz	tabT)rLr�rs r�test_read_skipinitialspacez#Test_Csv.test_read_skipinitialspacevs"�����9�:�A�B�)-�	�	/rc��tj�}	d}d|z}|�d|��}|j|g||gg�tj|�|j|g||gg�|jtj�|�tj|dz
�|j	tj
|j|gg�|j	ttjd�|j	ttjdd�tj|�y#tj|�wxYw)Nr�r�rBr$)r.�field_size_limitr�rFr,r/r-)r�limit�sizer��biglines     r�test_read_bigfieldzTest_Csv.test_read_bigfield{s���$�$�&��
	(��D��d�
�I�!*�I�6�G��O�O�W�I��I�(>�'?�@�� � ��&��O�O�W�I��I�(>�'?�@����S�1�1�3�T�:�� � ��a��(����c�i�i����7�)�R�H����i��)=�)=�t�D����i��)=�)=�q�$�G�� � ��'��C� � ��'�s�DD/�/Ec���tjgd��}|j|jd�t	|�|j|jd�t	|�|j|jd�t	|�|j|jd�|jtt|�|j|jd�y)N)zline,1zline,2zline,3rr$r�r�)r.r6rF�line_numr�r,�
StopIteration)r�rs  r�test_read_linenumzTest_Csv.test_read_linenum�s����J�J�5�6��������Q�'��Q��������Q�'��Q��������Q�'��Q��������Q�'����-��q�1�������Q�'rc�@�tddd��5}tj|�}ddgddgg}|j|�|j	d	�ttj|��D]\}}|j|||��	ddd�y#1swYyxYw)
Nrsrtr+rur�r�r��x
dr)rr.r?r�ry�	enumerater6rF�rr}r?�rowsr��rows      r�test_roundtrip_quoteed_newlinesz(Test_Csv.test_roundtrip_quoteed_newlines�s���
�4�'�2�
>�	/�'��Z�Z��(�F��C�L�#�h��0�D����T�"��L�L��O�#�C�J�J�w�$7�8�
/���3�� � ��d�1�g�.�
/�	/�	/�	/�s�A;B�Bc��tddd��5}tj|tjd��}ddgd	d
gg}|j	|�|jd�t
tj|tjd���D]\}}|j|||��	ddd�y#1swYyxYw)Nrsrtr+rur[r�r�r�r�r�r)	rr.r?r1r�ryrr6rFrs      r�(test_roundtrip_escaped_unquoted_newlinesz1Test_Csv.test_roundtrip_escaped_unquoted_newlines�s���
�4�'�2�
>�	.�'��Z�Z�����$�O�F��C�L�#�h��0�D����T�"��L�L��O�#�C�J�J�w�s�~�~�Y]�$^�_�
.���3�� � ��T�!�W�-�
.�	.�	.�	.�s�BB6�6B?N)/rrr�__doc__r4r7r@rSrUrXr`rbrdrlrnrpr~r�r�r�r�r�r�r�r�r�r�r�cpython_only�requires_legacy_unicode_capir�ignore_warnings�DeprecationWarningr�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrs���
@�(>�<�+�$1�9�0� ,�4�1�,1�9�E�1�5�&1�6�"E�>	=�2�?�<�&H�
���)�W�)�)�+�$�_�$�$�.@�A�6�B�,��6�)�
*�-�B�<�H�

:�N� /�
(�&
(�/�.rrc�N�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
y)
�TestDialectRegistryc� �|jttjd�|jttj�|jtj
tjd�|jtj
tjd�|jttj�|jtj
tjd�|jtj
tjd�|jttjd�|jttjdd�|jttjddd�|jttjdd��|jttjdd��|jttjg�y)N�nonesuchr)�badargumentr))r,r-r.�
list_dialects�get_dialectr/�unregister_dialect�register_dialectrs r�test_registry_badargsz)TestDialectRegistry.test_registry_badargs�sZ�����)�S�%6�%6��=����)�S�_�_�5����#�)�)�S�_�_�d�;����#�)�)�S�_�_�j�A����)�S�%;�%;�<����#�)�)�S�%;�%;�T�B����#�)�)�S�%;�%;�Z�H����)�S�%9�%9�4�@����)�S�%9�%9�4��F����)�S�%9�%9�:�q�!�L����)�S�%9�%9�:�&*�	�	,����)�S�%9�%9�:�"&�	�	(����)�S�%9�%9�2�>rc��Gd�dtj�}d}tj�|gz}|j�tj||�|jtj|�|jtj|�jd�ttj��}|j||�y)Nc��eZdZdZy)�5TestDialectRegistry.test_registry.<locals>.myexceltsv�	N�rrrr!rrr�
myexceltsvr�����Irrr)r.�excelr�sortr�
addCleanuprrFrr!�sorted)rr�name�expected_dialects�got_dialectss     r�
test_registryz!TestDialectRegistry.test_registry�s���	����	����-�-�/�4�&�8����� ����T�:�.�����.�.��5��������.�8�8�$�?��c�/�/�1�2�����*�L�9rc	�:�d}tj|d��|jtj|�|j	tj
|�jd�|j	gd�gttjdg|���y)N�fedcbar�r )r��Y�ZzX;Y;Z)	r.rrrrFrr!r�r6)rr!s  r�test_register_kwargsz(TestDialectRegistry.test_register_kwargs�so�������T�S�1�����.�.��5��������.�8�8�#�>����/�*�D����W�I�t�1L�,M�Nrc
�f�Gd�dtj�}d}tj||dddddtj�	�|j	tj
|�tj|�}|j|jd�|j|jd�|j|jd�|j|jd�|j|jd�|j|jtj�y)
Nc�8�eZdZdZdZdZdZdZejZ
y)�DTestDialectRegistry.test_register_kwargs_override.<locals>.mydialectrrDTFrCN)rrrr!r&rIrLr(r.rKr*rrr�	mydialectr,�s'���I��I��K�$��#�N��'�'�Grr-�test_dialectr��'FTr�)r!r&rIrLr(r*)r.�Dialectrr0rrrrFr!r&rIrLr(r*)rr-r!rGs    r�test_register_kwargs_overridez1TestDialectRegistry.test_register_kwargs_override�s���	(����	(������T�9�'*�'*�).�.2�,0�%(�]�]�
	4�	
����.�.��5��/�/�$�'������*�*�C�0�����*�*�C�0�����,�,�e�4�����1�1�4�8�����/�/��6�������#�-�-�8rc�v�Gd�dtj�}|jtj|�y)Nc��eZdZdZy)�?TestDialectRegistry.test_incomplete_dialect.<locals>.myexceltsvrNrrrrrr4�rrr)r.r0r,r/)rrs  r�test_incomplete_dialectz+TestDialectRegistry.test_incomplete_dialect�s&��	����	����#�)�)�Z�0rc�j�Gd�dtj�}tdd��5}|jd�|j	d�tj
||���}|j
t|�d	d
g�|j
t|�ddg�ddd�y#1swYyxYw)
Nc�,�eZdZdZej
ZdZy)�5TestDialectRegistry.test_space_dialect.<locals>.space� r[N)rrrr!r.r1r*rJrrrr�r8�s���I��n�n�G��Jrr�rsrt�rvzabc def
c1ccccc1 benzene
r�rGr��def�c1ccccc1�benzene)r.rrr<ryr6rFr�)rr�r}r6s    r�test_space_dialectz&TestDialectRegistry.test_space_dialect�s���	�C�I�I�	�
�4�'�
2�	D�g��M�M�7�8��L�L��O��Z�Z����9�F����T�&�\�E�5�>�:����T�&�\�J�	�+B�C�	D�	D�	D�s�A9B)�)B2c��tddd��5}tj|g|��i|��}|jgd��|j	d�|j|j
�|�ddd�y#1swYyxYw)Nrsr+rt�rwrv�r$r�r�r)rr.r?rxryrFrz)r�expected�	writeargs�kwwriteargsr}r?s      r�compare_dialect_123z'TestDialectRegistry.compare_dialect_123�sj��
�4��g�
>�	7�'��Z�Z��C�)�C�{�C�F��O�O�G�$��L�L��O����W�\�\�^�X�6�	7�	7�	7�s�AA6�6A?c��Gd�dtj�}Gd�dtj�}Gd�dtj�}Gd�dtj�}Gd	�d
�}tjd|�	|jd�|jdd��|jd|��|jd
|�|jd|���|jdd��|jd|d��|jd|��tjd�y#tjd�wxYw)Nc��eZdZdZy)�5TestDialectRegistry.test_dialect_apply.<locals>.testArNrrrr�testArI	rrrJc��eZdZdZy)�5TestDialectRegistry.test_dialect_apply.<locals>.testBrENrrrr�testBrL����IrrMc��eZdZdZy)�5TestDialectRegistry.test_dialect_apply.<locals>.testC�|Nrrrr�testCrP
rNrrRc��eZdZdZy)�7TestDialectRegistry.test_dialect_apply.<locals>.testUniuΛNrrrr�testUnirTs�� �IrrUc��eZdZy)�;TestDialectRegistry.test_dialect_apply.<locals>.unspecifiedN�rrrrrr�unspecifiedrWs��rrYz1,2,3
r;z1	2	3
z1:2:3
z1|2|3
z1;2;3
r�)rGr!u	1Λ2Λ3
)r.rrrFr)rrJrMrRrUrYs      r�test_dialect_applyz&TestDialectRegistry.test_dialect_applys!��	�C�I�I�	�	�C�I�I�	�	�C�I�I�	�	!�c�i�i�	!�	�	�	���W�e�,�
	,��$�$�[�1��$�$�[�$�$�?��$�$�[�+�$�F��$�$�]�E�:��$�$�[�%�'�$�B��$�$�[�'�$�B��$�$�[�%�/2�
%�
4��$�$�%:�-4�
%�
6�
�"�"�7�+��C�"�"�7�+�s
�BD7�7Ec�<�|jttjgd��|jttjgd��|jttjgd��|jttjgd��y)Nrrr ���r)�d)r,r-r.r6rs r�test_bad_dialectz$TestDialectRegistry.test_bad_dialect&sn�����)�S�Z�Z����B����)�S�Z�Z����F����)�S�Z�Z��r��B����)�S�Z�Z��s��Crc��tj�D]<}tj|�}|jtt
j
|��>yr)r.rrr,r-�copy)rr!rGs   r�	test_copyzTestDialectRegistry.test_copy.s>���%�%�'�	=�D��o�o�d�+�G����i����G�<�	=rc���tj�D]^}tj|�}ttj
dz�D](}|j
ttj||��*�`y)Nr$)	r.rr�range�pickle�HIGHEST_PROTOCOLr,r-�dumps)rr!rG�protos    r�test_picklezTestDialectRegistry.test_pickle3sc���%�%�'�	K�D��o�o�d�+�G��v�6�6��:�;�
K���!�!�)�V�\�\�7�E�J�
K�	KrN)rrrrr$r)r1r5r?rFrZr^rarhrrrr
r
�s=��?�"
:�O�9�81�
D�7�,�<D�=�
Krr
c��eZdZd�Zd�Zy)�TestCsvBasec�
�tddd��5}|j|�|jd�tj||j
��}t
|�}|j||�ddd�y#1swYyxYw)Nrsrtr+rurr;)rr<ryr.r6rGr�rF)rr��expected_resultr}r6r{s      r�readerAssertEqualzTestCsvBase.readerAssertEqual:si��
�4�'�2�
>�	6�'��M�M�%� ��L�L��O��Z�Z��4�<�<�@�F��&�\�F����V�_�5�	6�	6�	6�s�A!A9�9Bc��tddd��5}tj||j��}|j	|�|jd�|j
|j�|�ddd�y#1swYyxYw)Nrsrtr+rur;r)rr.r?rGr�ryrFrz)rr�rlr}r?s     r�writerAssertEqualzTestCsvBase.writerAssertEqualBsh��
�4�'�2�
>�	>�'��Z�Z��4�<�<�@�F����U�#��L�L��O����W�\�\�^�_�=�		>�	>�	>�s�A$A<�<BN)rrrrmrorrrrjrj9s��6�>rrjc��eZdZdZd�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�Zd�Zd�Zd�Zy)�TestDialectExcelrc�,�|jddgg�y)Nr��rmrs r�test_singlezTestDialectExcel.test_singleL������u��w�i�0rc�.�|jdgd�g�y)Nz	1,2,3,4,5)r��2r��4r�rsrs r�test_simplezTestDialectExcel.test_simpleOs�����{�-B�,C�Drc�(�|jdg�y�Nr+rsrs r�test_blanklinezTestDialectExcel.test_blanklineR������r�2�&rc�.�|jdddgg�y)NrBr+rsrs r�test_empty_fieldsz"TestDialectExcel.test_empty_fieldsUs�����s�b�"�X�J�/rc�,�|jddgg�y)Nr�r+rsrs r�test_singlequotedz"TestDialectExcel.test_singlequotedXs�����t�r�d�V�,rc�.�|jdddgg�y)Nz"",r+rsrs r�test_singlequoted_left_emptyz-TestDialectExcel.test_singlequoted_left_empty[������u��2�w�i�0rc�.�|jdddgg�y)Nz,""r+rsrs r�test_singlequoted_right_emptyz.TestDialectExcel.test_singlequoted_right_empty^r�rc�,�|jddgg�y)Nr�rDrsrs r�test_single_quoted_quotez)TestDialectExcel.test_single_quoted_quoteas�����v���w�/rc�,�|jddgg�y)Nz""""""r�rsrs r�test_quoted_quotesz#TestDialectExcel.test_quoted_quotesds�����x�4�&��2rc�,�|jddgg�y)Nza""brsrs r�test_inline_quotez"TestDialectExcel.test_inline_quoteg������v���z�2rc�,�|jddgg�y)Nza"b"crsrs r�test_inline_quotesz#TestDialectExcel.test_inline_quotesjs�����w�'���4rc�,�|jddgg�y)Nz"a"b�abrsrs r�test_quotes_and_morez%TestDialectExcel.test_quotes_and_morems��	
���v���x�0rc�,�|jddgg�y)Nza"brsrs r�test_lone_quotez TestDialectExcel.test_lone_quoterrurc�,�|jddgg�y)Nz"a" "b"za "b"rsrs r�test_quote_and_quotez%TestDialectExcel.test_quote_and_quoteus��	
���y�G�9�+�6rc�,�|jddgg�y)Nz "a"rsrs r�test_space_and_quotez%TestDialectExcel.test_space_and_quotezr�rc�.�|jdgd�g�y)Nz#1,2,3,"I think, therefore I am",5,6)r�rwr�zI think, therefore I amr�r�rsrs r�test_quotedzTestDialectExcel.test_quoted}s�����D�!+� ,�	-rc�.�|jdgd�g�y)NzJ1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw")r�rwr�z"I see," said the blind manz"as he picked up his hammer and sawrsrs r�test_quoted_quotez"TestDialectExcel.test_quoted_quote�s �����k�!G� H�	Irc�8�d}|j|gd�gd�g�y)NzR1,2,3,"""I see,""
said the blind man","as he picked up his
hammer and saw"
9,8,7,6)r�rwr�z"I see,"
said the blind manz"as he picked up his
hammer and saw)�9�8r�r�rs)rr�s  r�test_quoted_nlzTestDialectExcel.test_quoted_nl�s+����
	
���u�!J�!2� 3�	4rc�.�|jdgd�g�y)Nz	12,12,1",)�12r�z1"r+rsrs r�test_dubious_quotez#TestDialectExcel.test_dubious_quote�s�����{�-C�,D�Erc�(�|jgd�yr{�rors r�	test_nullzTestDialectExcel.test_null�r}rc�,�|jdggd�y)Nr�zabc
r�rs r�test_single_writerz#TestDialectExcel.test_single_writer�s�������y�)�4rc�.�|jgd�gd�y)N)r$r�r�r��z
1,2,abc,3,4
r�rs r�test_simple_writerz#TestDialectExcel.test_simple_writer�s����� 3�4�6G�Hrc�.�|jgd�gd�y)N)r$r�za"bc"r�r�z1,2,"a""bc""",3,4
r�rs r�test_quoteszTestDialectExcel.test_quotes������� 5�6�8O�Prc�,�|jdggd�y�N�abc,defz"abc,def"
r�rs r�test_quote_fieldsepz$TestDialectExcel.test_quote_fieldsep���������}�o�>rc�.�|jgd�gd�y)N)r$r�za
bcr�r�z1,2,"a
bc",3,4
r�rs r�
test_newlineszTestDialectExcel.test_newlines�s����� 5�6�8M�NrN)rrrrGrtryr|rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrqrqIs����G�1�E�'�0�-�1�1�0�3�3�5�1�
1�7�
3�-�I�
4�F�'�5�I�Q�?�Orrqc�(�eZdZejZdZy)�EscapedExcelr[N)rrrr.r1r*rJrrrr�r��s���n�n�G��Jrr�c�&�eZdZe�Zd�Zd�Zy)�TestEscapedExcelc�,�|jdggd�y)Nr��
abc\,def
r�rs r�test_escape_fieldsepz%TestEscapedExcel.test_escape_fieldsep�r�rc�,�|jddgg�y)Nr�r�rsrs r�test_read_escape_fieldsepz*TestEscapedExcel.test_read_escape_fieldsep�s������)��
�>rN)rrrr�rGr�r�rrrr�r��s���n�G�?�?rr�c��eZdZdZd�Zd�Zy)�TestDialectUnix�unixc�.�|jgd�gd�y)N)r$�abc defr��"1","abc def","abc"
r�rs rr�z"TestDialectUnix.test_simple_writer�r�rc�.�|jdgd�g�y)Nr�)r�r�r�rsrs r�test_simple_readerz"TestDialectUnix.test_simple_reader�s�����6�9P�8Q�RrN)rrrrGr�r�rrrr�r��s���G�Q�Srr�c�(�eZdZejZdZy)�QuotedEscapedExcelr[N)rrrr.r�r*rJrrrr�r��s���"�"�G��Jrr�c�&�eZdZe�Zd�Zd�Zy)�TestQuotedEscapedExcelc�,�|jdggd�yr�r�rs r�test_write_escape_fieldsepz1TestQuotedEscapedExcel.test_write_escape_fieldsep�r�rc�,�|jddgg�y)Nz"abc\,def"
r�rsrs rr�z0TestQuotedEscapedExcel.test_read_escape_fieldsep�s�����0�I�;�-�@rN)rrrr�rGr�r�rrrr�r��s�� �"�G�?�Arr�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�Zd�Zy)�TestDictFieldsc��tddd��5}tj|gd���}|j�}|j	|d�ddd�y#1swYyxYw)Nrsrtr+ru��f1�f2�f3��
fieldnamesr�)rr.�
DictWriter�writeheaderrF)rr}r?�writeheader_return_values    r�test_writeheader_return_valuez,TestDictFields.test_writeheader_return_value�sV��
�4�'�2�
>�	;�'��^�^�G�:L�M�F�'-�'9�'9�';�$����5�r�:�	;�	;�	;�s�<A�Ac��tddd��5}tj|gd���}|j�|j	d�|j|j
�d�|jd	d
d��|j	d�|j
�|j|j�d�ddd�y#1swYyxYw)
Nrsrtr+rur�r�r�
f1,f2,f3
r�r�)r�r�z	10,,abc
)	rr.r�r�ryrF�readlinerxrzr�s   r�test_write_simple_dictz%TestDictFields.test_write_simple_dict�s���
�4�'�2�
>�	<�'��^�^�G�:L�M�F���� ��L�L��O����W�-�-�/��@��O�O�2�U�3�4��L�L��O��������W�\�\�^�]�;�	<�	<�	<�s�B0C�Cc� �t�}tj|gd���}|j�|j	|j�d�|j
dddd�ddd	d�g�|j	|j�d
�y)Nr�r�r�r$r��fr���xyzzf1,f2,f3
1,abc,f
2,5,xyz
)rr.r�r�rFr�r�r�s   r�test_write_multiple_dict_rowsz,TestDictFields.test_write_multiple_dict_rows�s����*������4F�G����������)�)�+�^�<�����%�s�;�!"�!�5�9�;�	<�����)�)�+�=�	?rc�b�t�}|jttj|�yr)rr,r-r.r��rr}s  r�test_write_no_fieldsz#TestDictFields.test_write_no_fields�s���*�����)�S�^�^�W�=rc��tddd��5}tj|gd���}|jt�5}|jddd	d
��ddd�t
j�}|jd|�|jd|�|jd
|�|jd|�ddd�y#1swY�oxYw#1swYyxYw)Nrsrtr+rur�r�r��spamr�)�f4r�r$r�z'f4'z'f2'r�)
rr.r�r,r�rx�str�	exception�assertIn�assertNotIn)rr}r?�cxr�s     r�#test_write_fields_not_in_fieldnamesz2TestDictFields.test_write_fields_not_in_fieldnames�s���
�4�'�2�
>�		*�'��^�^�G�:L�M�F��"�"�:�.�
D�"����r��E� B�C�
D��B�L�L�)�I��M�M�,�	�2��M�M�&�)�,����V�Y�/��M�M�#�y�)�		*�		*�
D�
D��		*�		*�s#�/C�C�A%C�C	�C�Cc�l�t�}|jttj|ddgd��y)Nr�r��raised��extrasaction)rr,r�r.r�r�s  r�&test_typo_in_extrasaction_raises_errorz5TestDictFields.test_typo_in_extrasaction_raises_error�s/���*�����*�c�n�n�g��d�|�'/�	�	1rc�N�t�}tj|ddgd��}ddddd	�}|jttjj
||�tj|ddgd
��}|jttjj
||�y)Nr�r��raiser�rr$r�r���f0r�r�r��RAISE)rr.r�r,r�rx�rr}r?�dictrows    r�)test_write_field_not_in_field_names_raisez8TestDictFields.test_write_field_not_in_field_names_raises����*������$���G�L���!�1�A�6�����*�c�n�n�&=�&=�v�w�O�����$���G�L�����*�c�n�n�&=�&=�v�w�Orc�N�t�}tj|ddgd��}ddddd	�}tjj||�|j	|j�d
�tj|ddgd��}tjj||�y)Nr�r��ignorer�rr$r�r�r�z1,2
�IGNORE)rr.r�rxrFr�r�s    r�*test_write_field_not_in_field_names_ignorez9TestDictFields.test_write_field_not_in_field_names_ignore
s����*������$���H�M���!�1�A�6���������0�����)�)�+�Y�7�����$���H�M���������0rc��gd�}t�}tj|t|��}|j	|j
|�y�Nr�)rr.�
DictReaderr�rFr��rr�r�r6s    r�(test_dict_reader_fieldnames_accepts_iterz7TestDictFields.test_dict_reader_fieldnames_accepts_iter�9��$�
��J������4�
�#3�4������*�*�J�7rc��gd�}t�}tj||�}|j|j|�yr)rr.rrFr�rs    r�(test_dict_reader_fieldnames_accepts_listz7TestDictFields.test_dict_reader_fieldnames_accepts_list�4��$�
��J������:�.������*�*�J�7rc��gd�}t�}tj|t|��}|j	|j
|�yr)rr.r�r�rFr��rr�r�r?s    r�(test_dict_writer_fieldnames_rejects_iterz7TestDictFields.test_dict_writer_fieldnames_rejects_iter!rrc��gd�}t�}tj||�}|j|j|�yr)rr.r�rFr�rs    r�(test_dict_writer_fieldnames_accepts_listz7TestDictFields.test_dict_writer_fieldnames_accepts_list'r	rc�F�t�}tj|d��}y)Nr�)rr.r)rr�r6s   r�'test_dict_reader_fieldnames_is_optionalz6TestDictFields.test_dict_reader_fieldnames_is_optional-s���J������d�3�rc��tdd��5}|jd�|jd�tj|gd���}|jt
|�dd	d
d��ddd�y#1swYyxYw)Nrsrtr:z	1,2,abc
rr�r�r�rwr��rr<ryr.rrFr��rr}r6s   r�test_read_dict_fieldsz$TestDictFields.test_read_dict_fields1sm��
�4�'�
2�	P�g��M�M�-�(��L�L��O��^�^�G�/A�C�F����T�&�\�#�S��+N�O�	P�	P�	P�s�AA2�2A;c�0�tdd��5}|jd�|jd�tj|�}|jt
|�dddd	��|j|jgd	��ddd�y#1swYyxYw)
Nrsrtr:�f1,f2,f3
1,2,abc
rr�rwr�r�)rr<ryr.rrFr�r�rs   r�test_read_dict_no_fieldnamesz+TestDictFields.test_read_dict_no_fieldnames9s��
�4�'�
2�	D�g��M�M�3�4��L�L��O��^�^�G�,�F����T�&�\�#�S��+N�O����V�.�.�0B�C�	D�	D�	D�s�A5B�Bc	�l�tdd��5}|jd�|jd�tj|ttj|����}|j|jgd��|jt|�dd	d
d��ddd�y#1swYyxYw)Nrsrtr:rrr�r�r�rwr�)	rr<ryr.rr�r6rFr�rs   r�#test_read_dict_fieldnames_from_filez2TestDictFields.test_read_dict_fieldnames_from_fileCs���
�4�'�
2�	P�g��M�M�3�4��L�L��O��^�^�G�/3�C�J�J�w�4G�/H�J�F����V�.�.�0B�C����T�&�\�#�S��+N�O�
	P�	P�	P�s�BB*�*B3c	�n�ddl}tdd��5}|jd�|jd�t	j
|�}t
|�}|j|g|�D]6}|j|jgd��|j|ddd	d���8	ddd�y#1swYyxYw)
Nrrsrtr:rr�r�rwr�)
�	itertoolsrr<ryr.rr��chainrFr�)rrr}r6�firstrs      r�test_read_dict_fieldnames_chainz.TestDictFields.test_read_dict_fieldnames_chainLs����
�4�'�
2�	K�g��M�M�3�4��L�L��O��^�^�G�,�F���L�E� ����w��7�
K��� � ��!2�!2�4F�G�� � ��S��5�&I�J�
K�	K�	K�	K�s�BB+�+B4c��tdd��5}|jd�|jd�tj|ddg��}|jt
|�d	d
gd�d��ddd�y#1swYyxYw)
Nrsrtr:�1,2,abc,4,5,6
rr�r�r�r�rw�r�rxr�r�)r�r�Nrrs   r�test_read_longzTestDictFields.test_read_longWsx��
�4�'�
2�	L�g��M�M�-�.��L�L��O��^�^�G�04�d�|�=�F����T�&�\�#�S�3I�,K�
L�	L�	L�	L�s�AA4�4A=c��tdd��5}|jd�|jd�tj|ddgd�	�}|jt
|�d
dgd�d
��ddd�y#1swYyxYw)Nrsrtr:r rr�r��_rest)r��restkeyr�rwr!�r�r�r$rrs   r�test_read_long_with_restz'TestDictFields.test_read_long_with_rest`s{��
�4�'�
2�	O�g��M�M�-�.��L�L��O��^�^�G�04�d�|�W�N�F����T�&�\�#�S�6L�,N�
O�	O�	O�	O�s�AA5�5A>c�8�tdd��5}|jd�|jd�tj|d��}|j|jdd	g�|jt|�d
dgd�d
��ddd�y#1swYyxYw)Nrsrtr:zf1,f2
1,2,abc,4,5,6
rr$�r%r�r�r�rwr!r&)rr<ryr.rrFr�r�rs   r�&test_read_long_with_rest_no_fieldnamesz5TestDictFields.test_read_long_with_rest_no_fieldnamesis���
�4�'�
2�	O�g��M�M�6�7��L�L��O��^�^�G�W�=�F����V�.�.��t��=����T�&�\�#�S�6L�,N�
O�	O�	O�	O�s�A9B�Bc�`�tdd��5}|jd�|jd�tj|dj�d��}|j
t|�d	d
ddd
dd��|j
t|�d	d
ddddd��ddd�y#1swYyxYw)Nrsrtr:z1,2,abc,4,5,6
1,2,abc
r�1 2 3 4 5 6�DEFAULT)r��restvalr�rwr�rxr�r��r�rwr�rxr�r�)rr<ryr.r�splitrFr�rs   r�test_read_shortzTestDictFields.test_read_shortrs���
�4�'�
2�
	>�g��M�M�8�9��L�L��O��^�^�G�/<�/B�/B�/D�,5�7�F�
���T�&�\��3�U�25�C�c�,K�
L����T�&�\��3�U�2;�)�2;�,=�
>�
	>�
	>�
	>�s�B
B$�$B-c	��gd�}tj|dj���}|jt	|�dddddd	��y)
N)z2147483648,43.0e12,17,abc,def
z147483648,43.0e2,17,abc,def
z47483648,43.0,170,abc,def
zi1 float i2 s1 s2r��
2147483648z43.0e12�17r�r<)�i1�float�i2�s1�s2�r.rr0rFr�)r�sampler6s   r�test_read_multizTestDictFields.test_read_multisO��������+>�+D�+D�+F�H������f��l�2;�/3�/4�/4�	(6�	7rc
���tjgd�dj���}|jt	|�dddddd	d
��|jt	|�dddddd	d
��y)N)r rCr r,r�r�rwr�rxr�r�r/r:�rr6s  r�test_read_with_blanksz$TestDictFields.test_read_with_blanks�st�����!6�+8�+>�+>�+@�B��	
����f��S�s��.1��#�(G�	H�����f��S�s��.1��#�(G�	Hrc
��tjdgdj�d��}|jt	|�ddddd	d
d��y)Nz1;2;abc;4;5;6
r,r�)r�r!r�rwr�rxr�r�r/r:r>s  r�test_read_semi_sepz!TestDictFields.test_read_semi_sep�sO�����!4� 5�+8�+>�+>�+@�*-�/��	
����f��S�s��.1��#�(G�	HrN)rrrr�r�r�r�r�r�r�rrrrrrrrrrr"r'r*r1r<r?rArrrr�r��s���;�	<�?�>�
*�1�
P�	1�8�8�8�8�4�P�D�P�	K�L�O�O�>�
7�H�Hrr�c�$�eZdZd�Zd�Zd�Zd�Zy)�TestArrayWritesc	���ddl}td�D�cgc]}d|z
��	}}|jd|�}tddd��5}tj|d�	�}|j|�d
j
|D�cgc]
}t|���c}�dz}|jd�|j|j�|�ddd�ycc}wcc}w#1swYyxYw)Nr�r�rsrtr+rurr;rBrC��arrayrcrr.r?rx�joinr�ryrFrz�rrGr��contentsr�r}r?rCs        r�test_int_writezTestArrayWrites.test_int_write�s����$)�"�I�.�q�R��T�.��.��K�K��X�&��
�4�'�2�
>�	7�'��Z�Z���9�F��O�O�A���x�x�� 3�A��Q�� 3�4�V�;�H��L�L��O����W�\�\�^�X�6�	7�	7��/��!4�	7�	7�s#�C�8C�8C
�
;C�C�C!c	���ddl}td�D�cgc]
}d|z
dz��}}|jd|�}tddd��5}tj|d	�
�}|j|�dj
|D�cgc]
}t|���c}�dz}|jd�|j|j�|�ddd�ycc}wcc}w#1swYyxYw)
NrrE皙�����?r�rsrtr+rurr;rBrCrFrIs        r�test_double_writez!TestArrayWrites.test_double_write������(-�b�	�2�1�R��T�3�J�2��2��K�K��X�&��
�4�'�2�
>�	7�'��Z�Z���9�F��O�O�A���x�x�� 3�A��Q�� 3�4�V�;�H��L�L��O����W�\�\�^�X�6�	7�	7��3��
!4�	7�	7��#�C�8C�;C
�
;C�C�C$c	���ddl}td�D�cgc]
}d|z
dz��}}|jd|�}tddd��5}tj|d	�
�}|j|�dj
|D�cgc]
}t|���c}�dz}|jd�|j|j�|�ddd�ycc}wcc}w#1swYyxYw)
NrrErMr�rsrtr+rurr;rBrCrFrIs        r�test_float_writez TestArrayWrites.test_float_write�rOrPc�l�ddl}ddl}|jd|j�}tddd��5}t	j
|d��}|j
|�d	j|�d
z}|jd�|j|j�|�ddd�y#1swYyxYw)Nr�ursrtr+rurr;rBrC)rG�string�
ascii_lettersrr.r?rxrHryrFrz)rrGrUr�r}r?rCs       r�test_char_writezTestArrayWrites.test_char_write�s�����K�K��V�1�1�2��
�4�'�2�
>�	7�'��Z�Z���9�F��O�O�A���x�x��{�6�)�H��L�L��O����W�\�\�^�X�6�	7�	7�	7�s�A.B*�*B3N)rrrrKrNrRrWrrrrCrC�s��
7�	7�	7�	7rrCc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�TestDialectValidityc�f�Gd�dtj�}|�}|j|jtj�d|_|jtj|�d|_tj|_d|_	|�}|j|jtj�|j|jd�|j|j�d|_	|jtj�5}|�ddd�|jtj�d�d|_	|jtj�5}|�ddd�|jt|j�d�d|_	|jtj�5}|�ddd�|jt|j�d	�y#1swY��xYw#1swY��xYw#1swY�GxYw)
Nc�8�eZdZdZdZdZdZdZejZ
y)�3TestDialectValidity.test_quoting.<locals>.mydialectr�r[FTrCN�rrrr!rJrIrLr(r.r1r*rrrr-r\��%���I��J��K�#��#�N��n�n�Grr-TrDr+z("quotechar" must be a 1-character stringz''r�z+"quotechar" must be string or None, not int)
r.r0rFr*r1r,r/rIr0r&�
assertTruer�r��rr-r��cms    r�test_quotingz TestDialectValidity.test_quoting�s���	%����	%�
�K��������C�N�N�3� �	�����#�)�)�Y�/� $�	���M�M�	��!�	���K��������C�M�M�2�������c�*�����
�
�&� �	��
�
�
�s�y�y�
)�	�R��K�	�����R�\�\�*�C�	E�#�	��
�
�
�s�y�y�
)�	�R��K�	�����R�\�\�*�C�	E� �	��
�
�
�s�y�y�
)�	�R��K�	�����R�\�\�*�F�	H�	�	��	�	��	�	�s$�#H�>H�H'�H�H$�'H0c��Gd�dtj�}|�}|j|jd�d|_|j	tj
�5}|�ddd�|jt
j�d�d|_|j	tj
�5}|�ddd�|jt
|j�d�d|_|j	tj
�5}|�ddd�|jt
|j�d�d	|_|j	tj
�5}|�ddd�|jt
|j�d
�d|_|j	tj
�5}|�ddd�|jt
|j�d�y#1swY���xYw#1swY��NxYw#1swY��xYw#1swY��xYw#1swY�axYw)Nc�8�eZdZdZdZdZdZdZejZ
y)�5TestDialectValidity.test_delimiter.<locals>.mydialectr�r[FTrCNr]rrrr-re�r^rr-r��:::z("delimiter" must be a 1-character stringr+�,z%"delimiter" must be string, not bytesr�z#"delimiter" must be string, not intz("delimiter" must be string, not NoneType)r.r0rFr!r,r/r�r�r`s    r�test_delimiterz"TestDialectValidity.test_delimiter�s���	%����	%�
�K��������c�*�#�	��
�
�
�s�y�y�
)�	�R��K�	�����R�\�\�*�C�	E�!�	��
�
�
�s�y�y�
)�	�R��K�	�����R�\�\�*�C�	E�#�	��
�
�
�s�y�y�
)�	�R��K�	�����R�\�\�*�@�	B� �	��
�
�
�s�y�y�
)�	�R��K�	�����R�\�\�*�>�	@�#�	��
�
�
�s�y�y�
)�	�R��K�	�����R�\�\�*�C�	E�5	�	��	�	��	�	��	�	��	�	�s<�#H�>H�H�4H+�H7�H�H�H(�+H4�7Ic��Gd�dtj�}|�}|j|jd�d|_|j	tj
d�5|�ddd�d|_|j	tj
d�5|�ddd�d|_|j	tj
d�5|�ddd�d	|_|j	tj
d
�5|�ddd�y#1swY��xYw#1swY��xYw#1swY�YxYw#1swYyxYw)Nc�8�eZdZdZdZdZdZdZejZ
y)�6TestDialectValidity.test_escapechar.<locals>.mydialectr�r[FTrCNr]rrrr-rkr^rr-r[r+z)"escapechar" must be a 1-character stringz**�*z."escapechar" must be string or None, not bytesr�z,"escapechar" must be string or None, not int)r.r0rFrJr�r/)rr-r�s   r�test_escapecharz#TestDialectValidity.test_escapechars��	%����	%�
�K��������t�,�!�	��
�
#�
#�C�I�I�/Z�
[�	��K�	� $�	��
�
#�
#�C�I�I�/Z�
[�	��K�	� $�	��
�
#�
#�C�I�I�/_�
`�	��K�	� !�	��
�
#�
#�C�I�I�/]�
^�	��K�	�	�	�	��	�	��	�	��	�	�s0�$D�D&�D2�	D>�D#�&D/�2D;�>Ec��Gd�dtj�}|�}|j|jd�d|_|�}|j|jd�d|_|j	tj
�5}|�ddd�|jt
j�d�y#1swY�/xYw)Nc�8�eZdZdZdZdZdZdZejZ
y)�:TestDialectValidity.test_lineterminator.<locals>.mydialectr�r[FTrCNr]rrrr-rp:r^rr-rCrfr�z!"lineterminator" must be a string)r.r0rFr(r,r/r�r�r`s    r�test_lineterminatorz'TestDialectValidity.test_lineterminator9s���	%����	%�
�K������)�)�6�2�#(�	� ��K������)�)�5�1�#$�	� �
�
�
�s�y�y�
)�	�R��K�	�����R�\�\�*�<�	>�	�	�s�
C�Cc�v�d�}dD]�}|j|��5|jtj||d�|jtj||d�|jtj||d�|jtj||d�ddd���y#1swY��xYw)Nc�^�Gd�dtj�}t|||�|�}y)Nc��eZdZy)�QTestDialectValidity.test_invalid_chars.<locals>.create_invalid.<locals>.mydialectNrXrrrr-ruPs��rr-)r.r0rP)�
field_name�valuer-r�s    r�create_invalidz>TestDialectValidity.test_invalid_chars.<locals>.create_invalidOs%��
�C�K�K�
��I�z�5�1���Ar)r!rJr&)rvr+r��xr�)r�r,r.r/)rrxrvs   r�test_invalid_charsz&TestDialectValidity.test_invalid_charsNs���	�C�	L�J������4�
L��!�!�#�)�)�^�Z��L��!�!�#�)�)�^�Z��O��!�!�#�)�)�^�Z��N��!�!�#�)�)�^�Z��K�	
L�
L�	L�
L�
L�s�B	B/�/B8	N)rrrrbrhrmrqrzrrrrYrY�s ��&H�P'E�R�6>�*LrrYc��eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
ed�Zed
�Zed�Zed�ZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�TestSnifferz�Harry's, Arlington Heights, IL, 2/1/03, Kimi Hayes
Shark City, Glendale Heights, IL, 12/28/02, Prezence
Tommy's Place, Blue Island, IL, 12/28/02, Blue Sunday/White Crow
Stonecutters Seafood and Chop House, Lemont, IL, 12/19/02, Week Back
a'Harry''s':'Arlington Heights':'IL':'2/1/03':'Kimi Hayes'
'Shark City':'Glendale Heights':'IL':'12/28/02':'Prezence'
'Tommy''s Place':'Blue Island':'IL':'12/28/02':'Blue Sunday/White Crow'
'Stonecutters ''Seafood'' and Chop House':'Lemont':'IL':'12/19/02':'Week Back'
z+"venue","city","state","date","performers"
z�05/05/03?05/05/03?05/05/03?05/05/03?05/05/03?05/05/03
05/05/03?05/05/03?05/05/03?05/05/03?05/05/03?05/05/03
05/05/03?05/05/03?05/05/03?05/05/03?05/05/03?05/05/03
zT2147483648;43.0e12;17;abc;def
147483648;43.0e2;17;abc;def
47483648;43.0;170;abc;def
zaaa	bbb
AAA	
BBB	
za|b|c
d|e|f
z'a'|'b'|'c'
'd'|e|f
z+"venue"+"city"+"state"+"date"+"performers"
z�Harry's+ Arlington Heights+ IL+ 2/1/03+ Kimi Hayes
Shark City+ Glendale Heights+ IL+ 12/28/02+ Prezence
Tommy's Place+ Blue Island+ IL+ 12/28/02+ Blue Sunday/White Crow
Stonecutters Seafood and Chop House+ Lemont+ IL+ 12/19/02+ Week Back
a'Harry''s'+ Arlington Heights'+ 'IL'+ '2/1/03'+ 'Kimi Hayes'
'Shark City'+ Glendale Heights'+' IL'+ '12/28/02'+ 'Prezence'
'Tommy''s Place'+ Blue Island'+ 'IL'+ '12/28/02'+ 'Blue Sunday/White Crow'
'Stonecutters ''Seafood'' and Chop House'+ 'Lemont'+ 'IL'+ '12/19/02'+ 'Week Back'
z|
                        abc,def
                        ghijkl,mno
                        ghi,jkl
                        z~
                        abc,def
                        ghijkl,mnop
                        ghi,jkl
                         z�"time","forces"
                        1,1.5
                        0.5,5+0j
                        0,0
                        1+1j,6
                        z|"time","forces"
                        0,0
                        1,2
                        a,b
                        zabcdef
ghijklmno
ghijkl
c���tj�}|j|j|j��|j|j|j��yr)r.�Snifferr_�
has_header�sample12�assertFalse�sample13�r�sniffers  r�test_issue43625zTestSniffer.test_issue43625�sE���+�+�-������*�*�4�=�=�9�:�����+�+�D�M�M�:�;rc���tj�}|j|j|j��|j|j|j
��y)zDMore to document existing (unexpected?) behavior than anything else.N)r.r~r�r�sample10�sample11r�s  r�test_has_header_stringsz#TestSniffer.test_has_header_strings�sG���+�+�-������+�+�D�M�M�:�;�����+�+�D�M�M�:�;rc���tj�}|j|j|j�d�|j|j|j
|jz�d�y�NFT)r.r~rHr�sample1�header1r�s  r�test_has_headerzTestSniffer.test_has_header��P���+�+�-���
�
�g�(�(����6��>��
�
�g�(�(�������)D�E�t�Lrc���tj�}|j|j|j�d�|j|j|j
|jz�d�yr�)r.r~rHr�sample8�header2r�s  r�'test_has_header_regex_special_delimiterz3TestSniffer.test_has_header_regex_special_delimiter�r�rc��tj�}dD]�}|j|�5|j|d�}|j	|j
d�|j	|jd�|j|jd�|j|jd�ddd���y#1swY��xYw)N)z	;'123;4';z'123;4';z;'123;4'z'123;4'z,;r�r/F)
r.r~r��sniffrFr!r&rHrIrL)rr��headerrGs    r�test_guess_quote_and_delimiterz*TestSniffer.test_guess_quote_and_delimiter�s����+�+�-��F�	?�F����f�%�
?�!�-�-���5��� � ��!2�!2�C�8�� � ��!2�!2�C�8��
�
�g�1�1�5�9��
�
�g�6�6��>�
?�
?�	?�
?�
?�s�BB9�9C	c���tj�}|j|j�}|j	|j
d�|j	|jd�|j|jd�|j|j�}|j	|j
d�|j	|jd�|j|jd�y)NrBrDTrEr/F)
r.r~r�r�rFr!r&rHrL�sample2�rr�rGs   r�
test_sniffzTestSniffer.test_sniff�s����+�+�-���-�-����-������*�*�C�0�����*�*�C�0��
�
�g�.�.��5��-�-����-������*�*�C�0�����*�*�C�0��
�
�g�.�.��6rc��tj�}|j|j�}|j	|j
|j�|j|jd��}|j
|j
d�|j|jd��}|j
|j
d�|j|j�}|j
|j
d�|j|j�}|j
|j
d�|j|j�}|j
|j
d�|j|j�}|j
|j
d�|j
|jd	�|j|j�}|j
|j
d
�|j|j�}|j
|j
d
�|j
|jd	�|j|j�}|j
|j
d�y)Nz?,)�
delimiters�?z/,�/r�rrQr/�+r�)r.r~r��sample3r�r!rF�sample4�sample5�sample6�sample7r&r��sample9�sample14r�s   r�test_delimiterszTestSniffer.test_delimiters�s����+�+�-���-�-����-��	
�
�
�g�'�'����6��-�-�����-�>������*�*�C�0��-�-�����-�>������*�*�C�0��-�-����-������*�*�C�0��-�-����-������*�*�D�1��-�-����-������*�*�C�0��-�-����-������*�*�C�0�����*�*�C�0��-�-����-������*�*�C�0��-�-����-������*�*�C�0�����*�*�C�0��-�-��
�
�.������*�*�D�1rc�H�tj�}|j|j�}|j	|j
�|j|j�}|j	|j
�|j|j�}|j|j
�|j|j�}|j	|j
�|j|j�}|j|j
�yr)r.r~r�r�r�rIr�r�r_r�r�r�s   r�test_doublequotezTestSniffer.test_doublequote�s����+�+�-���-�-����-������,�,�-��-�-����-������,�,�-��-�-����-������+�+�,��-�-����-������,�,�-��-�-����-������+�+�,rN)rrrr�r�r�r�r�r�r�r�r�r�r�r
r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr|r|]s����G��G��G��G��G�/�G�"�G�*�G��G��G��G����H����H����H����H��H�<�
<�M�
M�
?�
7�2�8-rr|c��eZdZd�ZeZy)�NULc��yrr)�srQs  rr<z	NUL.writes��rN)rrrr<�
writelinesrrrr�r�s��
��Jrr��gettotalrefcountzrequires sys.gettotalrefcount()c�$�eZdZd�Zd�Zd�Zd�Zy)�	TestLeaksc��d}tj�}td�D]�}tj�|jtjg�tj�}tjdg�tjdg�tjdg�||z
}|}��|j|d�y)NrrE�a,b,c
r��
�sysr�rc�gc�collectrF�garbager.r6�
assertLess)r�delta�lastrcr��rcs     r�test_create_readzTestLeaks.test_create_read
s������%�%�'���r��	�A��J�J�L����R�Z�Z��,��%�%�'�B��J�J��}�%��J�J��}�%��J�J��}�%��v�I�E��F�	�	
����q�!rc��d}tj�}t�}td�D]�}t	j
�|j
tjg�tj�}tj|�tj|�tj|�||z
}|}��|j|d�y)NrrEr�)r�r�r�rcr�r�rFr�r.r?r�)rr�r�r�r�r�s      r�test_create_writezTestLeaks.test_create_writes������%�%�'���E���r��	�A��J�J�L����R�Z�Z��,��%�%�'�B��J�J�q�M��J�J�q�M��J�J�q�M��v�I�E��F�	�	
����q�!rc�V�d}dgdz}tj�}td�D]m}tj�|jtjg�tj�}tj|�}|D]}�||z
}|}�o|j|d�y)Nrr�r�rEr�)rr�rr�r�r��rdrrs        r�	test_readzTestLeaks.test_read)s������}�Q����%�%�'���r��	�A��J�J�L����R�Z�Z��,��%�%�'�B��*�*�T�"�C��
���
��v�I�E��F�	�	
����q�!rc��d}gd�gdz}t�}tj�}td�D]~}t	j
�|j
tjg�tj�}tj|�}|D]}|j|��||z
}|}��|j|d�y)NrrBr�rE)r�r�r�rcr�r�rFr�r.r?rxr�)	rr�rr�r�r�r�r?rs	         r�
test_writezTestLeaks.test_write9s������y��{���E���%�%�'���r��	�A��J�J�L����R�Z�Z��,��%�%�'�B��Z�Z��]�F��
%������$�
%��v�I�E��F�	�	
����q�!rN)rrrr�r�r�r�rrrr�r�s��
"�"� "� "rr�c� �eZdZgd�Zd�Zd�Zy)�TestUnicode)uMartin von LöwisuMarc André LemburgzGuido van RossumuFrançois Pinardc�<�tddd��5}|jdj|j�dz�|j	d�tj|�}|jt|�|jg�ddd�y#1swYyxYw�Nrsr+rtrArBrCr)	rr<rH�namesryr.r6rFr�rs   r�test_unicode_readzTestUnicode.test_unicode_readQsv��
�4��g�
>�	9�'��M�M�#�(�(�4�:�:�.��7�8��L�L��O��Z�Z��(�F����T�&�\�D�J�J�<�8�		9�	9�	9�s�A:B�Bc�H�tddd��5}tj|�}|j|j�dj|j�dz}|j
d�|j|j�|�ddd�y#1swYyxYwr�)	rr.r?rxr�rHryrFrz)rr}r?rCs    r�test_unicode_writezTestUnicode.test_unicode_writeYs{��
�4��g�
>�	7�'��Z�Z��(�F��O�O�D�J�J�'��x�x��
�
�+�F�2�H��L�L��O����W�\�\�^�X�6�	7�	7�	7�s�BB�B!N)rrrr�r�r�rrrr�r�Js��
!�E�
9�7rr�c��eZdZd�Zd�Zy)�KeyOrderingTestc��t�}td�D]�}tddd��5}tj||�}|j�|j
d�tj|�}t|j�}|j||�|j|�ddd���|jt|�dd�y#1swY��xYw)	N�abcdersr+rtrAr�xz@Key ordering: some key permutations not collected (expected 120))
�setr	rr.r�r�ryr�tupler�rF�add�len)r�	resultset�keys�
fileobject�dw�dr�kts       r�,test_ordering_for_the_dict_reader_and_writerz<KeyOrderingTest.test_ordering_for_the_dict_reader_and_writercs����E�	� ��)�	"�D��t�R�'�B�
"�j��^�^�J��5����� �����"��^�^�J�/���2�=�=�)��� � ��r�*��
�
�b�!�
"�
"�	"�	
����Y���.p�q�
"�
"�s�BC�C	c��td�j�}|jtt	j
|��t
ddg�t
dddddgfg�t
dd	g�t
d
dg�g�|jtt	j
|d�
��t
ddg�t
dddddgfg�t
dd	g�t
d
dg�g�|d=|jtt	j
|ddg���t
ddg�t
dddddgfg�t
ddg�t
ddg�g�y)Nz�            FirstName,LastName
            Eric,Idle
            Graham,Chapman,Over1,Over2

            Under1
            John,Cleese
        )�	FirstName�Eric)�LastName�Idle)r��Graham)r��Chapman�Over1�Over2)r��Under1)r�N)r��John)r��Cleese�	OtherInfor)r�fname�lnamer�)r�r�)r�r�)r�r�)r�r�)r�r�)r�N)r�r�)r�r�)r
�
splitlinesrFr�r.rr)r�datas  r�test_ordered_dict_readerz(KeyOrderingTest.test_ordered_dict_readerqs�����
��Z�\�	
�	
����c�n�n�T�2�3�
�/�1E�F�
G�
�1�3J��'�7�!3�4�6�7�
�1�3E�F�
G�
�/�1G�H�
I�	
�	�	
����c�n�n�T�;�G�H�
�/�1E�F�
G�
�1�3J�&��'�(:�;�=�>�
�1�3E�F�
G�
�/�1G�H�
I�	
�	�
��G�����c�n�n�T�w��>P�Q�R�
�+�->�?�
@�
�-�/C��'�7�!3�4�6�7�
�-��?�
@�
�+�-@�A�
B�	
�	rN)rrrr�r�rrrr�r�as
��r�!rr�c�<�eZdZd�Zd�Zejd��Zy)�MiscTestCasec�F�ddh}tj|td|��y)Nr�__version__)r.�_csv)�extra)r�check__all__r.)rr�s  r�test__all__zMiscTestCase.test__all__�s ���M�*�����T�3��u�Erc�6�Gd�dtj�}y)Nc��eZdZy)�+MiscTestCase.test_subclassable.<locals>.FooNrXrrr�Foor��s�rr�)r.r/)rr�s  r�test_subclassablezMiscTestCase.test_subclassable�s��!�#�)�)�!rc���tjd�}|j|jfD])}|j	|��5t||�ddd��+y#1swY�6xYw)Nr�)�tp)r�
import_module�Reader�Writerr�r)rr�r�s   r�test_disallow_instantiationz(MiscTestCase.test_disallow_instantiation�s`���*�*�6�2���+�+�t�{�{�*�	7�B������$�
7�,�T�2�6�
7�
7�	7�
7�
7�s�
A�A$	N)rrrr�r�rrrrrrr�r��s'��F�"�
���7��7rr��__main__)/r`r��unittest�ior�tempfilerr.r�rd�testr�test.supportrrrrr	�textwrapr
�collectionsrr
�TestCaserr
rjrqrr�r�r�r�r�r�rCrYr|r��
skipUnless�hasattrr�r�r�r�r�mainrrr�<module>rs����
���"�
�	�
��U�U�"��#���
R.�x� � �R.�hKK�(�+�+�KK�Z>�(�#�#�>� _O�{�_O�B�3�9�9��?�{�?�S�k�S������A�[�A�OH�X�&�&�OH�b,7�h�'�'�,7�\NL�(�+�+�NL�bc-�(�#�#�c-�J��
����W�S�"4�5�6�8�?"��!�!�?"�8�?"�B7�(�#�#�7�.1�h�'�'�1�h7�8�$�$�7� �z���H�M�M�O�r