Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_csv.cpython-38.opt-2.pyc
U

>��g��@s�ddlZddlZddlZddlmZddlmZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZddlmZGdd	�d	�ZGd
d�dej�ZGdd
�d
ej�ZGdd�dej�ZGdd�de�ZGdd�dej�ZGdd�de�ZGdd�de�ZGdd�dej�ZGdd�de�ZGdd�dej�ZGdd�dej�ZGd d!�d!ej�Z Gd"d#�d#ej�Z!Gd$d%�d%�Z"e�#e$ed&�d'�Gd(d)�d)ej��Z%Gd*d+�d+ej�Z&Gd,d-�d-ej�Z'Gd.d/�d/ej�Z(e)d0k�r�e�*�dS)1�N)�StringIO)�
TemporaryFile)�support)�permutations)�dedent)�OrderedDictc@seZdZdd�ZdS)�BadIterablecCst�dS�N��OSError��self�r�,/opt/cppython/lib/python3.8/test/test_csv.py�__iter__szBadIterable.__iter__N)�__name__�
__module__�__qualname__rrrrrrsrc@seZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zejd-d.��Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Z d9d:�Z!d;d<�Z"d=d>�Z#d?d@�Z$dAdB�Z%dCS)D�Test_CsvcCs�|�t|�|�t|d�|jt||dd�|jt||dd�|jt||dd�|�tj||d�|jt||dd�|jt||dd�|jt||dd�|jt||dd�|jt||dd�|jt||dd	�|jt||tjd
d�|jt||tjdd�dS)Nr�Zbad_attr��	delimiterZXXZfoo�)�	quotechar)�lineterminator��quoting�)rr)�assertRaises�	TypeError�csv�Error�	QUOTE_ALL)r
�ctor�argrrr�_test_arg_valids(
�
�zTest_Csv._test_arg_validcCs$|�tjg�|�ttjt��dSr	)r%r �readerrrrrrrr�test_reader_arg_valid/szTest_Csv.test_reader_arg_validcCs4|�tjt��Gdd�d�}|�ttj|��dS)Nc@seZdZedd��ZdS)z1Test_Csv.test_writer_arg_valid.<locals>.BadWritercSst�dSr	r
rrrr�write6sz7Test_Csv.test_writer_arg_valid.<locals>.BadWriter.writeN)rrr�propertyr(rrrr�	BadWriter5sr*)r%r �writerrrr)r
r*rrr�test_writer_arg_valid3szTest_Csv.test_writer_arg_validcGs�||�}|�|jjd�|�|jjd�|�|jjd�|�|jjd�|�|jjd�|�|jjt	j
�|�|jjd�|�|jjd�|�
tt|jd�|�
tt|jdd�|�
tt|jd�|�
tt|jdd�dS)	N�,T�
�"Fr�:r)�assertEqual�dialectr�assertIs�doublequote�
escapecharrrrr �
QUOTE_MINIMAL�skipinitialspace�strictr�AttributeError�delattr�setattr)r
r#�args�objrrr�_test_default_attrs;s �zTest_Csv._test_default_attrscCs|�tjg�dSr	)r>r r&rrrr�test_reader_attrsMszTest_Csv.test_reader_attrscCs|�tjt��dSr	)r>r r+rrrrr�test_writer_attrsPszTest_Csv.test_writer_attrsc
Gs�tdddddtjddd�}|||�}|�|jjd�|�|jjd�|�|jjd�|�|jj	d�|�|jj
d�|�|jjtj�|�|jjd�|�|jj
d�dS)Nr0F�\�
�*T)rr4r5rrrr7r8)�dictr �
QUOTE_NONEr1r2rr3r4r5rrrr7r8)r
r#r<�kwargsr=rrr�_test_kw_attrsSs �
zTest_Csv._test_kw_attrscCs|�tjg�dSr	)rGr r&rrrr�test_reader_kw_attrscszTest_Csv.test_reader_kw_attrscCs|�tjt��dSr	)rGr r+rrrrr�test_writer_kw_attrsfszTest_Csv.test_writer_kw_attrscGs�Gdd�d�}||f}||�}|�|jjd�|�|jjd�|�|jjd�|�|jjd�|�|jjd�|�|jjt	j
�|�|jjd�|�|jjd�dS)	Nc@s.eZdZdZdZdZdZdZej	Z
dZdZdS)z-Test_Csv._test_dialect_attrs.<locals>.dialect�-F�^�$�#TN)
rrrrr4r5rrr r"rr7r8rrrrr2ksr2rJFrKrLrMT)
r1r2rr3r4r5rrrr r"r7r8)r
r#r<r2r=rrr�_test_dialect_attrsis	
zTest_Csv._test_dialect_attrscCs|�tjg�dSr	)rNr r&rrrr�test_reader_dialect_attrssz"Test_Csv.test_reader_dialect_attrscCs|�tjt��dSr	)rNr r+rrrrr�test_writer_dialect_attrs�sz"Test_Csv.test_writer_dialect_attrsc	KsVtddd��@}tj|f|�}|�|�|�d�|�|��||jj�W5QRXdS�N�w+r��newliner)	rr r+�writerow�seekr1�readr2r)r
�fields�expectrF�fileobjr+rrr�_write_test�s



�zTest_Csv._write_testc
Ksdtddd��N}tj|f|�}|�|��|�|�W5QRX|�d�|�|��d�W5QRXdSrQ)rr r+rrUrVr1rW)r
�excrXrFrZr+rrr�_write_error_test�s
zTest_Csv._write_error_testcCs�|�tjd�|�dd�|�dgd�|jtjdgtjd�|�tt��Gdd�d�}|�t|��Gdd�d�}|�t|�g�dS)	Nrr�""rc@seZdZdd�Zdd�ZdS)z.Test_Csv.test_write_arg_valid.<locals>.BadListcSsdS)N�
rrrrr�__len__�sz6Test_Csv.test_write_arg_valid.<locals>.BadList.__len__cSs|dkrt�dS)N�r
)r
�irrr�__getitem__�sz:Test_Csv.test_write_arg_valid.<locals>.BadList.__getitem__N)rrrr`rcrrrr�BadList�srdc@seZdZdd�ZdS)z.Test_Csv.test_write_arg_valid.<locals>.BadItemcSst�dSr	r
rrrr�__str__�sz6Test_Csv.test_write_arg_valid.<locals>.BadItem.__str__N)rrrrerrrr�BadItem�srf)r]r r!r[rErr)r
rdrfrrr�test_write_arg_valid�szTest_Csv.test_write_arg_validcCs$dd}|�||gd||f�dS)N�X�P��%s,%s)r[)r
�	bigstringrrr�test_write_bigfield�s�zTest_Csv.test_write_bigfieldcCs�|�dddgd�|jtjdddgtjd�|jdddgdtjd�|jdddgdtjd�|jdddgdtjd�|jddgd	tjd�dS)
N�ar�p,q�	a,1,"p,q"rz"a",1,"p,q"z
"a","1","p,q"�a
bz	"a
b","1")r[r]r r!rEr6�QUOTE_NONNUMERICr"rrrr�test_write_quoting�s �����zTest_Csv.test_write_quotingcCs�|jdddgddd�|jtjdddgddd	�|jdddgd
ddd	�|jdgddtjd
�|jdgddtjdd�|jdgddtjd
�|jdddgddtjd
�dS)NrmrrnrorA�r5zp,"q"F)r5r4z
a,1,"p,\"q\""r/�"""")r5rz\")r5rr4za,1,p\,q)r[r]r r!r6rErrrr�test_write_escape�s8���
�
�
��zTest_Csv.test_write_escapecCs�|�tdddg�d�|�tdddg�d�|�tg�d�|�tdg�d�|jtjtdg�tjd�|�tddg�d	�dS)
Nrmrrnroza,1,rr^rr-)r[�iterr]r r!rErrrr�test_write_iterable�szTest_Csv.test_write_iterablec	Cs�Gdd�d�}t�|��}|�t|jdgg�tddd��P}t�|�}|�t|jd�|�ddgdd	gg�|�d
�|�|�	�d�W5QRXdS)Nc@seZdZdd�ZdS)z+Test_Csv.test_writerows.<locals>.BrokenFilecSst�dSr	r
)r
�bufrrrr(�sz1Test_Csv.test_writerows.<locals>.BrokenFile.writeN)rrrr(rrrr�
BrokenFile�sryrmrRrrS�b�c�drz
a,b
c,d
)
r r+rr�	writerowsrrrVr1rW)r
ryr+rZrrr�test_writerows�s

zTest_Csv.test_writerowsc	Cs�tddd��@}t�|�}|�ddgddgg�|�d�|�|��d�W5QRXtddd��<}t�|�}|�dgdgg�|�d�|�|��d�W5QRXtddd��<}t�|�}|�dgdgg�|�d�|�|��d	�W5QRXdS)
NrRrrSrmr|rza,
,d
z""
a
za
""
)rr r+r}rVr1rW�r
rZr+rrr�test_writerows_with_none�s





z!Test_Csv.test_writerows_with_nonec	CsHtddd��2}t�|�}|�t|jd�|�t|jt��W5QRXdS)NrRrrS)rr r+rrr}rrrrrr�test_writerows_errors�s
zTest_Csv.test_writerows_errorsc	Cs`ddl}|�d�}tddd��8}t�|�}|�|gg�|�d�|�|��d�W5QRXdS)NrrmrRrrSza
)	�	_testcapiZunicode_legacy_stringrr r+r}rVr1rW)r
r�r{rZr+rrr�test_writerows_legacy_strings�s


z&Test_Csv.test_writerows_legacy_stringscKs&tj|f|�}t|�}|�||�dSr	)r r&�listr1)r
�inputrYrFr&�resultrrr�
_read_testszTest_Csv._read_testcCs�|�gg�|�dggg�|jtj|jdgddd�|jtj|jdgddd�|jdgdggdd�|�tj|jd	gd�dS)
Nrz"ab"cr�r8zabc�abcr)r4sabc�r�rr r!rrrr�test_read_oddinputss"���zTest_Csv.test_read_oddinputscCs�|�dgddgg�|�dgddgg�|�dgddgg�|�dgddgg�|�tj|jdgg�|�tj|jdgg�|�tj|jd	gg�dS)
Nza,brmrzza,b
za,b
za,b
za,b
c,dza,b
c,dza,b
c,dr�rrrr�
test_read_eolszTest_Csv.test_read_eolcCs�|�dgddgg�|�dgdgg�|jdgdggdd�|jtj|jdggdd	�|jtj|jdggdd	�|jtj|jdggddd
�dS)Nza,"rmrz"arK�
rsTr�)r5r8r�rrrr�
test_read_eof#s�zTest_Csv.test_read_eofcCs�|jdgdddggdd�|jdgddggdd�|jd	gddggdd�|jd
gddggdd�|jdgddggdd�|jd
gddggdd�dS)Nza,\b,crmrzr{rArsza,b\,czb,cza,"b\,c"za,"b,\c"z	a,"b,c\""zb,c"za,"b,c"\zb,c\)r�rrrr�test_read_escape,szTest_Csv.test_read_escapecCs�|�dgdddgg�|jdgdddddggddd�|jdgdddddggtjdd	�|jd
gdddd
dggtjd�|�dgddgg�|jt|jdgggtjd�dS)Nz	1,",3,",5�1z,3,�5r/�3rA)rr5�rr5z
,3,"5",7.3, 9r�g333333@�	rz"a
b", 7rpz 7zabc,3)r�r rErqr�
ValueErrorrrrr�test_read_quoting4s$���
�zTest_Csv.test_read_quotingc	Cs�t��}z�d}d|}d||f}|�|g||gg�t�|�|�|g||gg�|�t��|�t�|d�|�tj|j|gg�|�ttjd�|�ttjdd�W5t�|�XdS)Nrirhrjr)r Zfield_size_limitr�r1rr!r)r
�limit�sizerkZbiglinerrr�test_read_bigfieldBs
zTest_Csv.test_read_bigfieldcCs�t�dddg�}|�|jd�t|�|�|jd�t|�|�|jd�t|�|�|jd�|�tt|�|�|jd�dS)Nzline,1zline,2zline,3rrrar�)r r&r1Zline_num�nextr�
StopIteration)r
�rrrr�test_read_linenumUszTest_Csv.test_read_linenumc	Csrtddd��\}t�|�}ddgddgg}|�|�|�d�tt�|��D]\}}|�|||�qJW5QRXdS)	NrRrrSrprzr{�x
dr)rr r+r}rV�	enumerater&r1�r
rZr+�rowsrb�rowrrr�test_roundtrip_quoteed_newlinesas


z(Test_Csv.test_roundtrip_quoteed_newlinesc	Cs�tddd��l}tj|tjdd�}ddgdd	gg}|�|�|�d
�ttj|tjdd��D]\}}|�|||�qZW5QRXdS)NrRrrSrAr�rprzr{r�r)	rr r+rEr}rVr�r&r1r�rrr�(test_roundtrip_escaped_unquoted_newlinesjs

z1Test_Csv.test_roundtrip_escaped_unquoted_newlinesN)&rrrr%r'r,r>r?r@rGrHrIrNrOrPr[r]rgrlrrrurwr~r�r�rZcpython_onlyr�r�r�r�r�r�r�r�r�r�r�rrrrrsD


			rc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�TestDialectRegistrycCs�|�ttjd�|�ttj�|�tjtjd�|�tjtjd�|�ttj�|�tjtjd�|�tjtjd�|�ttjd�|�ttjdd�|�ttjddd�|jttjddd�|jttjddd�|�ttjg�dS)NZnonesuchr)Zbadargumentr)rrr �
list_dialects�get_dialectr!�unregister_dialect�register_dialectrrrr�test_registry_badargsts"��z)TestDialectRegistry.test_registry_badargscCsvGdd�dtj�}d}t��|g}|��t�||�|�tj|�|�t�|�j	d�t
t���}|�||�dS)Nc@seZdZdZdS)z5TestDialectRegistry.test_registry.<locals>.myexceltsv�	N�rrrrrrrr�
myexceltsv�sr�r�)r �excelr��sortr��
addCleanupr�r1r�r�sorted)r
r��nameZexpected_dialectsZgot_dialectsrrr�
test_registry�sz!TestDialectRegistry.test_registrycCsZd}tj|dd�|�tj|�|�t�|�jd�|�dddggtt�dg|���dS)NZfedcba�;rrh�Y�ZzX;Y;Z)	r r�r�r�r1r�rr�r&)r
r�rrr�test_register_kwargs�s
z(TestDialectRegistry.test_register_kwargscCs$Gdd�dtj�}|�tj|�dS)Nc@seZdZdZdS)z?TestDialectRegistry.test_incomplete_dialect.<locals>.myexceltsvr�Nr�rrrrr��sr�)r �Dialectrr!)r
r�rrr�test_incomplete_dialect�sz+TestDialectRegistry.test_incomplete_dialectc	CsvGdd�dtj�}td��R}|�d�|�d�tj||�d�}|�t|�ddg�|�t|�d	d
g�W5QRXdS)Nc@seZdZdZejZdZdS)z5TestDialectRegistry.test_space_dialect.<locals>.space� rAN)rrrrr rErr5rrrr�space�sr�rRzabc def
c1ccccc1 benzene
r�r2r��defZc1ccccc1Zbenzene)r r�rr(rVr&r1r�)r
r�rZr&rrr�test_space_dialect�s


z&TestDialectRegistry.test_space_dialectc	OsZtdddd��B}tj|f|�|�}|�dddg�|�d�|�|��|�W5QRXdS)	NrRr�utf-8�rT�encodingrrar�r)rr r+rUrVr1rW)r
�expectedZ	writeargsZkwwriteargsrZr+rrr�compare_dialect_123�s

z'TestDialectRegistry.compare_dialect_123c	Cs�Gdd�dtj�}Gdd�dtj�}Gdd�dtj�}Gdd�dtj�}t�d|�zV|�d	�|�d
|�|jd|�d�|jd
dd�|jd|dd�|jd|d�W5t�d�XdS)Nc@seZdZdZdS)z5TestDialectRegistry.test_dialect_apply.<locals>.testAr�Nr�rrrr�testA�sr�c@seZdZdZdS)z5TestDialectRegistry.test_dialect_apply.<locals>.testBr0Nr�rrrr�testB�sr�c@seZdZdZdS)z5TestDialectRegistry.test_dialect_apply.<locals>.testC�|Nr�rrrr�testC�sr�c@seZdZdZdS)z7TestDialectRegistry.test_dialect_apply.<locals>.testUniuΛNr�rrrr�testUni�sr�z1,2,3
z1	2	3
z1:2:3
r�z1|2|3
z1;2;3
r�)r2ru	1Λ2Λ3
)r r�r�r�r�)r
r�r�r�r�rrr�test_dialect_apply�s"
��
z&TestDialectRegistry.test_dialect_applycCsT|jttjgdd�|jttjgdd�|jttjgdd�|jttjgdd�dS)Nrrr���r�d)rrr r&rrrr�test_bad_dialect�sz$TestDialectRegistry.test_bad_dialectcCs,t��D]}t�|�}|�ttj|�qdSr	)r r�r�rr�copy)r
r�r2rrr�	test_copy�s
zTestDialectRegistry.test_copycCsBt��D]4}t�|�}ttjd�D]}|�ttj||�q$qdS)Nr)	r r�r��range�pickle�HIGHEST_PROTOCOLrr�dumps)r
r�r2�protorrr�test_pickle�s
zTestDialectRegistry.test_pickleN)
rrrr�r�r�r�r�r�r�r�r�r�rrrrr�ss
	r�c@seZdZdd�Zdd�ZdS)�TestCsvBasec	CsTtddd��>}|�|�|�d�tj||jd�}t|�}|�||�W5QRXdS)NrRrrSrr�)rr(rVr r&r2r�r1)r
r��expected_resultrZr&rXrrr�readerAssertEqual�s

zTestCsvBase.readerAssertEqualc	CsPtddd��:}tj||jd�}|�|�|�d�|�|��|�W5QRXdS)NrRrrSr�r)rr r+r2r}rVr1rW)r
r�r�rZr+rrr�writerAssertEqual�s


zTestCsvBase.writerAssertEqualN)rrrr�r�rrrrr��sr�c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4S)5�TestDialectExcelr�cCs|�ddgg�dS)Nr��r�rrrr�test_single�szTestDialectExcel.test_singlecCs|�ddddddgg�dS)Nz	1,2,3,4,5r��2r��4r�r�rrrr�test_simple�szTestDialectExcel.test_simplecCs|�dg�dS�Nrr�rrrr�test_blankline�szTestDialectExcel.test_blanklinecCs|�dddgg�dS)Nr-rr�rrrr�test_empty_fields�sz"TestDialectExcel.test_empty_fieldscCs|�ddgg�dS)Nr^rr�rrrr�test_singlequoted�sz"TestDialectExcel.test_singlequotedcCs|�dddgg�dS)Nz"",rr�rrrr�test_singlequoted_left_emptysz-TestDialectExcel.test_singlequoted_left_emptycCs|�dddgg�dS)Nz,""rr�rrrr�test_singlequoted_right_emptysz.TestDialectExcel.test_singlequoted_right_emptycCs|�ddgg�dS)Nrtr/r�rrrr�test_single_quoted_quotesz)TestDialectExcel.test_single_quoted_quotecCs|�ddgg�dS)Nz""""""r^r�rrrr�test_quoted_quotes	sz#TestDialectExcel.test_quoted_quotescCs|�ddgg�dS)Nza""br�rrrr�test_inline_quotesz"TestDialectExcel.test_inline_quotecCs|�ddgg�dS)Nza"b"cr�rrrr�test_inline_quotessz#TestDialectExcel.test_inline_quotescCs|�ddgg�dS)Nz"a"b�abr�rrrr�test_quotes_and_moresz%TestDialectExcel.test_quotes_and_morecCs|�ddgg�dS)Nza"br�rrrr�test_lone_quotesz TestDialectExcel.test_lone_quotecCs|�ddgg�dS)Nz"a" "b"za "b"r�rrrr�test_quote_and_quotesz%TestDialectExcel.test_quote_and_quotecCs|�ddgg�dS)Nz "a"r�rrrr�test_space_and_quotesz%TestDialectExcel.test_space_and_quotec	Cs|�dddddddgg�dS)Nz#1,2,3,"I think, therefore I am",5,6r�r�r�zI think, therefore I amr��6r�rrrr�test_quoted"s��zTestDialectExcel.test_quotedcCs|�ddddddgg�dS)NzJ1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw"r�r�r�z"I see," said the blind manz"as he picked up his hammer and sawr�rrrr�test_quoted_quote(s��z"TestDialectExcel.test_quoted_quotecCs*d}|�|dddddgddd	d
gg�dS)NzR1,2,3,"""I see,""
said the blind man","as he picked up his
hammer and saw"
9,8,7,6r�r�r�z"I see,"
said the blind manz"as he picked up his
hammer and saw�9�8�7r�r�)r
r�rrr�test_quoted_nl.s�
��zTestDialectExcel.test_quoted_nlcCs|�dddddgg�dS)Nz	12,12,1",Z12z1"rr�rrrr�test_dubious_quote:sz#TestDialectExcel.test_dubious_quotecCs|�gd�dSr��r�rrrr�	test_null=szTestDialectExcel.test_nullcCs|�dggd�dS)Nr�zabc
r�rrrr�test_single_writer@sz#TestDialectExcel.test_single_writercCs|�dddddggd�dS)Nrrar�r��z
1,2,abc,3,4
r�rrrr�test_simple_writerCsz#TestDialectExcel.test_simple_writercCs|�dddddggd�dS)Nrraza"bc"r�r�z1,2,"a""bc""",3,4
r�rrrr�test_quotesFszTestDialectExcel.test_quotescCs|�dggd�dS�N�abc,defz"abc,def"
r�rrrr�test_quote_fieldsepIsz$TestDialectExcel.test_quote_fieldsepcCs|�dddddggd�dS)Nrraza
bcr�r�z1,2,"a
bc",3,4
r�rrrr�
test_newlinesLszTestDialectExcel.test_newlinesN)rrrr2r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr��s4r�c@seZdZejZdZdS)�EscapedExcelrAN)rrrr rErr5rrrrrOsrc@s"eZdZe�Zdd�Zdd�ZdS)�TestEscapedExcelcCs|�dggd�dS)Nr��
abc\,def
r�rrrr�test_escape_fieldsepVsz%TestEscapedExcel.test_escape_fieldsepcCs|�ddgg�dS)Nrr�r�rrrr�test_read_escape_fieldsepYsz*TestEscapedExcel.test_read_escape_fieldsepN)rrrrr2rrrrrrrSsrc@s eZdZdZdd�Zdd�ZdS)�TestDialectUnixZunixcCs|�dddggd�dS)Nr�abc defr��"1","abc def","abc"
r�rrrrr�_sz"TestDialectUnix.test_simple_writercCs|�ddddgg�dS)Nrr�rr�r�rrrr�test_simple_readerbsz"TestDialectUnix.test_simple_readerN)rrrr2r�r	rrrrr\src@seZdZejZdZdS)�QuotedEscapedExcelrAN)rrrr rqrr5rrrrr
esr
c@s"eZdZe�Zdd�Zdd�ZdS)�TestQuotedEscapedExcelcCs|�dggd�dSr�r�rrrr�test_write_escape_fieldseplsz1TestQuotedEscapedExcel.test_write_escape_fieldsepcCs|�ddgg�dS)Nz"abc\,def"
r�r�rrrrrosz0TestQuotedEscapedExcel.test_read_escape_fieldsepN)rrrr
r2rrrrrrrisrc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'S)(�TestDictFieldsc	CsDtddd��.}tj|dddgd�}|��}|�|d�W5QRXdS)	NrRrrS�f1�f2�f3��
fieldnamesr_)rr �
DictWriter�writeheaderr1)r
rZr+Zwriteheader_return_valuerrr�test_writeheader_return_valueusz,TestDictFields.test_writeheader_return_valuec	Cs�tddd��n}tj|dddgd�}|��|�d�|�|��d	�|�d
dd��|�d�|��|�|��d
�W5QRXdS)NrRrrSrrrrr�
f1,f2,f3
r_r�)rrz	10,,abc
)	rr rrrVr1�readlinerUrWrrrr�test_write_simple_dict{s

z%TestDictFields.test_write_simple_dictcCsdt�}tj|dddgd�}|��|�|��d�|�dddd	�d
ddd	�g�|�|��d
�dS)Nrrrrrrr��f�rrrra�Zxyzzf1,f2,f3
1,abc,f
2,5,xyz
)rr rrr1�getvaluer}rrrr�test_write_multiple_dict_rows�s
�
�z,TestDictFields.test_write_multiple_dict_rowscCst�}|�ttj|�dSr	)rrrr r�r
rZrrr�test_write_no_fields�sz#TestDictFields.test_write_no_fieldsc
Cs�tddd��|}tj|dddgd�}|�t��}|�dd	d
d��W5QRXt|j�}|�d|�|�d
|�|�	d|�|�d|�W5QRXdS)NrRrrSrrrrr_Zspamr�)Zf4rrrz'f4'z'f2'r�)
rr rrr�rU�str�	exception�assertInZassertNotIn)r
rZr+Zcxr!rrr�#test_write_fields_not_in_fieldnames�s
z2TestDictFields.test_write_fields_not_in_fieldnamescCs$t�}|jttj|ddgdd�dS)NrrZraised�Zextrasaction)rrr�r rrrrr�&test_typo_in_extrasaction_raises_error�s�z5TestDictFields.test_typo_in_extrasaction_raises_errorcCs@t�}tj|ddgdd�}ddddd	�}|�ttjj||�dS)
Nrr�raiser$rrrar��Zf0rrr)rr rrr�rU�r
rZr+Zdictrowrrr�)test_write_field_not_in_field_names_raise�sz8TestDictFields.test_write_field_not_in_field_names_raisecCsJt�}tj|ddgdd�}ddddd	�}tj�||�|�|��d
�dS)Nrr�ignorer$rrrar�r'z1,2
)rr rrUr1rr(rrr�*test_write_field_not_in_field_names_ignore�s
z9TestDictFields.test_write_field_not_in_field_names_ignorec	CsXtd��F}|�d�|�d�tj|dddgd�}|�t|�dd	d
d��W5QRXdS)NrRz	1,2,abc
rrrrrr�r�r�r�rr(rVr �
DictReaderr1r��r
rZr&rrr�test_read_dict_fields�s


�z$TestDictFields.test_read_dict_fieldsc	Csbtd��P}|�d�|�d�t�|�}|�t|�dddd��|�|jdd	d
g�W5QRXdS)NrR�f1,f2,f3
1,2,abc
rr�r�r�rrrr)rr(rVr r-r1r�rr.rrr�test_read_dict_no_fieldnames�s



z+TestDictFields.test_read_dict_no_fieldnamesc	Csptd��^}|�d�|�d�tj|tt�|��d�}|�|jdddg�|�t|�dd	d
d��W5QRXdS)NrRr0rrrrrr�r�r�r)	rr(rVr r-r�r&r1rr.rrr�#test_read_dict_fieldnames_from_file�s


�z2TestDictFields.test_read_dict_fieldnames_from_filec	Cs�ddl}td��h}|�d�|�d�t�|�}t|�}|�|g|�D],}|�|j	dddg�|�|ddd	d
��qFW5QRXdS)NrrRr0rrrr�r�r�r)
�	itertoolsrr(rVr r-r��chainr1r)r
r3rZr&�firstr�rrr�test_read_dict_fieldnames_chain�s



z.TestDictFields.test_read_dict_fieldnames_chainc
Cs^td��L}|�d�|�d�tj|ddgd�}|�t|�ddd	d
ddgd
��W5QRXdS)NrR�1,2,abc,4,5,6
rrrrr�r�r�r�r�r�)rrNr,r.rrr�test_read_long�s


�
�zTestDictFields.test_read_longc
Cs`td��N}|�d�|�d�tj|ddgdd�}|�t|�dd	d
ddd
gd��W5QRXdS)NrRr7rrr�_rest)r�restkeyr�r�r�r�r�r��rrr9r,r.rrr�test_read_long_with_rest�s


�
�z'TestDictFields.test_read_long_with_restc
Csltd��Z}|�d�|�d�tj|dd�}|�|jddg�|�t|�dd	d
ddd
gd��W5QRXdS)NrRzf1,f2
1,2,abc,4,5,6
rr9�r:rrr�r�r�r�r�r�r;)rr(rVr r-r1rr�r.rrr�&test_read_long_with_rest_no_fieldnames�s



�z5TestDictFields.test_read_long_with_rest_no_fieldnamescCs|td��j}|�d�|�d�tj|d��dd�}|�t|�ddd	d
ddd
��|�t|�ddd	dddd
��W5QRXdS)NrRz1,2,abc,4,5,6
1,2,abc
r�1 2 3 4 5 6ZDEFAULT)rZrestvalr�r�r�r�r�r��r�r�r�r�r�r�)rr(rVr r-�splitr1r�r.rrr�test_read_short�s"


���zTestDictFields.test_read_shortc	Cs<dddg}tj|d��d�}|�t|�dddd	d
d��dS)Nz2147483648,43.0e12,17,abc,def
z147483648,43.0e2,17,abc,def
z47483648,43.0,170,abc,def
zi1 float i2 s1 s2rZ
2147483648z43.0e12Z17r�r�)Zi1�floatZi2�s1�s2�r r-rAr1r�)r
�sampler&rrr�test_read_multis���zTestDictFields.test_read_multic
CsXtjdddgd��d�}|�t|�ddddd	d
d��|�t|�ddddd	d
d��dS)Nr7r.r?rr�r�r�r�r�r�r@rF�r
r&rrr�test_read_with_blankss����z$TestDictFields.test_read_with_blanksc
Cs8tjdgd��dd�}|�t|�ddddd	d
d��dS)Nz1;2;abc;4;5;6
r?r�)rrr�r�r�r�r�r�r@rFrIrrr�test_read_semi_seps��z!TestDictFields.test_read_semi_sepN)rrrrrrrr#r%r)r+r/r1r2r6r8r<r>rBrHrJrKrrrrr
rs&

				
	r
c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestArrayWritesc	Cs�ddl}dd�td�D�}|�d|�}tddd��P}tj|d	d
�}|�|�d�dd�|D��d
}|�d�|�|�	�|�W5QRXdS)NrcSsg|]}d|�qS)�r��.0rbrrr�
<listcomp>"sz2TestArrayWrites.test_int_write.<locals>.<listcomp>rMrbrRrrSr�r�r-cSsg|]}t|��qSr�r rNrrrrP(sr.�
�arrayr�rr r+rU�joinrVr1rW�r
rS�contentsrmrZr+r�rrr�test_int_write s

zTestArrayWrites.test_int_writec	Cs�ddl}dd�td�D�}|�d|�}tddd��P}tj|d	d
�}|�|�d�dd�|D��d
}|�d�|�|�	�|�W5QRXdS)NrcSsg|]}d|d�qS�rMg�������?rrNrrrrP.sz5TestArrayWrites.test_double_write.<locals>.<listcomp>rMr|rRrrSr�r�r-cSsg|]}t|��qSrrQrNrrrrP3sr.rRrUrrr�test_double_write,s

z!TestArrayWrites.test_double_writec	Cs�ddl}dd�td�D�}|�d|�}tddd��P}tj|d	d
�}|�|�d�dd�|D��d
}|�d�|�|�	�|�W5QRXdS)NrcSsg|]}d|d�qSrXrrNrrrrP9sz4TestArrayWrites.test_float_write.<locals>.<listcomp>rMrrRrrSr�r�r-cSsg|]}t|��qSrrQrNrrrrP>sr.rRrUrrr�test_float_write7s

z TestArrayWrites.test_float_writec	Cszddl}ddl}|�d|j�}tddd��F}tj|dd�}|�|�d�|�d	}|�d�|�	|�
�|�W5QRXdS)
Nr�urRrrSr�r�r-r.)rS�string�
ascii_lettersrr r+rUrTrVr1rW)r
rSr\rmrZr+r�rrr�test_char_writeBs

zTestArrayWrites.test_char_writeN)rrrrWrYrZr^rrrrrLsrLc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestDialectValidityc	Cs�Gdd�dtj�}|�}|�|jtj�d|_|�tj|�d|_tj|_d|_	|�}|�|jtj�|�|j	d�|�
|j�d|_	|�tj��}|�W5QRX|�t|j�d�d|_	|�tj��}|�W5QRX|�t|j�d�dS)	Nc@s&eZdZdZdZdZdZdZej	Z
dS)z3TestDialectValidity.test_quoting.<locals>.mydialectr�rAFTr.N�rrrrr5r4r7rr rErrrrr�	mydialectOsraTr/z''z("quotechar" must be a 1-character stringr�z#"quotechar" must be string, not int)
r r�r1rrErr!r4r"r�
assertTruer r!�r
rar|�cmrrr�test_quotingNs0��z TestDialectValidity.test_quotingc	CsGdd�dtj�}|�}|�|jd�d|_|�tj��}|�W5QRX|�t|j�d�d|_|�tj��}|�W5QRX|�t|j�d�d|_|�tj��}|�W5QRX|�t|j�d�d	|_|�tj��}|�W5QRX|�t|j�d
�dS)Nc@s&eZdZdZdZdZdZdZej	Z
dS)z5TestDialectValidity.test_delimiter.<locals>.mydialectr�rAFTr.Nr`rrrrraqsrar��:::z("delimiter" must be a 1-character stringr�,z%"delimiter" must be string, not bytesr�z#"delimiter" must be string, not int)r r�r1rrr!r r!rcrrr�test_delimiterps6����z"TestDialectValidity.test_delimiterc	CszGdd�dtj�}|�}|�|jd�d|_|�}|�|jd�d|_|�tj��}|�W5QRX|�t|j�d�dS)Nc@s&eZdZdZdZdZdZdZej	Z
dS)z:TestDialectValidity.test_lineterminator.<locals>.mydialectr�rAFTr.Nr`rrrrra�srar.rfr�z!"lineterminator" must be a string)r r�r1rrr!r r!rcrrr�test_lineterminator�s�z'TestDialectValidity.test_lineterminatorc
Csvdd�}dD]d}|j|d��N|�tj||d�|�tj||d�|�tj||d�|�tj||d�W5QRXqdS)	NcSs(Gdd�dtj�}t|||�|�}dS)Nc@seZdZdS)zQTestDialectValidity.test_invalid_chars.<locals>.create_invalid.<locals>.mydialectN)rrrrrrrra�sra)r r�r;)�
field_name�valuerar|rrr�create_invalid�sz>TestDialectValidity.test_invalid_chars.<locals>.create_invalid)rr5r)rjrr��xr)�subTestrr r!)r
rlrjrrr�test_invalid_chars�sz&TestDialectValidity.test_invalid_charsN)rrrrerhrirorrrrr_Ms"#r_c@sheZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dd
�Zdd�Zdd�Zdd�Zdd�Zdd�ZdS)�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'
cCs:t��}|�|�|j�d�|�|�|j|j�d�dS�NFT)r �Snifferr3�
has_header�sample1�header1�r
�snifferrrr�test_has_header�szTestSniffer.test_has_headercCs:t��}|�|�|j�d�|�|�|j|j�d�dSrq)r rrr3rs�sample8�header2rvrrr�'test_has_header_regex_special_delimiter�sz3TestSniffer.test_has_header_regex_special_delimiterc
Cspt��}dD]^}|�|��J|�|d�}|�|jd�|�|jd�|�|jd�|�|j	d�W5QRXqdS)N)z	;'123;4';z'123;4';z;'123;4'z'123;4'z,;r��'F)
r rrrn�sniffr1rrr3r4r7)r
rw�headerr2rrr�test_guess_quote_and_delimiter�sz*TestSniffer.test_guess_quote_and_delimitercCsxt��}|�|j�}|�|jd�|�|jd�|�|jd�|�|j	�}|�|jd�|�|jd�|�|jd�dS)Nr-r/Tr0r|F)
r rrr}rtr1rrr3r7�sample2�r
rwr2rrr�
test_sniff�szTestSniffer.test_sniffcCst��}|�|j�}|�|j|j�|j|jdd�}|�|jd�|j|jdd�}|�|jd�|�|j�}|�|jd�|�|j�}|�|jd�|�|j	�}|�|jd�|�|j
�}|�|jd�|�|jd	�|�|j�}|�|jd
�|�|j
�}|�|jd
�|�|jd	�dS)Nz?,)Z
delimiters�?z/,�/r�r�r�r|�+)r rrr}�sample3r"rr1�sample4�sample5�sample6�sample7rry�sample9r�rrr�test_delimiters	s*zTestSniffer.test_delimiterscCs�t��}|�|j�}|�|j�|�|j�}|�|j�|�|j�}|�|j�|�|j	�}|�|j�|�|j
�}|�|j�dSr	)r rrr}ruZassertFalser4rzr�rbryr�r�rrr�test_doublequote#szTestSniffer.test_doublequoteN)rrrrtr�rur�r�r�r�r�rzryr�rxr{rr�r�r�rrrrrp�s"
rpc@seZdZdd�ZeZdS)�NULcGsdSr	r)�sr<rrrr(1sz	NUL.writeN)rrrr(�
writelinesrrrrr�0sr��gettotalrefcountzrequires sys.gettotalrefcount()c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	TestLeakscCsxd}t��}td�D]R}t��|�tjg�t��}t�dg�t�dg�t�dg�||}|}q|�	|d�dS)NrrM�a,b,c
r��
�sysr�r��gc�collectr1�garbager r&�
assertLess)r
�delta�lastrcrb�rcrrr�test_create_read8szTestLeaks.test_create_readcCsxd}t��}t�}td�D]L}t��|�tjg�t��}t�	|�t�	|�t�	|�||}|}q|�
|d�dS)NrrMr�)r�r�r�r�r�r�r1r�r r+r�)r
r�r�r�rbr�rrr�test_create_writeGs


zTestLeaks.test_create_writecCsrd}dgd}t��}td�D]B}t��|�tjg�t��}t�|�}|D]}qN||}|}q|�	|d�dS)Nrr�rrMr�)r
r�r�r�rbr�Zrdrr�rrr�	test_readWs

zTestLeaks.test_readc	Cs�d}dddggd}t�}t��}td�D]L}t��|�tjg�t��}t�	|�}|D]}|�
|�qZ||}|}q*|�|d�dS)Nrrrar�rrM)r�r�r�r�r�r�r1r�r r+rUr�)	r
r�r�r�r�rbr�r+r�rrr�
test_writegs
zTestLeaks.test_writeN)rrrr�r�r�r�rrrrr�5sr�c@s(eZdZddddgZdd�Zdd�Zd	S)
�TestUnicodeuMartin von LöwisuMarc André LemburgzGuido van RossumuFrançois Pinardc	Cs\tdddd��D}|�d�|j�d�|�d�t�|�}|�t|�|jg�W5QRXdS�NrRrr�r�r-r.r)	rr(rT�namesrVr r&r1r�r.rrr�test_unicode_reads


zTestUnicode.test_unicode_readc	Cs^tdddd��F}t�|�}|�|j�d�|j�d}|�d�|�|��|�W5QRXdSr�)	rr r+rUr�rTrVr1rW)r
rZr+r�rrr�test_unicode_write�s

zTestUnicode.test_unicode_writeN)rrrr�r�r�rrrrr�xs�r�c@seZdZdd�Zdd�ZdS)�KeyOrderingTestc
Cs�t�}td�D]f}tdddd��N}t�||�}|��|�d�t�|�}t|j	�}|�
||�|�|�W5QRXq|�
t|�dd�dS)	NZabcderRrr�r�r�xz@Key ordering: some key permutations not collected (expected 120))
�setrrr rrrVr-�tuplerr1�add�len)r
Z	resultset�keysZ
fileobjectZdwZdrZktrrr�,test_ordering_for_the_dict_reader_and_writer�s


z<KeyOrderingTest.test_ordering_for_the_dict_reader_and_writerc
Cs�td���}|�tt�|��tddg�tdddddgfg�tdd	g�td
dg�g�|�ttj|dd
��tddg�tdddddgfg�tdd	g�td
dg�g�|d=|�ttj|ddgd��tddg�tdddddgfg�tddg�tddg�g�dS)Nz�            FirstName,LastName
            Eric,Idle
            Graham,Chapman,Over1,Over2

            Under1
            John,Cleese
        )�	FirstName�Eric)�LastName�Idle)r��Graham)r��ChapmanZOver1ZOver2)r��Under1)r�N)r��John)r��CleeseZ	OtherInfor=r�fname�lnamer)r�r�)r�r�)r�r�)r�r�)r�r�)r�N)r�r�)r�r�)r�
splitlinesr1r�r r-r)r
�datarrr�test_ordered_dict_reader�s:	

�

��

�

��

�

��z(KeyOrderingTest.test_ordered_dict_readerN)rrrr�r�rrrrr��sr�c@seZdZdd�ZdS)�MiscTestCasecCsddh}tj|td|d�dS)N�__doc__�__version__)r Z_csv)�extra)rZcheck__all__r )r
r�rrr�test__all__�szMiscTestCase.test__all__N)rrrr�rrrrr��sr��__main__)+r�r�Zunittest�ior�tempfilerr r�r��testrr3r�textwrapr�collectionsrrZTestCaserr�r�r�r�rrrr
rr
rLr_rpr�Z
skipUnless�hasattrr�r�r�r�r�mainrrrr�<module>sL^ka			..jy�A4


F1le Man4ger