Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/__pycache__/test_csv.cpython-34.pyo

�
f f��@s7ddlZddlZddlZddlZddlmZddlmZddlZddlZddl	m
Z
Gdd�dej�ZGdd�dej�Z
Gd	d
�d
ej�ZGdd�de�ZGd
d�dej�ZGdd�de�ZGdd�de�ZGdd�dej�ZGdd�de�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd �d �Zejeed!�d"�Gd#d$�d$ej��ZGd%d&�d&ej�Zd'd(�Ze d)kr3e�ndS)*�N)�StringIO)�
TemporaryFile)�supportc@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'�Zejd(d)��Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Z d8d9�Z!d:d;�Z"d<d=�Z#d>S)?�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.
    cCse|jt|�|jt|d�|jt||dd�|jt||dd�|jt||dd�|jtj||d�|jt||dd�|jt||dd�|jt||dd�|jt||dd�|jt||dd�|jt||d	d�|jt||d	tjdd
�|jt||d	tjdd�dS)N�bad_attrr�	delimiterZXXZfoo��	quotechar�lineterminator�quoting�)�assertRaises�	TypeError�csv�Error�	QUOTE_ALL)�self�ctor�arg�r�2/opt/alt/python34/lib64/python3.4/test/test_csv.py�_test_arg_valids zTest_Csv._test_arg_validcCs|jtjg�dS)N)rr�reader)rrrr�test_reader_arg_valid&szTest_Csv.test_reader_arg_validcCs|jtjt��dS)N)rr�writerr)rrrr�test_writer_arg_valid)szTest_Csv.test_writer_arg_validcGs-||�}|j|jjd�|j|jjd�|j|jjd�|j|jjd�|j|jjd�|j|jjtj	�|j|jj
d�|j|jjd�|jt
t|jd�|jt
t|jdd�|jt
t|jd�|jt
t|jdd�dS)	N�,Tz
�"Fr�:r)�assertEqual�dialectr�doublequote�
escapecharr
r	rr�
QUOTE_MINIMAL�skipinitialspace�strictr
�AttributeError�delattr�setattr)rr�args�objrrr�_test_default_attrs,szTest_Csv._test_default_attrscCs|jtjg�dS)N)r+rr)rrrr�test_reader_attrs>szTest_Csv.test_reader_attrscCs|jtjt��dS)N)r+rrr)rrrr�test_writer_attrsAszTest_Csv.test_writer_attrscGstddddddddd	d
dtjdd
dd
�}|||�}|j|jjd�|j|jjd�|j|jjd�|j|jjd�|j|jj	d
�|j|jj
tj�|j|jjd
�|j|jjd
�dS)Nrrr!Fr"�\r
�
r	�*rr$Tr%)
�dictr�
QUOTE_NONErr rr!r"r
r	rr$r%)rrr)�kwargsr*rrr�_test_kw_attrsDs	zTest_Csv._test_kw_attrscCs|jtjg�dS)N)r4rr)rrrr�test_reader_kw_attrsTszTest_Csv.test_reader_kw_attrscCs|jtjt��dS)N)r4rrr)rrrr�test_writer_kw_attrsWszTest_Csv.test_writer_kw_attrscGs�Gdd�d�}||f}||�}|j|jjd�|j|jjd�|j|jjd�|j|jjd�|j|jjd�|j|jjtj	�|j|jj
d�|j|jjd�dS)	Nc@sCeZdZdZdZdZdZdZej	Z
dZdZdS)z-Test_Csv._test_dialect_attrs.<locals>.dialect�-F�^�$�#TN)
�__name__�
__module__�__qualname__rr!r"r
r	rrrr$r%rrrrr \s	r r7Fr8r9r:T)rr rr!r"r
r	rrrr$r%)rrr)r r*rrr�_test_dialect_attrsZs	
zTest_Csv._test_dialect_attrscCs|jtjg�dS)N)r>rr)rrrr�test_reader_dialect_attrspsz"Test_Csv.test_reader_dialect_attrscCs|jtjt��dS)N)r>rrr)rrrr�test_writer_dialect_attrsssz"Test_Csv.test_writer_dialect_attrscKsktddd��S}tj||�}|j|�|jd�|j|j�||jj�WdQXdS)Nzw+�newlinerr)	rrr�writerow�seekr�readr r
)r�fields�expectr3�fileobjrrrr�_write_testws

zTest_Csv._write_testcKswtddd��_}tj||�}|j|��|j|�WdQX|jd�|j|j�d�WdQXdS)Nzw+rArr)rrrr
rBrCrrD)r�excrEr3rGrrrr�_write_error_tests
zTest_Csv._write_error_testcCs�|jtjd�|jfd�|jdgd�|jtjdgdtj�Gdd�d�}|jt|��Gdd�d�}|jt|�g�dS)Nrz""rc@s(eZdZdd�Zdd�ZdS)z.Test_Csv.test_write_arg_valid.<locals>.BadListcSsdS)N�
r)rrrr�__len__�sz6Test_Csv.test_write_arg_valid.<locals>.BadList.__len__cSs|dkrt�ndS)N�)�OSError)r�irrr�__getitem__�sz:Test_Csv.test_write_arg_valid.<locals>.BadList.__getitem__N)r;r<r=rLrPrrrr�BadList�srQc@seZdZdd�ZdS)z.Test_Csv.test_write_arg_valid.<locals>.BadItemcSs
t�dS)N)rN)rrrr�__str__�sz6Test_Csv.test_write_arg_valid.<locals>.BadItem.__str__N)r;r<r=rRrrrr�BadItem�srS)rJrrrHr2rN)rrQrSrrr�test_write_arg_valid�szTest_Csv.test_write_arg_validcCs.dd}|j||gd||f�dS)N�XiP�z%s,%s)rH)r�	bigstringrrr�test_write_bigfield�s
zTest_Csv.test_write_bigfieldcCs�|jdddgd�|jtjdddgdtj�|jdddgddtj�|jdddgddtj�|jdddgddtj�|jddgd	dtj�dS)
N�arzp,qz	a,1,"p,q"rz"a",1,"p,q"z
"a","1","p,q"za
bz	"a
b","1")rHrJrrr2r#�QUOTE_NONNUMERICr)rrrr�test_write_quoting�s



zTest_Csv.test_write_quotingc	Cs|jdddgddd�|jtjdddgdddd	�|jdddgd
dddd	�|jdgdddd
tj�|jdgdddd
tjdd	�|jdgdddd
tj�|jdddgdddd
tj�dS)NrXrzp,qz	a,1,"p,q"r"r.zp,"q"r!Fz
a,1,"p,\"q\""rz""""rz\"za,1,p\,q)rHrJrrr#r2)rrrr�test_write_escape�s

zTest_Csv.test_write_escapecCs�Gdd�d�}tj|��}|jt|jdgg�tddd��n}tj|�}|jt|jd�|jddgdd	gg�|jd
�|j|j	�d�WdQXdS)Nc@seZdZdd�ZdS)z+Test_Csv.test_writerows.<locals>.BrokenFilecSs
t�dS)N)rN)rZbufrrr�write�sz1Test_Csv.test_writerows.<locals>.BrokenFile.writeN)r;r<r=r\rrrr�
BrokenFile�sr]rXzw+rAr�b�c�drz
a,b
c,d
)
rrr
rN�	writerowsrrrCrrD)rr]rrGrrr�test_writerows�s
zTest_Csv.test_writerowsc
Csddl}|jd�}tddd��L}tj|�}|j|gg�|jd�|j|j�d�WdQXdS)NrrXzw+rArza
)	�	_testcapiZunicode_legacy_stringrrrrarCrrD)rrcr_rGrrrr�test_writerows_legacy_strings�s
z&Test_Csv.test_writerows_legacy_stringscKs2tj||�}t|�}|j||�dS)N)rr�listr)r�inputrFr3r�resultrrr�
_read_test�szTest_Csv._read_testcCs�|jgg�|jdggg�|jtj|jdgddd�|jtj|jdgddd�|jdgdggdd�|jtj|jd	gd�dS)
Nrz"ab"cr%rZabc�abcr!rsabc)rhr
rr)rrrr�test_read_oddinputs�szTest_Csv.test_read_oddinputscCs�|jdgddgg�|jdgddgg�|jdgddgg�|jdgddgg�|jtj|jdgg�|jtj|jdgg�|jtj|jd	gg�dS)
Nza,brXr^za,b
za,b
za,b
za,b
c,dza,b
c,dza,b
c,d)rhr
rr)rrrr�
test_read_eol�szTest_Csv.test_read_eolc	Cs�|jdgddgg�|jdgdgg�|jdgdggdd�|jtj|jdggdd	�|jtj|jdggdd	�|jtj|jdggdddd	�dS)
Nza,"rXrz"ar8�
r"r%T)rhr
rr)rrrr�
test_read_eof�s%%zTest_Csv.test_read_eofcCs�|jdgdddggdd�|jdgddggdd�|jd	gddggdd�|jd
gddggdd�|jdgddggdd�|jd
gddggdd�dS)Nza,\b,crXr^r_r"r.za,b\,czb,cza,"b\,c"za,"b,\c"z	a,"b,c\""zb,c"za,"b,c"\zb,c\)rh)rrrr�test_read_escape�s%""""zTest_Csv.test_read_escapecCs�|jdgdddgg�|jdgdddddggdddd	�|jdgdddddggd
tjdd	�|jdgdd
dddggd
tj�|jdgddgg�|jt|jdgggd
tj�dS)Nz	1,",3,",5�1z,3,�5r�3r	r"r.rz
,3,"5",7.3, 9r�g333333@�	z"a
b", 7za
bz 7zabc,3)rhrr2rYr
�
ValueError)rrrr�test_read_quotings$
$$
zTest_Csv.test_read_quotingcCs�tj�}z�d}d|}d||f}|j|g||gg�tj|�|j|g||gg�|jtj�|�tj|d�|jtj|j|gg�|jttjd�|jttjdd�Wdtj|�XdS)NiP�rUz%s,%sr)rZfield_size_limitrhrr
rr)r�limit�sizerVZbiglinerrr�test_read_bigfields

zTest_Csv.test_read_bigfieldcCs�tjdddg�}|j|jd�t|�|j|jd�t|�|j|jd�t|�|j|jd�|jtt|�|j|jd�dS)Nzline,1zline,2zline,3rrrMrr)rrrZline_num�nextr
�
StopIteration)r�rrrr�test_read_linenum$s


zTest_Csv.test_read_linenumcCs�tddd���}tj|�}|jt|jd�ddgddgg}|j|�|jd�x7ttj|��D] \}}|j	|||�q�WWdQXdS)	Nzw+rArza
br^r_zx
dr)
rrrr
rrarC�	enumeraterr)rrGr�rowsrO�rowrrr�test_roundtrip_quoteed_newlines0s

"z(Test_Csv.test_roundtrip_quoteed_newlinescCs�tddd���}tj|dtjdd�}ddgd	d
gg}|j|�|jd�xFttj|dtjdd��D] \}}|j|||�q�WWdQXdS)Nzw+rArrr"r.za
br^r_zx
dr)	rrrr2rarCr}rr)rrGrr~rOrrrr�(test_roundtrip_escaped_unquoted_newlines:s

1z1Test_Csv.test_roundtrip_escaped_unquoted_newlinesN)$r;r<r=�__doc__rrrr+r,r-r4r5r6r>r?r@rHrJrTrWrZr[rbrZcpython_onlyrdrhrjrkrmrnrurxr|r�r�rrrrrs>
		
rc@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�TestDialectRegistrycCs=|jttjd�|jttj�|jtjtjd�|jtjtjd�|jttj�|jtjtjd�|jtjtjd�|jttjd�|jttjdd�|jttjddd�|jttjddd�|jttjddd�|jttjg�dS)NZnonesuchrZbadargumentr)r
rr�
list_dialects�get_dialectr�unregister_dialect�register_dialect)rrrr�test_registry_badargsDsz)TestDialectRegistry.test_registry_badargscCs�Gdd�dtj�}d}tj�|g}|j�tj||�|jtj|�|jtj|�j	d�t
tj��}|j||�dS)Nc@seZdZdZdS)z5TestDialectRegistry.test_registry.<locals>.myexceltsv�	N)r;r<r=rrrrr�
myexceltsvVsr�r�)r�excelr��sortr��
addCleanupr�rr�r�sorted)rr��nameZexpected_dialectsZgot_dialectsrrr�
test_registryUs
z!TestDialectRegistry.test_registrycCs}d}tj|dd�|jtj|�|jtj|�jd�|jdddggttjdg|���dS)NZfedcbar�;rU�Y�ZzX;Y;Z)	rr�r�r�rr�rrer)rr�rrr�test_register_kwargsas
z(TestDialectRegistry.test_register_kwargscCs0Gdd�dtj�}|jtj|�dS)Nc@seZdZdZdS)z?TestDialectRegistry.test_incomplete_dialect.<locals>.myexceltsvr�N)r;r<r=rrrrrr�isr�)r�Dialectr
r)rr�rrr�test_incomplete_dialecthsz+TestDialectRegistry.test_incomplete_dialectcCs�Gdd�dtj�}td��q}|jd�|jd�tj|d|��}|jt|�ddg�|jt|�d	d
g�WdQXdS)Nc@s%eZdZdZejZdZdS)z5TestDialectRegistry.test_space_dialect.<locals>.space� r.N)r;r<r=rrr2rr"rrrr�spacens	r�zw+zabc def
c1ccccc1 benzene
rr ri�defZc1ccccc1Zbenzene)rr�rr\rCrrry)rr�rGrrrr�test_space_dialectms

z&TestDialectRegistry.test_space_dialectcOsstddddd��U}tj|||�}|jdddg�|jd	�|j|j�|�WdQXdS)
Nzw+rAr�encodingzutf-8rrMrrr)rrrrBrCrrD)r�expectedZ	writeargsZkwwriteargsrGrrrr�compare_dialect_123zs

z'TestDialectRegistry.compare_dialect_123cCs�Gdd�dtj�}Gdd�dtj�}Gdd�dtj�}Gdd�dtj�}tjd|�zv|jd	�|jd
|�|jdd|��|jd
dd�|jdd|dd�|jdd|�Wdtjd�XdS)Nc@seZdZdZdS)z5TestDialectRegistry.test_dialect_apply.<locals>.testAr�N)r;r<r=rrrrr�testA�sr�c@seZdZdZdS)z5TestDialectRegistry.test_dialect_apply.<locals>.testBrN)r;r<r=rrrrr�testB�sr�c@seZdZdZdS)z5TestDialectRegistry.test_dialect_apply.<locals>.testC�|N)r;r<r=rrrrr�testC�sr�c@seZdZdZdS)z7TestDialectRegistry.test_dialect_apply.<locals>.testUniuΛN)r;r<r=rrrrr�testUni�sr�z1,2,3
z1	2	3
z1:2:3
r z1|2|3
z1;2;3
rr�u	1Λ2Λ3
)rr�r�r�r�)rr�r�r�r�rrr�test_dialect_apply�s
z&TestDialectRegistry.test_dialect_applycCst|jttjgdd�|jttjgdd�|jttjgdd�|jttjgdd�dS)Nrrrrr�d���)r
rrr)rrrr�test_bad_dialect�sz$TestDialectRegistry.test_bad_dialectN)r;r<r=r�r�r�r�r�r�r�r�rrrrr�Cs
	r�c@s(eZdZdd�Zdd�ZdS)�TestCsvBasecCsmtddd��U}|j|�|jd�tj|d|j�}t|�}|j||�WdQXdS)Nzw+rArrr )rr\rCrrr rer)rrf�expected_resultrGrrErrr�readerAssertEqual�s

zTestCsvBase.readerAssertEqualcCsgtddd��O}tj|d|j�}|j|�|jd�|j|j�|�WdQXdS)Nzw+rArr r)rrrr rarCrrD)rrfr�rGrrrr�writerAssertEqual�s


zTestCsvBase.writerAssertEqualN)r;r<r=r�r�rrrrr��sr�c@sBeZdZdZdd�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|jddgg�dS)Nri)r�)rrrr�test_single�szTestDialectExcel.test_singlecCs&|jddddddgg�dS)Nz	1,2,3,4,5ro�2rq�4rp)r�)rrrr�test_simple�szTestDialectExcel.test_simplecCs|jdg�dS)Nr)r�)rrrr�test_blankline�szTestDialectExcel.test_blanklinecCs|jdddgg�dS)Nrr)r�)rrrr�test_empty_fields�sz"TestDialectExcel.test_empty_fieldscCs|jddgg�dS)Nz""r)r�)rrrr�test_singlequoted�sz"TestDialectExcel.test_singlequotedcCs|jdddgg�dS)Nz"",r)r�)rrrr�test_singlequoted_left_empty�sz-TestDialectExcel.test_singlequoted_left_emptycCs|jdddgg�dS)Nz,""r)r�)rrrr�test_singlequoted_right_empty�sz.TestDialectExcel.test_singlequoted_right_emptycCs|jddgg�dS)Nz""""r)r�)rrrr�test_single_quoted_quote�sz)TestDialectExcel.test_single_quoted_quotecCs|jddgg�dS)Nz""""""z"")r�)rrrr�test_quoted_quotes�sz#TestDialectExcel.test_quoted_quotescCs|jddgg�dS)Nza""b)r�)rrrr�test_inline_quote�sz"TestDialectExcel.test_inline_quotecCs|jddgg�dS)Nza"b"c)r�)rrrr�test_inline_quotes�sz#TestDialectExcel.test_inline_quotescCs|jddgg�dS)Nz"a"bZab)r�)rrrr�test_quotes_and_more�sz%TestDialectExcel.test_quotes_and_morecCs|jddgg�dS)Nza"b)r�)rrrr�test_lone_quote�sz TestDialectExcel.test_lone_quotecCs|jddgg�dS)Nz"a" "b"za "b")r�)rrrr�test_quote_and_quote�sz%TestDialectExcel.test_quote_and_quotecCs|jddgg�dS)Nz "a")r�)rrrr�test_space_and_quote�sz%TestDialectExcel.test_space_and_quotecCs)|jdddddddgg�dS)Nz#1,2,3,"I think, therefore I am",5,6ror�rqzI think, therefore I amrp�6)r�)rrrr�test_quoted�s		zTestDialectExcel.test_quotedcCs&|jddddddgg�dS)NzJ1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw"ror�rqz"I see," said the blind manz"as he picked up his hammer and saw)r�)rrrr�test_quoted_quote�s		z"TestDialectExcel.test_quoted_quotecCs;d}|j|dddddgddd	d
gg�dS)NzR1,2,3,"""I see,""
said the blind man","as he picked up his
hammer and saw"
9,8,7,6ror�rqz"I see,"
said the blind manz"as he picked up his
hammer and saw�9�8�7r�)r�)rrfrrr�test_quoted_nl�s		zTestDialectExcel.test_quoted_nlcCs#|jdddddgg�dS)Nz	12,12,1",Z12z1"r)r�)rrrr�test_dubious_quote�sz#TestDialectExcel.test_dubious_quotecCs|jgd�dS)Nr)r�)rrrr�	test_nullszTestDialectExcel.test_nullcCs|jdggd�dS)Nrizabc
)r�)rrrr�test_single_writersz#TestDialectExcel.test_single_writercCs&|jdddddggd�dS)NrrMrirr�z
1,2,abc,3,4
)r�)rrrr�test_simple_writersz#TestDialectExcel.test_simple_writercCs&|jdddddggd�dS)NrrMza"bc"rrr�z1,2,"a""bc""",3,4
)r�)rrrr�test_quotesszTestDialectExcel.test_quotescCs|jdggd�dS)Nzabc,defz"abc,def"
)r�)rrrr�test_quote_fieldsepsz$TestDialectExcel.test_quote_fieldsepcCs&|jdddddggd�dS)NrrMza
bcrrr�z1,2,"a
bc",3,4
)r�)rrrr�
test_newlinesszTestDialectExcel.test_newlinesN)r;r<r=r r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr��s4r�c@seZdZejZdZdS)�EscapedExcelr.N)r;r<r=rr2rr"rrrrr�s	r�c@s1eZdZe�Zdd�Zdd�ZdS)�TestEscapedExcelcCs|jdggd�dS)Nzabc,defz
abc\,def
)r�)rrrr�test_escape_fieldsepsz%TestEscapedExcel.test_escape_fieldsepcCs|jddgg�dS)Nz
abc\,def
zabc,def)r�)rrrr�test_read_escape_fieldsepsz*TestEscapedExcel.test_read_escape_fieldsepN)r;r<r=r�r r�r�rrrrr�s	r�c@s.eZdZdZdd�Zdd�ZdS)�TestDialectUnixZunixcCs |jdddggd�dS)Nrzabc defriz"1","abc def","abc"
)r�)rrrrr�$sz"TestDialectUnix.test_simple_writercCs |jddddgg�dS)Nz"1","abc def","abc"
rozabc defri)r�)rrrr�test_simple_reader'sz"TestDialectUnix.test_simple_readerN)r;r<r=r r�r�rrrrr�!sr�c@seZdZejZdZdS)�QuotedEscapedExcelr.N)r;r<r=rrYrr"rrrrr�*s	r�c@s1eZdZe�Zdd�Zdd�ZdS)�TestQuotedEscapedExcelcCs|jdggd�dS)Nzabc,defz"abc,def"
)r�)rrrr�test_write_escape_fieldsep1sz1TestQuotedEscapedExcel.test_write_escape_fieldsepcCs|jddgg�dS)Nz"abc\,def"
zabc,def)r�)rrrrr�4sz0TestQuotedEscapedExcel.test_read_escape_fieldsepN)r;r<r=r�r r�r�rrrrr�.s	r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�TestDictFieldsc
Cs�tddd���}tj|ddddg�}|j�|jd�|j|j�d	�|jid
d6dd6�|jd�|j�|j|j�d�WdQXdS)
Nzw+rAr�
fieldnames�f1�f2�f3rz
f1,f2,f3
rKriz	10,,abc
)	rr�
DictWriterZwriteheaderrCr�readlinerBrD)rrGrrrr�test_write_simple_dict:s



z%TestDictFields.test_write_simple_dictcCs#t�}|jttj|�dS)N)rr
rrr�)rrGrrr�test_write_no_fieldsEs	z#TestDictFields.test_write_no_fieldscCs�tddd���}tj|ddddg�}|jt��)}|jidd	6d
d6dd6�WdQXt|j�}|jd|�|jd
|�|j	d|�|jd|�WdQXdS)Nzw+rArr�r�r�r�rKZf4Zspamrirz'f4'z'f2'ro)
rrr�r
rtrB�str�	exception�assertInZassertNotIn)rrGrZcxr�rrr�#test_write_fields_not_in_fieldnamesIs(z2TestDictFields.test_write_fields_not_in_fieldnamesc
Cs|td��j}|jd�|jd�tj|ddddg�}|jt|�idd6d	d6d
d6�WdQXdS)Nzw+z	1,2,abc
rr�r�r�r�ror�ri)rr\rCr�
DictReaderrry)rrGrrrr�test_read_dict_fieldsUs

z$TestDictFields.test_read_dict_fieldscCs�td��w}|jd�|jd�tj|�}|jt|�idd6dd6dd	6�|j|jddd	g�WdQXdS)
Nzw+zf1,f2,f3
1,2,abc
rror�r�r�rir�)rr\rCrr�rryr�)rrGrrrr�test_read_dict_no_fieldnames]s

+z+TestDictFields.test_read_dict_no_fieldnamesc
Cs�td���}|jd�|jd�tj|dttj|���}|j|jdddg�|jt|�idd6d	d6d
d6�WdQXdS)Nzw+zf1,f2,f3
1,2,abc
rr�r�r�r�ror�ri)	rr\rCrr�ryrrr�)rrGrrrr�#test_read_dict_fieldnames_from_filegs

z2TestDictFields.test_read_dict_fieldnames_from_filec
Cs�ddl}td���}|jd�|jd�tj|�}t|�}x^|j|g|�D]G}|j|j	dddg�|j|idd6dd6d	d6�qfWWdQXdS)
Nrzw+zf1,f2,f3
1,2,abc
r�r�r�ror�ri)
�	itertoolsrr\rCrr�ry�chainrr�)rr�rGr�firstrrrr�test_read_dict_fieldnames_chainps

z.TestDictFields.test_read_dict_fieldnames_chaincCs�td��s}|jd�|jd�tj|dddg�}|jt|�idd6dd6d	d
ddgd6�WdQXdS)
Nzw+z1,2,abc,4,5,6
rr�r�r�ror�rir�rpr�)rr\rCrr�rry)rrGrrrr�test_read_long{s

 zTestDictFields.test_read_longcCs�td��y}|jd�|jd�tj|dddgdd�}|jt|�id	d6d
d6ddd
dgd6�WdQXdS)Nzw+z1,2,abc,4,5,6
rr�r�r��restkey�_restror�rir�rpr�)rr\rCrr�rry)rrGrrrr�test_read_long_with_rest�s

 z'TestDictFields.test_read_long_with_restcCs�td���}|jd�|jd�tj|dd�}|j|jddg�|jt|�idd6d	d6d
ddd
gd6�WdQXdS)Nzw+zf1,f2
1,2,abc,4,5,6
rr�r�r�r�ror�rir�rpr�)rr\rCrr�rr�ry)rrGrrrr�&test_read_long_with_rest_no_fieldnames�s

 z5TestDictFields.test_read_long_with_rest_no_fieldnamesc
Cs�td���}|jd�|jd�tj|ddj�dd�}|jt|�idd6d	d	6d
d6dd6d
d
6dd6�|jt|�idd6d	d	6d
d6dd6dd
6dd6�WdQXdS)Nzw+z1,2,abc,4,5,6
1,2,abc
rr�z1 2 3 4 5 6ZrestvalZDEFAULTror�rirqr�rpr�)rr\rCrr��splitrry)rrGrrrr�test_read_short�s

	''zTestDictFields.test_read_shortcCsgdddg}tj|ddj��}|jt|�idd6dd	6d
d6dd
6dd6�dS)Nz2147483648,43.0e12,17,abc,def
z147483648,43.0e2,17,abc,def
z47483648,43.0,170,abc,def
r�zi1 float i2 s1 s2Z
2147483648Zi1z43.0e12�floatZ17Zi2ri�s1r��s2)rr�r�rry)rZsamplerrrr�test_read_multi�s	zTestDictFields.test_read_multicCs�tjdddgddj��}|jt|�idd6dd6dd6d	d	6d
d
6dd6�|jt|�idd6dd6dd6d	d	6d
d
6dd6�dS)Nz1,2,abc,4,5,6
z
r�z1 2 3 4 5 6ror�rirqr�rpr�)rr�r�rry)rrrrr�test_read_with_blanks�s	''z$TestDictFields.test_read_with_blankscCshtjdgddj�dd�}|jt|�idd6dd6dd	6d
d
6dd6dd6�dS)
Nz1;2;abc;4;5;6
r�z1 2 3 4 5 6rr�ror�rirqr�rpr�)rr�r�rry)rrrrr�test_read_semi_sep�s
	'z!TestDictFields.test_read_semi_sepN)r;r<r=r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�7s
				
	r�c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestArrayWritescCs�ddl}dd�td�D�}|jd|�}tddd��l}tj|d	d
�}|j|�djdd�|D��d
}|jd�|j|j	�|�WdQXdS)NrcSsg|]}d|�qS)�r)�.0rOrrr�
<listcomp>�s	z2TestArrayWrites.test_int_write.<locals>.<listcomp>r�rOzw+rArr r�rcSsg|]}t|��qSr)r�)r�rOrrrr��s	z
)
�array�rangerrrrB�joinrCrrD)rr��contentsrXrGrr�rrr�test_int_write�s
 
zTestArrayWrites.test_int_writecCs�ddl}dd�td�D�}|jd|�}tddd��l}tj|d	d
�}|j|�djdd�|D��d
}|jd�|j|j	�|�WdQXdS)NrcSsg|]}d|d�qS)r�g�������?r)r�rOrrrr��s	z5TestArrayWrites.test_double_write.<locals>.<listcomp>r�r`zw+rArr r�rcSsg|]}t|��qSr)r�)r�rOrrrr��s	z
)
r�r�rrrrBr�rCrrD)rr�r�rXrGrr�rrr�test_double_write�s
 
z!TestArrayWrites.test_double_writecCs�ddl}dd�td�D�}|jd|�}tddd��l}tj|d	d
�}|j|�djdd�|D��d
}|jd�|j|j	�|�WdQXdS)NrcSsg|]}d|d�qS)r�g�������?r)r�rOrrrr��s	z4TestArrayWrites.test_float_write.<locals>.<listcomp>r��fzw+rArr r�rcSsg|]}t|��qSr)r�)r�rOrrrr��s	z
)
r�r�rrrrBr�rCrrD)rr�r�rXrGrr�rrr�test_float_write�s
 
z TestArrayWrites.test_float_writecCs�ddl}ddl}|jd|j�}tddd��_}tj|dd�}|j|�dj|�d	}|jd�|j	|j
�|�WdQXdS)
Nr�uzw+rArr r�rz
)r��stringZ
ascii_lettersrrrrBr�rCrrD)rr�rrXrGrr�rrr�test_char_write�s

zTestArrayWrites.test_char_writeN)r;r<r=r�rrrrrrrr��sr�c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestDialectValiditycCs@Gdd�dtj�}|�}|j|jtj�d|_|jtj|�d|_tj|_d|_	|�}|j|jtj�|j|j	d�|j
|j�d|_	|jtj��}|�WdQX|jt|j�d�d|_	|jtj��}|�WdQX|jt|j�d�dS)	Nc@s7eZdZdZdZdZdZdZej	Z
dS)z3TestDialectValidity.test_quoting.<locals>.mydialectr�r.FTz
N)r;r<r=rr"r!r$r
rr2rrrrr�	mydialect�srTrz''z)"quotechar" must be an 1-character stringr�z#"quotechar" must be string, not int)
rr�rrr2r
rr!rr	�
assertTruer�r�)rrr`�cmrrr�test_quoting�s,						
	
z TestDialectValidity.test_quotingcCsIGdd�dtj�}|�}|j|jd�d|_|jtj��}|�WdQX|jt|j�d�d|_|jtj��}|�WdQX|jt|j�d�d|_|jtj��}|�WdQX|jt|j�d�d	|_|jtj��}|�WdQX|jt|j�d
�dS)Nc@s7eZdZdZdZdZdZdZej	Z
dS)z5TestDialectValidity.test_delimiter.<locals>.mydialectr�r.FTz
N)r;r<r=rr"r!r$r
rr2rrrrrrsrr�z:::z)"delimiter" must be an 1-character stringr�,z%"delimiter" must be string, not bytesr�z#"delimiter" must be string, not int)rr�rrr
rr�r�)rrr`r	rrr�test_delimiters.		
	
	
	
z"TestDialectValidity.test_delimiterc	Cs�Gdd�dtj�}|�}|j|jd�d|_|�}|j|jd�d|_|jtj��}|�WdQX|jt|j�d�dS)Nc@s7eZdZdZdZdZdZdZej	Z
dS)z:TestDialectValidity.test_lineterminator.<locals>.mydialectr�r.FTz
N)r;r<r=rr"r!r$r
rr2rrrrrr7srz
z:::r�z!"lineterminator" must be a string)rr�rr
r
rr�r�)rrr`r	rrr�test_lineterminator6s				
z'TestDialectValidity.test_lineterminatorc
Cs�dd�}x�dD]�}|jd|��i|jtj||d�|jtj||d�|jtj||d	�|jtj||d
�WdQXqWdS)NcSs6Gdd�dtj�}t|||�|�}dS)Nc@seZdZdS)zQTestDialectValidity.test_invalid_chars.<locals>.create_invalid.<locals>.mydialectN)r;r<r=rrrrrMsr)rr�r()�
field_name�valuerr`rrr�create_invalidLsz>TestDialectValidity.test_invalid_chars.<locals>.create_invalidrr"r	rrri�x�)z	delimiterz
escapecharz	quotechar)ZsubTestr
rr)rrrrrr�test_invalid_charsKs
z&TestDialectValidity.test_invalid_charsN)r;r<r=r
rr
rrrrrr�s"#rc@s�eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dd
�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'
cCsOtj�}|j|j|j�d�|j|j|j|j�d�dS)NFT)r�Snifferr�
has_header�sample1�header1)r�snifferrrr�test_has_header�szTestSniffer.test_has_headercCsOtj�}|j|j|j�d�|j|j|j|j�d�dS)NFT)rrrr�sample8�header2)rrrrr�'test_has_header_regex_special_delimiter�sz3TestSniffer.test_has_header_regex_special_delimitercCs�tj�}|j|j�}|j|jd�|j|jd�|j|jd�|j|j�}|j|jd�|j|jd�|j|jd�dS)NrrTr�'F)	rr�sniffrrrr	r$�sample2)rrr rrr�
test_sniff�szTestSniffer.test_sniffcCs�tj�}|j|j�}|j|j|j�|j|jdd�}|j|jd�|j|jdd�}|j|jd�|j|j�}|j|jd�|j|j�}|j|jd�|j|j	�}|j|jd�|j|j
�}|j|jd�|j|jd	�|j|j�}|j|jd
�|j|j
�}|j|jd
�|j|jd	�dS)NZ
delimitersz?,�?z/,�/r�r�r�r�+)rrr�sample3r�rr�sample4�sample5�sample6�sample7r	r�sample9)rrr rrr�test_delimiters�s*zTestSniffer.test_delimiterscCs�tj�}|j|j�}|j|j�|j|j�}|j|j�|j|j�}|j|j�|j|j	�}|j|j�|j|j
�}|j|j�dS)N)rrrrZassertFalser!rr rrr*)rrr rrr�test_doublequote�szTestSniffer.test_doublequoteN)r;r<r=rr rr%r&r'r(r)rrr*rrr!r+r,rrrrrZs rc@s"eZdZdd�ZeZdS)�NULcGsdS)Nr)�sr)rrrr\�sz	NUL.writeN)r;r<r=r\�
writelinesrrrrr-�sr-�gettotalrefcountzrequires sys.gettotalrefcount()c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	TestLeakscCs�d}tj�}x}td�D]o}tj�|jtjg�tj�}tjdg�tjdg�tjdg�||}|}qW|j|dkd�dS)Nrr�za,b,c
rrT)	�sysr0r��gc�collectr�garbagerr)r�delta�lastrcrO�rcrrr�test_create_read�s


zTestLeaks.test_create_readcCs�d}tj�}t�}xttd�D]f}tj�|jtjg�tj�}tj	|�tj	|�tj	|�||}|}q(W|j|dkd�dS)Nrr�rrT)
r2r0r-r�r3r4rr5rr)rr6r7r.rOr8rrr�test_create_write�s	





zTestLeaks.test_create_writecCs�d}dgd}tj�}xmtd�D]_}tj�|jtjg�tj�}tj|�}x|D]}qqW||}|}q,W|j|dkd�dS)Nrza,b,c
rr�T)	r2r0r�r3r4rr5rr)rr6r~r7rOr8Zrdrrrrr�	test_read�s




zTestLeaks.test_readc	Cs�d}dddggd}t�}tj�}xztd�D]l}tj�|jtjg�tj�}tj	|�}x|D]}|j
|�q�W||}|}q>W|j|dkd�dS)NrrrMrrrr�T)r-r2r0r�r3r4rr5rrrB)	rr6r~r.r7rOr8rrrrr�
test_writes	



zTestLeaks.test_writeN)r;r<r=r9r:r;r<rrrrr1�sr1c@s:eZdZddddgZdd�Zdd�Zd	S)
�TestUnicodeuMartin von LöwisuMarc André LemburgzGuido van RossumuFrançois Pinardc
Cs�ddl}tddddd��\}|jdj|j�d�|jd�tj|�}|jt	|�|jg�WdQXdS)	Nrzw+rArr�zutf-8rz
)
�iorr\r��namesrCrrrre)rr>rGrrrr�test_unicode_reads
zTestUnicode.test_unicode_readc
Cs�ddl}tddddd��_}tj|�}|j|j�dj|j�d}|jd�|j|j	�|�WdQXdS)	Nrzw+rArr�zutf-8rz
)
r>rrrrBr?r�rCrrD)rr>rGrr�rrr�test_unicode_write#s
zTestUnicode.test_unicode_writeN)r;r<r=r?r@rArrrrr=s		r=cs7tjt�tj�fdd�t��D��dS)Ncs.g|]$}|jd�rt�|��qS)ZTest)�
startswith�getattr)r�r�)�modrrr�0s	ztest_main.<locals>.<listcomp>)r2�modulesr;rZrun_unittest�dirrr)rDr�	test_main-s
rG�__main__)!r>r2�osZunittestrZtempfilerrr3ZtestrZTestCaserr�r�r�r�r�r�r�r�r�r�r�rrr-Z
skipUnless�hasattrr1r=rGr;rrrr�<module>s<�6`a			�.jqA