Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_csv.cpython-39.opt-2.pyc

a

��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�)/usr/local/lib/python3.9/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�}||i|��}|�|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_attrscKsntddd��N}tj|fi|��}|�|�|�d�|�|��||jj�Wd�n1s`0YdS�N�w+r��newliner)	rr r+�writerow�seekr1�readr2r)r
�fields�expectrF�fileobjr+rrr�_write_test�s



�zTest_Csv._write_testc	Ks�tddd��p}tj|fi|��}|�|��|�|�Wd�n1sJ0Y|�d�|�|��d�Wd�n1s�0YdSrQ)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�|�gd�d�|jtjgd�tjd�|jgd�dtjd�|jgd�dtjd�|jgd�dtjd�|jddgdtjd�dS)	N��arzp,q�	a,1,"p,q"rz"a",1,"p,q"z
"a","1","p,q"�a
brz	"a
b","1")r[r]r r!rEr6�QUOTE_NONNUMERICr"rrrr�test_write_quoting�s �����zTest_Csv.test_write_quotingcCs�|jgd�ddd�|jtjgd�ddd�|jgd�dddd�|jd	gd
dtjd�|jd	gddtjdd
�|jd	gddtjd�|jgd�ddtjd�dS)NrmrorA�r5)rnrzp,"q"F)r5r4z
a,1,"p,\"q\""r/�"""")r5rz\")r5rr4za,1,p\,q)r[r]r r!r6rErrrr�test_write_escape�s,���
�
�
��zTest_Csv.test_write_escapecCs||�tgd��d�|�tgd��d�|�tg�d�|�tdg�d�|jtjtdg�tjd�|�tddg�d�dS)	Nrmro)rnrNza,1,rr^rr-)r[�iterr]r r!rErrrr�test_write_iterable�szTest_Csv.test_write_iterablecCs�Gdd�d�}t�|��}|�t|jdgg�tddd��Z}t�|�}|�t|jd�|�ddgdd	gg�|�d
�|�|�	�d�Wd�n1s�0YdS)Nc@seZdZdd�ZdS)z+Test_Csv.test_writerows.<locals>.BrokenFilecSst�dSr	r
)r
�bufrrrr(�sz1Test_Csv.test_writerows.<locals>.BrokenFile.writeN)rrrr(rrrr�
BrokenFile�sryrnrRrrS�b�c�drz
a,b
c,d
)
r r+rr�	writerowsrrrVr1rW)r
ryr+rZrrr�test_writerows�s

zTest_Csv.test_writerowscCs0tddd��J}t�|�}|�ddgddgg�|�d�|�|��d�Wd�n1s\0Ytddd��F}t�|�}|�dgdgg�|�d�|�|��d�Wd�n1s�0Ytddd��F}t�|�}|�dgdgg�|�d�|�|��d	�Wd�n1�s"0YdS)
NrRrrSrnr|rza,
,d
z""
a
za
""
)rr r+r}rVr1rW�r
rZr+rrr�test_writerows_with_none�s

.

.

z!Test_Csv.test_writerows_with_nonecCs\tddd��<}t�|�}|�t|jd�|�t|jt��Wd�n1sN0YdS)NrRrrS)rr r+rrr}rrrrrr�test_writerows_errors�s
zTest_Csv.test_writerows_errorscCstddl}|�d�}tddd��B}t�|�}|�|gg�|�d�|�|��d�Wd�n1sf0YdS)NrrnrRrrSza
)	�	_testcapiZunicode_legacy_stringrr r+r}rVr1rW)r
r�r{rZr+rrr�test_writerows_legacy_strings�s


z&Test_Csv.test_writerows_legacy_stringscKs*tj|fi|��}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,brnrzza,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,"rnrz"arK�
rsTr�)r5r8r�rrrr�
test_read_eof#s
�zTest_Csv.test_read_eofcCs�|jdggd�gdd�|jdgddggdd�|jdgddggdd�|jd	gddggdd�|jd
gddggdd�|jdgdd
ggdd�dS)Nza,\b,c)rnrzr{rArsza,b\,crnzb,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�|�dggd�g�|jdggd�gddd�|jdggd�gtjdd�|jdggd�gtjd	�|�d
gddgg�|jt|jd
gggtjd	�dS)Nz	1,",3,",5)�1z,3,�5)r�r/�3r/r�rA)rr5�rr5z
,3,"5",7.3, 9)r�r�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�Wt�|�nt�|�0dS)Nrirhrjr)r Zfield_size_limitr�r1rr!r)r
�limit�sizerkZbiglinerrr�test_read_bigfieldBs
zTest_Csv.test_read_bigfieldcCs~t�gd��}|�|jd�t|�|�|jd�t|�|�|jd�t|�|�|jd�|�tt|�|�|jd�dS)N)zline,1zline,2zline,3rrrar�)r r&r1Zline_num�nextr�
StopIteration)r
�rrrr�test_read_linenumUszTest_Csv.test_read_linenumcCs�tddd��f}t�|�}ddgddgg}|�|�|�d�tt�|��D]\}}|�|||�qJWd�n1sx0YdS)	NrRrrSrprzr{�x
dr)rr r+r}rV�	enumerater&r1�r
rZr+�rowsrb�rowrrr�test_roundtrip_quoteed_newlinesas


z(Test_Csv.test_roundtrip_quoteed_newlinescCs�tddd��v}tj|tjdd�}ddgdd	gg}|�|�|�d
�ttj|tjdd��D]\}}|�|||�qZWd�n1s�0YdS)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_registrycCsXd}tj|dd�|�tj|�|�t�|�jd�|�gd�gtt�dg|���dS)NZfedcba�;r)rh�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_dialectcCs�Gdd�dtj�}td��\}|�d�|�d�tj||�d�}|�t|�ddg�|�t|�d	d
g�Wd�n1s|0YdS)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_dialectcOsrtdddd��P}tj|g|�Ri|��}|�gd��|�d�|�|��|�Wd�n1sd0YdS)NrRr�utf-8�rT�encoding�rrar�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�}Gd	d
�d
�}t�d|�z||�d�|jddd�|jd|d�|�d
|�|jd|�d�|jddd�|jd|dd�|jd|d�Wt�d�nt�d�0dS)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�c@seZdZdS)z;TestDialectRegistry.test_dialect_apply.<locals>.unspecifiedN�rrrrrrr�unspecified�sr�z1,2,3
r�z1	2	3
z1:2:3
z1|2|3
z1;2;3
r�)r2ru	1Λ2Λ3
)r 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)�TestCsvBasecCshtddd��H}|�|�|�d�tj||jd�}t|�}|�||�Wd�n1sZ0YdS)NrRrrSrr�)rr(rVr r&r2r�r1)r
r��expected_resultrZr&rXrrr�readerAssertEqual�s

zTestCsvBase.readerAssertEqualcCsdtddd��D}tj||jd�}|�|�|�d�|�|��|�Wd�n1sV0YdS)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|�dgd�g�dS)Nz	1,2,3,4,5)r��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_fieldssz"TestDialectExcel.test_empty_fieldscCs|�ddgg�dS)Nr^rr�rrrr�test_singlequotedsz"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_empty	sz.TestDialectExcel.test_singlequoted_right_emptycCs|�ddgg�dS)Nrtr/r�rrrr�test_single_quoted_quotesz)TestDialectExcel.test_single_quoted_quotecCs|�ddgg�dS)Nz""""""r^r�rrrr�test_quoted_quotessz#TestDialectExcel.test_quoted_quotescCs|�ddgg�dS)Nza""br�rrrr�test_inline_quotesz"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_quote sz%TestDialectExcel.test_quote_and_quotecCs|�ddgg�dS)Nz "a"r�rrrr�test_space_and_quote%sz%TestDialectExcel.test_space_and_quotecCs|�dgd�g�dS)Nz#1,2,3,"I think, therefore I am",5,6)r�r�r�zI think, therefore I amr��6r�rrrr�test_quoted(s�zTestDialectExcel.test_quotedcCs|�dgd�g�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}|�|gd�gd�g�dS)NzR1,2,3,"""I see,""
said the blind man","as he picked up his
hammer and saw"
9,8,7,6)r�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_nl4s��zTestDialectExcel.test_quoted_nlcCs|�dgd�g�dS)Nz	12,12,1",)�12r�z1"rr�rrrr�test_dubious_quote@sz#TestDialectExcel.test_dubious_quotecCs|�gd�dSr��r�rrrr�	test_nullCszTestDialectExcel.test_nullcCs|�dggd�dS)Nr�zabc
r�rrrr�test_single_writerFsz#TestDialectExcel.test_single_writercCs|�gd�gd�dS)N)rrar�r��z
1,2,abc,3,4
r�rrrr�test_simple_writerIsz#TestDialectExcel.test_simple_writercCs|�gd�gd�dS)N)rraza"bc"r�r�z1,2,"a""bc""",3,4
r�rrrr�test_quotesLszTestDialectExcel.test_quotescCs|�dggd�dS�N�abc,defz"abc,def"
r�rrrr�test_quote_fieldsepOsz$TestDialectExcel.test_quote_fieldsepcCs|�gd�gd�dS)N)rraza
bcr�r�z1,2,"a
bc",3,4
r�rrrr�
test_newlinesRszTestDialectExcel.test_newlinesN)rrrr2r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr��s4r�c@seZdZejZdZdS)�EscapedExcelrAN)rrrr rErr5rrrrrUsrc@s"eZdZe�Zdd�Zdd�ZdS)�TestEscapedExcelcCs|�dggd�dS)Nr�
abc\,def
r�rrrr�test_escape_fieldsep\sz%TestEscapedExcel.test_escape_fieldsepcCs|�ddgg�dS)Nrrr�rrrr�test_read_escape_fieldsep_sz*TestEscapedExcel.test_read_escape_fieldsepN)rrrrr2rr	rrrrrYsrc@s eZdZdZdd�Zdd�ZdS)�TestDialectUnixZunixcCs|�gd�gd�dS)N)r�abc defr��"1","abc def","abc"
r�rrrrr�esz"TestDialectUnix.test_simple_writercCs|�dgd�g�dS)Nr)r�rr�r�rrrr�test_simple_readerhsz"TestDialectUnix.test_simple_readerN)rrrr2r�r
rrrrr
bsr
c@seZdZejZdZdS)�QuotedEscapedExcelrAN)rrrr rqrr5rrrrrksrc@s"eZdZe�Zdd�Zdd�ZdS)�TestQuotedEscapedExcelcCs|�dggd�dSrr�rrrr�test_write_escape_fieldseprsz1TestQuotedEscapedExcel.test_write_escape_fieldsepcCs|�ddgg�dS)Nz"abc\,def"
rr�rrrrr	usz0TestQuotedEscapedExcel.test_read_escape_fieldsepN)rrrrr2rr	rrrrrosrc@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)(�TestDictFieldscCsVtddd��6}tj|gd�d�}|��}|�|d�Wd�n1sH0YdS)NrRrrS��f1�f2�f3��
fieldnamesr_)rr �
DictWriter�writeheaderr1)r
rZr+Zwriteheader_return_valuerrr�test_writeheader_return_value{sz,TestDictFields.test_writeheader_return_valuecCs�tddd��v}tj|gd�d�}|��|�d�|�|��d�|�dd	d
��|�d�|��|�|��d�Wd�n1s�0YdS)NrRrrSrrr�
f1,f2,f3
r_r�)rrz	10,,abc
)	rr rrrVr1�readlinerUrWrrrr�test_write_simple_dict�s

z%TestDictFields.test_write_simple_dictcCsbt�}tj|gd�d�}|��|�|��d�|�dddd�ddd	d�g�|�|��d
�dS)Nrrrrr��fra�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|gd�d�}|�t��"}|�dddd	��Wd�n1sR0Yt|j�}|�d
|�|�d|�|�	d|�|�d
|�Wd�n1s�0YdS)NrRrrSrrr_Zspamr�)Zf4rrrz'f4'z'f2'r�)
rr rrr�rU�str�	exception�assertInZassertNotIn)r
rZr+Zcxr%rrr�#test_write_fields_not_in_fieldnames�s0
z2TestDictFields.test_write_fields_not_in_fieldnamescCs$t�}|jttj|ddgdd�dS)NrrZraised�Zextrasaction)rrr�r rr"rrr�&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 rrUr1r r,rrr�*test_write_field_not_in_field_names_ignore�s
z9TestDictFields.test_write_field_not_in_field_names_ignorecCsjtd��N}|�d�|�d�tj|gd�d�}|�t|�dddd��Wd�n1s\0YdS)	NrRz	1,2,abc
rrrr�r�r��rr(rVr �
DictReaderr1r��r
rZr&rrr�test_read_dict_fields�s


�z$TestDictFields.test_read_dict_fieldscCsttd��X}|�d�|�d�t�|�}|�t|�dddd��|�|jgd��Wd�n1sf0YdS)NrR�f1,f2,f3
1,2,abc
rr�r�r�r)rr(rVr r1r1r�rr2rrr�test_read_dict_no_fieldnames�s



z+TestDictFields.test_read_dict_no_fieldnamescCs�td��f}|�d�|�d�tj|tt�|��d�}|�|jgd��|�t|�dddd��Wd�n1st0YdS)	NrRr4rrrr�r�r�)	rr(rVr r1r�r&r1rr2rrr�#test_read_dict_fieldnames_from_file�s


�z2TestDictFields.test_read_dict_fieldnames_from_filec	Cs�ddl}td��p}|�d�|�d�t�|�}t|�}|�|g|�D]*}|�|j	gd��|�|dddd��qFWd�n1s�0YdS)NrrRr4rr�r�r�)
�	itertoolsrr(rVr r1r��chainr1r)r
r7rZr&�firstr�rrr�test_read_dict_fieldnames_chain�s



z.TestDictFields.test_read_dict_fieldnames_chaincCsntd��R}|�d�|�d�tj|ddgd�}|�t|�ddgd	�d
��Wd�n1s`0YdS)NrR�1,2,abc,4,5,6
rrrrr�r��r�r�r�r�)rrNr0r2rrr�test_read_long�s


��zTestDictFields.test_read_longcCsptd��T}|�d�|�d�tj|ddgdd�}|�t|�dd	gd
�d��Wd�n1sb0YdS)NrRr;rrr�_rest)r�restkeyr�r�r<�rrr>r0r2rrr�test_read_long_with_rest�s


��z'TestDictFields.test_read_long_with_restcCs|td��`}|�d�|�d�tj|dd�}|�|jddg�|�t|�dd	gd
�d��Wd�n1sn0YdS)NrRzf1,f2
1,2,abc,4,5,6
rr>�r?rrr�r�r<r@)rr(rVr r1r1rr�r2rrr�&test_read_long_with_rest_no_fieldnames�s


�z5TestDictFields.test_read_long_with_rest_no_fieldnamescCs�td��t}|�d�|�d�tj|d��dd�}|�t|�ddd	d
ddd
��|�t|�ddd	dddd
��Wd�n1s�0YdS)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 r1�splitr1r�r2rrr�test_read_short�s


���zTestDictFields.test_read_shortc	Cs:gd�}tj|d��d�}|�t|�dddddd	��dS)
N)z2147483648,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 r1rFr1r�)r
�sampler&rrr�test_read_multis��zTestDictFields.test_read_multic
CsVtjgd�d��d�}|�t|�dddddd	d
��|�t|�dddddd	d
��dS)N)r;r.r;rDrr�r�r�r�r�r�rErK�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
rDr�)rrr�r�r�r�r�r�rErKrNrrr�test_read_semi_seps��z!TestDictFields.test_read_semi_sepN)rrrrrr!r#r'r)r-r/r3r5r6r:r=rArCrGrMrOrPrrrrrxs&

				
	rc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestArrayWritescCs�ddl}dd�td�D�}|�d|�}tddd��Z}tj|d	d
�}|�|�d�dd�|D��d
}|�d�|�|�	�|�Wd�n1s�0YdS)NrcSsg|]}d|�qS)�r��.0rbrrr�
<listcomp>(�z2TestArrayWrites.test_int_write.<locals>.<listcomp>rRrbrRrrSr�r�r-cSsg|]}t|��qSr�r$rSrrrrU.rVr.�
�arrayr�rr r+rU�joinrVr1rW�r
rY�contentsrnrZr+r�rrr�test_int_write&s

zTestArrayWrites.test_int_writecCs�ddl}dd�td�D�}|�d|�}tddd��Z}tj|d	d
�}|�|�d�dd�|D��d
}|�d�|�|�	�|�Wd�n1s�0YdS)NrcSsg|]}d|d�qS�rRg�������?rrSrrrrU4rVz5TestArrayWrites.test_double_write.<locals>.<listcomp>rRr|rRrrSr�r�r-cSsg|]}t|��qSrrWrSrrrrU9rVr.rXr[rrr�test_double_write2s

z!TestArrayWrites.test_double_writecCs�ddl}dd�td�D�}|�d|�}tddd��Z}tj|d	d
�}|�|�d�dd�|D��d
}|�d�|�|�	�|�Wd�n1s�0YdS)NrcSsg|]}d|d�qSr^rrSrrrrU?rVz4TestArrayWrites.test_float_write.<locals>.<listcomp>rRrrRrrSr�r�r-cSsg|]}t|��qSrrWrSrrrrUDrVr.rXr[rrr�test_float_write=s

z TestArrayWrites.test_float_writecCs�ddl}ddl}|�d|j�}tddd��P}tj|dd�}|�|�d�|�d	}|�d�|�	|�
�|�Wd�n1s�0YdS)
Nr�urRrrSr�r�r-r.)rY�string�
ascii_lettersrr r+rUrZrVr1rW)r
rYrbrnrZr+r�rrr�test_char_writeHs

zTestArrayWrites.test_char_writeN)rrrr]r_r`rdrrrrrQ%srQc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestDialectValiditycCsGdd�dtj�}|�}|�|jtj�d|_|�tj|�d|_tj|_d|_	|�}|�|jtj�|�|j	d�|�
|j�d|_	|�tj��}|�Wd�n1s�0Y|�t|j�d�d|_	|�tj��}|�Wd�n1s�0Y|�t|j�d�dS)	Nc@s&eZdZdZdZdZdZdZej	Z
dS)z3TestDialectValidity.test_quoting.<locals>.mydialectr�rAFTr.N�rrrrr5r4r7rr rErrrrr�	mydialectUsrgTr/z''z("quotechar" must be a 1-character stringr�z+"quotechar" must be string or None, not int)
r r�r1rrErr!r4r"r�
assertTruer$r%�r
rgr|�cmrrr�test_quotingTs0$�$�z TestDialectValidity.test_quotingcCs�Gdd�dtj�}|�}|�|jd�d|_|�tj��}|�Wd�n1sT0Y|�t|j�d�d|_|�tj��}|�Wd�n1s�0Y|�t|j�d�d|_|�tj��}|�Wd�n1s�0Y|�t|j�d�d	|_|�tj��}|�Wd�n1�s40Y|�t|j�d
�d|_|�tj��}|�Wd�n1�s�0Y|�t|j�d�dS)Nc@s&eZdZdZdZdZdZdZej	Z
dS)z5TestDialectValidity.test_delimiter.<locals>.mydialectr�rAFTr.Nrfrrrrrgwsrgr��:::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 r�r1rrr!r$r%rirrr�test_delimitervsB$�$�$�&�&�z"TestDialectValidity.test_delimitercCs�Gdd�dtj�}|�}|�|jd�d|_|�tjd��|�Wd�n1sV0Yd|_|�tjd��|�Wd�n1s�0Yd|_|�tjd	��|�Wd�n1s�0YdS)
Nc@s&eZdZdZdZdZdZdZej	Z
dS)z6TestDialectValidity.test_escapechar.<locals>.mydialectr�rAFTr.Nrfrrrrrg�srgrAz**z)"escapechar" must be a 1-character string�*z."escapechar" must be string or None, not bytesr�z,"escapechar" must be string or None, not int)r r�r1r5ZassertRaisesRegexr!)r
rgr|rrr�test_escapechar�s$$z#TestDialectValidity.test_escapecharcCs�Gdd�dtj�}|�}|�|jd�d|_|�}|�|jd�d|_|�tj��}|�Wd�n1sn0Y|�t|j�d�dS)Nc@s&eZdZdZdZdZdZdZej	Z
dS)z:TestDialectValidity.test_lineterminator.<locals>.mydialectr�rAFTr.Nrfrrrrrg�srgr.rlr�z!"lineterminator" must be a string)r r�r1rrr!r$r%rirrr�test_lineterminator�s$�z'TestDialectValidity.test_lineterminatorc	Cs�dd�}dD]x}|j|d��X|�tj||d�|�tj||d�|�tj||d�|�tj||d�Wd�q1sz0YqdS)	NcSs(Gdd�dtj�}t|||�|�}dS)Nc@seZdZdS)zQTestDialectValidity.test_invalid_chars.<locals>.create_invalid.<locals>.mydialectNr�rrrrrg�srg)r r�r;)�
field_name�valuergr|rrr�create_invalid�sz>TestDialectValidity.test_invalid_chars.<locals>.create_invalid)rr5r)rrrr��xr)�subTestrr r!)r
rtrrrrr�test_invalid_chars�sz&TestDialectValidity.test_invalid_charsN)rrrrkrnrprqrwrrrrreSs
")rec@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�dSry)r rzr3r{�sample8�header2r~rrr�'test_has_header_regex_special_delimitersz3TestSniffer.test_has_header_regex_special_delimiterc	Cs�t��}dD]r}|�|��T|�|d�}|�|jd�|�|jd�|�|jd�|�|j	d�Wd�q1st0YqdS)N)z	;'123;4';z'123;4';z;'123;4'z'123;4'z,;r��'F)
r rzrv�sniffr1rrr3r4r7)r
r�headerr2rrr�test_guess_quote_and_delimitersz*TestSniffer.test_guess_quote_and_delimitercCsxt��}|�|j�}|�|jd�|�|jd�|�|jd�|�|j	�}|�|jd�|�|jd�|�|jd�dS)Nr-r/Tr0r�F)
r rzr�r|r1rrr3r7�sample2�r
rr2rrr�
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 rzr��sample3r&rr1�sample4�sample5�sample6�sample7rr��sample9r�rrr�test_delimiters,s*zTestSniffer.test_delimiterscCs�t��}|�|j�}|�|j�|�|j�}|�|j�|�|j�}|�|j�|�|j	�}|�|j�|�|j
�}|�|j�dSr	)r rzr�r}ZassertFalser4r�r�rhr�r�r�rrr�test_doublequoteFszTestSniffer.test_doublequoteN)rrrr|r�r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrx�s"
rxc@seZdZdd�ZeZdS)�NULcGsdSr	r)�sr<rrrr(Tsz	NUL.writeN)rrrr(�
writelinesrrrrr�Ssr��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)NrrR�a,b,c
r��
�sysr�r��gc�collectr1�garbager r&�
assertLess)r
�delta�lastrcrb�rcrrr�test_create_read[szTestLeaks.test_create_readcCsxd}t��}t�}td�D]L}t��|�tjg�t��}t�	|�t�	|�t�	|�||}|}q|�
|d�dS)NrrRr�)r�r�r�r�r�r�r1r�r r+r�)r
r�r�r�rbr�rrr�test_create_writejs


zTestLeaks.test_create_writecCsrd}dgd}t��}td�D]B}t��|�tjg�t��}t�|�}|D]}qN||}|}q|�	|d�dS)Nrr�rrRr�)r
r�r�r�rbr�Zrdrr�rrr�	test_readzs

zTestLeaks.test_readc	Cs�d}gd�gd}t�}t��}td�D]L}t��|�tjg�t��}t�	|�}|D]}|�
|�qX||}|}q(|�|d�dS)Nrr�rrR)r�r�r�r�r�r�r1r�r r+rUr�)	r
r�r�r�r�rbr�r+r�rrr�
test_write�s
zTestLeaks.test_writeN)rrrr�r�r�r�rrrrr�Xsr�c@s$eZdZgd�Zdd�Zdd�ZdS)�TestUnicode)uMartin von LöwisuMarc André LemburgzGuido van RossumuFrançois PinardcCsptdddd��N}|�d�|j�d�|�d�t�|�}|�t|�|jg�Wd�n1sb0YdS�NrRrr�r�r-r.r)	rr(rZ�namesrVr r&r1r�r2rrr�test_unicode_read�s


zTestUnicode.test_unicode_readcCsrtdddd��P}t�|�}|�|j�d�|j�d}|�d�|�|��|�Wd�n1sd0YdSr�)	rr r+rUr�rZrVr1rW)r
rZr+r�rrr�test_unicode_write�s

zTestUnicode.test_unicode_writeN)rrrr�r�r�rrrrr��sr�c@seZdZdd�Zdd�ZdS)�KeyOrderingTestc	Cs�t�}td�D]z}tdddd��X}t�||�}|��|�d�t�|�}t|j	�}|�
||�|�|�Wd�q1s~0Yq|�
t|�dd�dS)	NZabcderRrr�r�r�xz@Key ordering: some key permutations not collected (expected 120))
�setrrr rrrVr1�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	OtherInforBr�fname�lnamer)r�r�)r�r�)r�r�)r�r�)r�r�)r�N)r�r�)r�r�)r�
splitlinesr1r�r r1r)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��testrr7r�textwrapr�collectionsrrZTestCaserr�r�r�r�rrr
rrrrQrerxr�Z
skipUnless�hasattrr�r�r�r�r�mainrrrr�<module>sN^qa			..y�A4


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