Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_csv.cpython-35.opt-1.pyc



��Yf��@sCddlZddlZddlZddlZddlZddlmZddlmZddlZddl	Z	ddl
Z
ddlmZGdd�dej
�ZGdd�dej
�ZGd	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
�Z e!d'kr?ej"�dS)(�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'�Zd(d)�Zejd*d+��Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Z d8d9�Z!d:d;�Z"d<d=�Z#d>d?�Z$d@S)A�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/python35/lib64/python3.5/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_attrsCszTest_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_attrsFs	zTest_Csv._test_kw_attrscCs|jtjg�dS)N)r4rr)rrrr�test_reader_kw_attrsVszTest_Csv.test_reader_kw_attrscCs|jtjt��dS)N)r4rrr)rrrr�test_writer_kw_attrsYszTest_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_attrs\s	
zTest_Csv._test_dialect_attrscCs|jtjg�dS)N)r>rr)rrrr�test_reader_dialect_attrsrsz"Test_Csv.test_reader_dialect_attrscCs|jtjt��dS)N)r>rrr)rrrr�test_writer_dialect_attrsusz"Test_Csv.test_writer_dialect_attrscKsltddd��S}tj||�}|j|�|jd�|j|j�||jj�WdQRXdS)Nzw+�newlinerr)	rrr�writerow�seekr�readr r
)r�fields�expectr3�fileobjrrrr�_write_testys

zTest_Csv._write_testcKsytddd��`}tj||�}|j|��|j|�WdQRX|jd�|j|j�d�WdQRXdS)Nzw+rArr)rrrr
rBrCrrD)r�excrEr3rGrrrr�_write_error_test�s
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�dS)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�|jtdddg�d�|jtdddg�d�|jtg�d�|jtdg�d�|jtjtdg�dtj�|jtddg�d	�dS)
NrXrzp,qz	a,1,"p,q"za,1,rz""rr)rH�iterrJrrr2)rrrr�test_write_iterable�s%zTest_Csv.test_write_iterablecCs�Gdd�d�}tj|��}|jt|jdgg�tddd��n}tj|�}|jt|jd�|jddgdd	gg�|jd
�|j|j	�d�WdQRXdS)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
Cs�ddl}|jd�}tddd��L}tj|�}|j|gg�|jd�|j|j�d�WdQRXdS)NrrXzw+rArza
)	�	_testcapiZunicode_legacy_stringrrrrcrCrrD)rrerarGrrrr�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)rjr
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)rjr
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)rjr
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`rar"r.za,b\,czb,cza,"b\,c"za,"b,\c"z	a,"b,c\""zb,c"za,"b,c"\zb,c\)rj)rrrr�test_read_escapes%""""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)rjrr2rYr
�
ValueError)rrrr�test_read_quoting
s$
$$
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_limitrjrr
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,3rrrMrt)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�WWdQRXdS)	Nzw+rArza
br`razx
dr)
rrrr
rrcrC�	enumeraterr)rrGr�rowsrO�rowrrr�test_roundtrip_quoteed_newlines:s

"z(Test_Csv.test_roundtrip_quoteed_newlinescCs�tddd���}tj|dtjdd�}ddgd	d
gg}|j|�|jd�xFttj|dtjdd��D] \}}|j|||�q�WWdQRXdS)Nzw+rArrr"r.za
br`razx
dr)	rrrr2rcrCrrr)rrGrr�rOr�rrr�(test_roundtrip_escaped_unquoted_newlinesDs

1z1Test_Csv.test_roundtrip_escaped_unquoted_newlinesN)%r;r<r=�__doc__rrrr+r,r-r4r5r6r>r?r@rHrJrTrWrZr[r]rdrZcpython_onlyrfrjrlrmrorprwrzr~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_badargsNsz)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�
myexceltsv`sr�r�)r�excelr��sortr��
addCleanupr�rr�r�sorted)rr��nameZexpected_dialectsZgot_dialectsrrr�
test_registry_s
z!TestDialectRegistry.test_registrycCs}d}tj|dd�|jtj|�|jtj|�jd�|jdddggttjdg|���dS)NZfedcbar�;rU�Y�ZzX;Y;Z)	rr�r�r�rr�rrgr)rr�rrr�test_register_kwargsks
z(TestDialectRegistry.test_register_kwargscCs0Gdd�dtj�}|jtj|�dS)Nc@seZdZdZdS)z?TestDialectRegistry.test_incomplete_dialect.<locals>.myexceltsvr�N)r;r<r=rrrrrr�ssr�)r�Dialectr
r)rr�rrr�test_incomplete_dialectrsz+TestDialectRegistry.test_incomplete_dialectcCs�Gdd�dtj�}td��q}|jd�|jd�tj|d|��}|jt|�ddg�|jt|�d	d
g�WdQRXdS)Nc@s%eZdZdZejZdZdS)z5TestDialectRegistry.test_space_dialect.<locals>.space� r.N)r;r<r=rrr2rr"rrrr�spacexs	r�zw+zabc def
c1ccccc1 benzene
rr rk�defZc1ccccc1Zbenzene)rr�rr^rCrrr{)rr�rGrrrr�test_space_dialectws

z&TestDialectRegistry.test_space_dialectcOsttddddd��U}tj|||�}|jdddg�|jd	�|j|j�|�WdQRXdS)
Nzw+rAr�encodingzutf-8rrMrtr)rrrrBrCrrD)r�expectedZ	writeargsZkwwriteargsrGrrrr�compare_dialect_123�s

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�Ms
	r�c@s(eZdZdd�Zdd�ZdS)�TestCsvBasecCsntddd��U}|j|�|jd�tj|d|j�}t|�}|j||�WdQRXdS)Nzw+rArrr )rr^rCrrr rgr)rrh�expected_resultrGrrErrr�readerAssertEqual�s

zTestCsvBase.readerAssertEqualcCshtddd��O}tj|d|j�}|j|�|jd�|j|j�|�WdQRXdS)Nzw+rArr r)rrrr rcrCrrD)rrhr�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)Nrk)r�)rrrr�test_single�szTestDialectExcel.test_singlecCs&|jddddddgg�dS)Nz	1,2,3,4,5rq�2rs�4rr)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,6rqr�rszI think, therefore I amrr�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"rqr�rsz"I see," said the blind manz"as he picked up his hammer and saw)r�)rrrr�test_quoted_quotes		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,6rqr�rsz"I see,"
said the blind manz"as he picked up his
hammer and saw�9�8�7r�)r�)rrhrrr�test_quoted_nl	s		zTestDialectExcel.test_quoted_nlcCs#|jdddddgg�dS)Nz	12,12,1",Z12z1"r)r�)rrrr�test_dubious_quotesz#TestDialectExcel.test_dubious_quotecCs|jgd�dS)Nr)r�)rrrr�	test_nullszTestDialectExcel.test_nullcCs|jdggd�dS)Nrkzabc
)r�)rrrr�test_single_writersz#TestDialectExcel.test_single_writercCs&|jdddddggd�dS)NrrMrkrt�z
1,2,abc,3,4
)r�)rrrr�test_simple_writersz#TestDialectExcel.test_simple_writercCs&|jdddddggd�dS)NrrMza"bc"rtr�z1,2,"a""bc""",3,4
)r�)rrrr�test_quotes!szTestDialectExcel.test_quotescCs|jdggd�dS)Nzabc,defz"abc,def"
)r�)rrrr�test_quote_fieldsep$sz$TestDialectExcel.test_quote_fieldsepcCs&|jdddddggd�dS)NrrMza
bcrtr�z1,2,"a
bc",3,4
)r�)rrrr�
test_newlines'szTestDialectExcel.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_fieldsep1sz%TestEscapedExcel.test_escape_fieldsepcCs|jddgg�dS)Nz
abc\,def
zabc,def)r�)rrrr�test_read_escape_fieldsep4sz*TestEscapedExcel.test_read_escape_fieldsepN)r;r<r=r�r r�r�rrrrr�.s	r�c@s.eZdZdZdd�Zdd�ZdS)�TestDialectUnixZunixcCs |jdddggd�dS)Nrzabc defrkz"1","abc def","abc"
)r�)rrrrr�:sz"TestDialectUnix.test_simple_writercCs |jddddgg�dS)Nz"1","abc def","abc"
rqzabc defrk)r�)rrrr�test_simple_reader=sz"TestDialectUnix.test_simple_readerN)r;r<r=r r�r�rrrrr�7s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_fieldsepGsz1TestQuotedEscapedExcel.test_write_escape_fieldsepcCs|jddgg�dS)Nz"abc\,def"
zabc,def)r�)rrrrr�Jsz0TestQuotedEscapedExcel.test_read_escape_fieldsepN)r;r<r=r�r r�r�rrrrr�Ds	r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �TestDictFieldsc
Cs�tddd���}tj|ddddg�}|j�|jd�|j|j�d	�|jdd
ddi�|jd�|j�|j|j�d�WdQRXdS)
Nzw+rAr�
fieldnames�f1�f2�f3rz
f1,f2,f3
rKrkz	10,,abc
)	rr�
DictWriter�writeheaderrCr�readlinerBrD)rrGrrrr�test_write_simple_dictPs



z%TestDictFields.test_write_simple_dictcCs�t�}tj|ddddg�}|j�|j|j�d�|jddddddidd	dd
ddig�|j|j�d�dS)
Nr�r�r�r�z
f1,f2,f3
rrk�frM�Zxyzzf1,f2,f3
1,abc,f
2,5,xyz
)rrr�r�r�getvaluerc)rrGrrrr�test_write_multiple_dict_rows[s	
z,TestDictFields.test_write_multiple_dict_rowscCs#t�}|jttj|�dS)N)rr
rrr�)rrGrrr�test_write_no_fieldses	z#TestDictFields.test_write_no_fieldscCs�tddd���}tj|ddddg�}|jt��&}|jdd	dd
ddi�WdQRXt|j�}|jd|�|jd
|�|j	d|�|jd|�WdQRXdS)Nzw+rArr�r�r�r�Zf4rKZspamrrkz'f4'z'f2'rq)
rrr�r
rvrB�str�	exception�assertInZassertNotIn)rrGrZcxr�rrr�#test_write_fields_not_in_fieldnamesis&z2TestDictFields.test_write_fields_not_in_fieldnamescCsztd��g}|jd�|jd�tj|ddddg�}|jt|�dddd	dd
i�WdQRXdS)Nzw+z	1,2,abc
rr�r�r�r�rqr�rk)rr^rCr�
DictReaderrr{)rrGrrrr�test_read_dict_fieldsus

z$TestDictFields.test_read_dict_fieldscCs�td��t}|jd�|jd�tj|�}|jt|�dddddd	i�|j|jdddg�WdQRXdS)
Nzw+zf1,f2,f3
1,2,abc
rr�rqr�r�r�rk)rr^rCrr�rr{r�)rrGrrrr�test_read_dict_no_fieldnames}s

(z+TestDictFields.test_read_dict_no_fieldnamescCs�td���}|jd�|jd�tj|dttj|���}|j|jdddg�|jt|�dddd	dd
i�WdQRXdS)Nzw+zf1,f2,f3
1,2,abc
rr�r�r�r�rqr�rk)	rr^rCrr�r{rrr�)rrGrrrr�#test_read_dict_fieldnames_from_file�s

z2TestDictFields.test_read_dict_fieldnames_from_filecCs�ddl}td���}|jd�|jd�tj|�}t|�}x[|j|g|�D]D}|j|j	dddg�|j|dddddd	i�qfWWdQRXdS)
Nrzw+zf1,f2,f3
1,2,abc
r�r�r�rqr�rk)
�	itertoolsrr^rCrr�r{�chainrr�)rr�rGr�firstr�rrr�test_read_dict_fieldnames_chain�s

z.TestDictFields.test_read_dict_fieldnames_chaincCs�td��p}|jd�|jd�tj|dddg�}|jt|�dddddd	d
ddgi�WdQRXdS)
Nzw+z1,2,abc,4,5,6
rr�r�r�rqr�rkr�rrr�)rr^rCrr�rr{)rrGrrrr�test_read_long�s

zTestDictFields.test_read_longcCs�td��v}|jd�|jd�tj|dddgdd�}|jt|�dd	dd
dddd
dgi�WdQRXdS)Nzw+z1,2,abc,4,5,6
rr�r�r��restkey�_restrqr�rkr�rrr�)rr^rCrr�rr{)rrGrrrr�test_read_long_with_rest�s

z'TestDictFields.test_read_long_with_restcCs�td���}|jd�|jd�tj|dd�}|j|jddg�|jt|�dddd	dd
ddd
gi�WdQRXdS)Nzw+zf1,f2
1,2,abc,4,5,6
rr�r�r�r�rqr�rkr�rrr�)rr^rCrr�rr�r{)rrGrrrr�&test_read_long_with_rest_no_fieldnames�s

z5TestDictFields.test_read_long_with_rest_no_fieldnamescCs�td���}|jd�|jd�tj|ddj�dd�}|jt|�ddd	d	d
dddd
d
ddi�|jt|�ddd	d	d
dddd
dddi�WdQRXdS)Nzw+z1,2,abc,4,5,6
1,2,abc
rr�z1 2 3 4 5 6ZrestvalZDEFAULTrqr�rsrkr�rrr�)rr^rCrr��splitrr{)rrGrrrr�test_read_short�s

	!!zTestDictFields.test_read_shortcCsbdddg}tj|ddj��}|jt|�dddd	d
ddd
ddi�dS)Nz2147483648,43.0e12,17,abc,def
z147483648,43.0e2,17,abc,def
z47483648,43.0,170,abc,def
r�zi1 float i2 s1 s2Zi1Z
2147483648�floatz43.0e12Zi2Z17�s1rk�s2r�)rr�r�rr{)rZsamplerrrr�test_read_multi�s	zTestDictFields.test_read_multicCs�tjdddgddj��}|jt|�ddddddd	d	d
d
ddi�|jt|�ddddddd	d	d
d
ddi�dS)Nz1,2,abc,4,5,6
z
r�z1 2 3 4 5 6rqr�rsrkr�rrr�)rr�r�rr{)rrrrr�test_read_with_blanks�s	!!z$TestDictFields.test_read_with_blankscCsbtjdgddj�dd�}|jt|�dddddd	d
d
ddddi�dS)
Nz1;2;abc;4;5;6
r�z1 2 3 4 5 6rr�rqr�rsrkr�rrr�)rr�r�rr{)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�r�rrrrr�Ms

				
	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	�|�WdQRXdS)NrcSsg|]}d|�qS)�r)�.0rOrrr�
<listcomp>�s	z2TestArrayWrites.test_int_write.<locals>.<listcomp>r�rOzw+rArr r�rcSsg|]}t|��qSr)r�)rrOrrrr�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	�|�WdQRXdS)NrcSsg|]}d|d�qS)r�g�������?r)rrOrrrr�s	z5TestArrayWrites.test_double_write.<locals>.<listcomp>r�rbzw+rArr r�rcSsg|]}t|��qSr)r�)rrOrrrr�s	z
)
rrrrrrBrrCrrD)rrrrXrGrr�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	�|�WdQRXdS)NrcSsg|]}d|d�qS)r�g�������?r)rrOrrrr�s	z4TestArrayWrites.test_float_write.<locals>.<listcomp>r�r�zw+rArr r�rcSsg|]}t|��qSr)r�)rrOrrrrs	z
)
rrrrrrBrrCrrD)rrrrXrGrr�rrr�test_float_write�s
 
z TestArrayWrites.test_float_writecCs�ddl}ddl}|jd|j�}tddd��_}tj|dd�}|j|�dj|�d	}|jd�|j	|j
�|�WdQRXdS)
Nr�uzw+rArr r�rz
)r�stringZ
ascii_lettersrrrrBrrCrrD)rrr
rXrGrr�rrr�test_char_writes

zTestArrayWrites.test_char_writeN)r;r<r=rrrrrrrrr��sr�c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestDialectValiditycCsBGdd�dtj�}|�}|j|jtj�d|_|jtj|�d|_tj|_d|_	|�}|j|jtj�|j|j	d�|j
|j�d|_	|jtj��}|�WdQRX|jt|j�d�d|_	|jtj��}|�WdQRX|jt|j�d�dS)	Nc@s7eZdZdZdZdZdZdZej	Z
dS)z3TestDialectValidity.test_quoting.<locals>.mydialectr�r.FTz
N)r;r<r=rr"r!r$r
rr2rrrrr�	mydialectsr
Trz''z("quotechar" must be a 1-character stringr�z#"quotechar" must be string, not int)
rr�rrr2r
rr!rr	�
assertTruer�r�)rr
rb�cmrrr�test_quotings,							z TestDialectValidity.test_quotingcCsMGdd�dtj�}|�}|j|jd�d|_|jtj��}|�WdQRX|jt|j�d�d|_|jtj��}|�WdQRX|jt|j�d�d|_|jtj��}|�WdQRX|jt|j�d�d	|_|jtj��}|�WdQRX|jt|j�d
�dS)Nc@s7eZdZdZdZdZdZdZej	Z
dS)z5TestDialectValidity.test_delimiter.<locals>.mydialectr�r.FTz
N)r;r<r=rr"r!r$r
rr2rrrrrr
4sr
r�z:::z("delimiter" must be a 1-character stringr�,z%"delimiter" must be string, not bytesr�z#"delimiter" must be string, not int)rr�rrr
rr�r�)rr
rbrrrr�test_delimiter3s.					z"TestDialectValidity.test_delimiterc
Cs�Gdd�dtj�}|�}|j|jd�d|_|�}|j|jd�d|_|jtj��}|�WdQRX|jt|j�d�dS)Nc@s7eZdZdZdZdZdZdZej	Z
dS)z:TestDialectValidity.test_lineterminator.<locals>.mydialectr�r.FTz
N)r;r<r=rr"r!r$r
rr2rrrrrr
Wsr
z
z:::r�z!"lineterminator" must be a string)rr�rr
r
rr�r�)rr
rbrrrr�test_lineterminatorVs				z'TestDialectValidity.test_lineterminatorc
Cs�dd�}x�dD]�}|jd|��i|jtj||d�|jtj||d�|jtj||d	�|jtj||d
�WdQRXqWdS)NcSs6Gdd�dtj�}t|||�|�}dS)Nc@seZdZdS)zQTestDialectValidity.test_invalid_chars.<locals>.create_invalid.<locals>.mydialectN)r;r<r=rrrrr
msr
)rr�r()�
field_name�valuer
rbrrr�create_invalidlsz>TestDialectValidity.test_invalid_chars.<locals>.create_invalidrr"r	rrrk�xr�)rr"r	)ZsubTestr
rr)rrrrrr�test_invalid_charsks
z&TestDialectValidity.test_invalid_charsN)r;r<r=rrrrrrrrrs"#rc@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)rrr$rZassertFalser!r!r%rr r/)rrr rrr�test_doublequote�szTestSniffer.test_doublequoteN)r;r<r=rr%rr*r+r,r-r.r!r r/rr"r&r0r1rrrrrzs rc@s"eZdZdd�ZeZdS)�NULcGsdS)Nr)�sr)rrrr^�sz	NUL.writeN)r;r<r=r^�
writelinesrrrrr2�sr2�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
rtT)	�sysr5r�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�rtT)
r7r5r2rr8r9rr:rr)rr;r<r3rOr=rrr�test_create_writes	





zTestLeaks.test_create_writecCs�d}dgd}tj�}xmtd�D]_}tj�|jtjg�tj�}tj|�}x|D]}qqW||}|}q,W|j|dkd�dS)Nrza,b,c
r�r�T)	r7r5rr8r9rr:rr)rr;r�r<rOr=Zrdrr�rrr�	test_reads




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)NrrrMrtr�r�T)r2r7r5rr8r9rr:rrrB)	rr;r�r3r<rOr=rr�rrr�
test_write"s	



zTestLeaks.test_writeN)r;r<r=r>r?r@rArrrrr6�sr6c@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�WdQRXdS)	Nrzw+rArr�zutf-8rz
)
�iorr^r�namesrCrrrrg)rrCrGrrrr�test_unicode_read:s
zTestUnicode.test_unicode_readc
Cs�ddl}tddddd��_}tj|�}|j|j�dj|j�d}|jd�|j|j	�|�WdQRXdS)	Nrzw+rArr�zutf-8rz
)
rCrrrrBrDrrCrrD)rrCrGrr�rrr�test_unicode_writeCs
zTestUnicode.test_unicode_writeN)r;r<r=rDrErFrrrrrB3s		rB�__main__)#�copyrCr7�osZunittestrZtempfilerrr8�pickleZtestrZTestCaserr�r�r�r�r�r�r�r�r�r�r�rrr2Z
skipUnless�hasattrr6rBr;�mainrrrr�<module>s>�>la			�.jqA