a ze"@sddlZddlZddlZddlmZddlmZddlZddlZddl Z ddl m Z ddl m Z ddlmZddlmZGdd d ZGd d d ejZGd d d ejZGdddejZGdddeZGdddejZGdddeZGdddeZGdddejZGdddeZGdddejZGdddejZGd d!d!ejZ Gd"d#d#ejZ!Gd$d%d%Z"e#e$ed&d'Gd(d)d)ejZ%Gd*d+d+ejZ&Gd,d-d-ejZ'Gd.d/d/ejZ(e)d0kre*dS)1N)StringIO) TemporaryFile)support) permutations)dedent) OrderedDictc@seZdZddZdS) BadIterablecCstdSNOSErrorselfrA/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_csv.py__iter__szBadIterable.__iter__N)__name__ __module__ __qualname__rrrrrrsrc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zejd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Z d9d:Z!d;d<Z"d=d>Z#d?d@Z$dAdBZ%dCS)DTest_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) NrZbad_attr delimiterZXXZfoo) quotechar)lineterminatorquoting)rr) assertRaises TypeErrorcsvError QUOTE_ALL)r ctorargrrr_test_arg_valids$   zTest_Csv._test_arg_validcCs$|tjg|ttjtdSr )r%r readerrr rr rrrtest_reader_arg_valid/szTest_Csv.test_reader_arg_validcCs4|tjtGddd}|ttj|dS)Nc@seZdZeddZdS)z1Test_Csv.test_writer_arg_valid..BadWritercSstdSr r r rrrwrite6sz7Test_Csv.test_writer_arg_valid..BadWriter.writeN)rrrpropertyr(rrrr BadWriter5sr*)r%r writerrrr )r r*rrrtest_writer_arg_valid3szTest_Csv.test_writer_arg_validcGs||}||jjd||jjd||jjd||jjd||jjd||jjt j ||jj d||jj d| tt|jd| tt|jdd| tt|jd| tt|jdddS) N,T "Fr:r) assertEqualdialectrassertIs doublequote escapecharrrrr QUOTE_MINIMALskipinitialspacestrictrAttributeErrordelattrsetattr)r r#argsobjrrr_test_default_attrs;s zTest_Csv._test_default_attrscCs|tjgdSr )r>r r&r rrrtest_reader_attrsMszTest_Csv.test_reader_attrscCs|tjtdSr )r>r r+rr rrrtest_writer_attrsPszTest_Csv.test_writer_attrsc Gstdddddtjddd}||i|}||jjd||jjd||jjd||jj d||jj d||jj tj||jj d||jj ddS)Nr0F\ *T)rr4r5rrrr7r8)dictr QUOTE_NONEr1r2rr3r4r5rrrr7r8)r r#r<kwargsr=rrr_test_kw_attrsSszTest_Csv._test_kw_attrscCs|tjgdSr )rGr r&r rrrtest_reader_kw_attrscszTest_Csv.test_reader_kw_attrscCs|tjtdSr )rGr r+rr rrrtest_writer_kw_attrsfszTest_Csv.test_writer_kw_attrscGsGddd}||f}||}||jjd||jjd||jjd||jjd||jjd||jjt j ||jj d||jj ddS) Nc@s.eZdZdZdZdZdZdZej Z dZ dZ dS)z-Test_Csv._test_dialect_attrs..dialect-F^$#TN) rrrrr4r5rrr r"rr7r8rrrrr2ksr2rJFrKrLrMT) r1r2rr3r4r5rrrr r"r7r8)r r#r<r2r=rrr_test_dialect_attrsis zTest_Csv._test_dialect_attrscCs|tjgdSr )rNr r&r rrrtest_reader_dialect_attrssz"Test_Csv.test_reader_dialect_attrscCs|tjtdSr )rNr r+rr rrrtest_writer_dialect_attrssz"Test_Csv.test_writer_dialect_attrscKsntdddN}tj|fi|}|||d||||jjWdn1s`0YdSNw+rnewliner) rr r+writerowseekr1readr2r)r fieldsexpectrFfileobjr+rrr _write_tests    zTest_Csv._write_testc Kstdddp}tj|fi|}||||Wdn1sJ0Y|d||dWdn1s0YdSrQ)rr r+rrUrVr1rW)r excrXrFrZr+rrr_write_error_tests  ( zTest_Csv._write_error_testcCs|tjd|dd|dgd|jtjdgtjd|ttGddd}|t|Gddd}|t|gdS) Nrr""rc@seZdZddZddZdS)z.Test_Csv.test_write_arg_valid..BadListcSsdS)N rr rrr__len__sz6Test_Csv.test_write_arg_valid..BadList.__len__cSs|dkr tdS)Nr )r irrr __getitem__sz:Test_Csv.test_write_arg_valid..BadList.__getitem__N)rrrr`rcrrrrBadListsrdc@seZdZddZdS)z.Test_Csv.test_write_arg_valid..BadItemcSstdSr r r rrr__str__sz6Test_Csv.test_write_arg_valid..BadItem.__str__N)rrrrerrrrBadItemsrf)r]r r!r[rEr r)r rdrfrrrtest_write_arg_valids zTest_Csv.test_write_arg_validcCs$dd}|||gd||fdS)NXP%s,%s)r[)r bigstringrrrtest_write_bigfields zTest_Csv.test_write_bigfieldcCs|gdd|jtjgdtjd|jgddtjd|jgddtjd|jgddtjd|jddgdtjddS) Narzp,q a,1,"p,q"rz "a",1,"p,q"z "a","1","p,q"a brz "a b","1")r[r]r r!rEr6QUOTE_NONNUMERICr"r rrrtest_write_quotings     zTest_Csv.test_write_quotingcCs|jgdddd|jtjgdddd|jgddddd|jd gd dtjd |jd gd dtjdd |jd gd dtjd |jgdddtjd dS)NrmrorAr5)rnrzp,"q"F)r5r4z a,1,"p,\"q\""r/"""")r5rz\")r5rr4za,1,p\,q)r[r]r r!r6rEr rrrtest_write_escapes,      zTest_Csv.test_write_escapecCs||tgdd|tgdd|tgd|tdgd|jtjtdgtjd|tddgddS) Nrmro)rnrNza,1,rr^rr-)r[iterr]r r!rEr rrrtest_write_iterables zTest_Csv.test_write_iterablecCsGddd}t|}|t|jdggtdddZ}t|}|t|jd|ddgdd gg|d || d Wdn1s0YdS) Nc@seZdZddZdS)z+Test_Csv.test_writerows..BrokenFilecSstdSr r )r bufrrrr(sz1Test_Csv.test_writerows..BrokenFile.writeN)rrrr(rrrr BrokenFilesryrnrRrrSbcdrz a,b c,d ) r r+rr writerowsrrrVr1rW)r ryr+rZrrrtest_writerowss   zTest_Csv.test_writerowscCs0tdddJ}t|}|ddgddgg|d||dWdn1s\0YtdddF}t|}|dgdgg|d||dWdn1s0YtdddF}t|}|dgdgg|d||d Wdn1s"0YdS) NrRrrSrnr|rza, ,d z"" a za "" )rr r+r}rVr1rWr rZr+rrrtest_writerows_with_nones  .  .  z!Test_Csv.test_writerows_with_nonecCs\tddd<}t|}|t|jd|t|jtWdn1sN0YdS)NrRrrS)rr r+rrr}r rrrrrtest_writerows_errorss zTest_Csv.test_writerows_errorscCstddl}|d}tdddB}t|}||gg|d||dWdn1sf0YdS)NrrnrRrrSza ) _testcapiZunicode_legacy_stringrr r+r}rVr1rW)r rr{rZr+rrrtest_writerows_legacy_stringss   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 gddS) Nrz"ab"crr8zabcabcr)r4sabcrrr r!r rrrtest_read_oddinputs s    zTest_Csv.test_read_oddinputscCs|dgddgg|dgddgg|dgddgg|dgddgg|tj|jdgg|tj|jdgg|tj|jd ggdS) Nza,brnrzza,b za,b za,b za,b c,dza,b c,dza,b c,drr rrr test_read_eolszTest_Csv.test_read_eolcCs|dgddgg|dgdgg|jdgdggdd|jtj|jdggdd |jtj|jdggdd |jtj|jdggddd dS) Nza,"rnrz"arK rsTr)r5r8rr rrr test_read_eof#s  zTest_Csv.test_read_eofcCs|jdggdgdd|jdgddggdd|jdgddggdd|jd gddggdd|jd gdd ggdd|jd gdd ggdddS)Nza,\b,c)rnrzr{rArsza,b\,crnzb,cza,"b\,c"za,"b,\c"z a,"b,c\""zb,c"za,"b,c"\zb,c\)rr rrrtest_read_escape,s zTest_Csv.test_read_escapecCs|dggdg|jdggdgddd|jdggdgtjdd|jdggdgtjd |d gd d gg|jt|jd gggtjd dS)Nz 1,",3,",5)1z,3,5)rr/3r/rrA)rr5rr5z ,3,"5",7.3, 9)rrg333333@ rz"a b", 7rpz 7zabc,3)rr rErqr ValueErrorr rrrtest_read_quoting4s zTest_Csv.test_read_quotingc Cst}zd}d|}d||f}||g||ggt|||g||gg|t|t|d|tj|j|gg|ttjd|ttjddWt|n t|0dS)Nrirhrjr)r Zfield_size_limitrr1rr!r)r limitsizerkZbiglinerrrtest_read_bigfieldBs  zTest_Csv.test_read_bigfieldcCs~tgd}||jdt|||jdt|||jdt|||jd|tt|||jddS)N)zline,1zline,2zline,3rrrar)r r&r1Zline_numnextr StopIteration)r rrrrtest_read_linenumUszTest_Csv.test_read_linenumcCstdddf}t|}ddgddgg}|||dtt|D]\}}||||qJWdn1sx0YdS) NrRrrSrprzr{x dr)rr r+r}rV enumerater&r1r rZr+rowsrbrowrrrtest_roundtrip_quoteed_newlinesas   z(Test_Csv.test_roundtrip_quoteed_newlinescCstdddv}tj|tjdd}ddgdd gg}|||d ttj|tjddD]\}}||||qZWdn1s0YdS) NrRrrSrArrprzr{rr) rr r+rEr}rVrr&r1rrrr(test_roundtrip_escaped_unquoted_newlinesjs  z1Test_Csv.test_roundtrip_escaped_unquoted_newlinesN)&rrrr%r'r,r>r?r@rGrHrIrNrOrPr[r]rgrlrrrurwr~rrrZ cpython_onlyrrrrrrrrrrrrrrrrsD      rc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)TestDialectRegistrycCs|ttjd|ttj|tjtjd|tjtjd|ttj|tjtjd|tjtjd|ttjd|ttjdd|ttjddd|jttjddd|jttjddd|ttjgdS)NZnonesuchr)Z badargumentr)rrr list_dialects get_dialectr!unregister_dialectregister_dialectr rrrtest_registry_badargsts"  z)TestDialectRegistry.test_registry_badargscCsvGdddtj}d}t|g}|t|||tj||t|j dt t}|||dS)Nc@seZdZdZdS)z5TestDialectRegistry.test_registry..myexceltsv Nrrrrrrrr myexceltsvsrr) r excelrsortr addCleanuprr1rrsorted)r rnameZexpected_dialectsZ got_dialectsrrr test_registrys  z!TestDialectRegistry.test_registrycCsXd}tj|dd|tj||t|jd|gdgttdg|dS)NZfedcba;r)rhYZzX;Y;Z) r rrrr1rrrr&)r rrrrtest_register_kwargss z(TestDialectRegistry.test_register_kwargscCs$Gdddtj}|tj|dS)Nc@seZdZdZdS)z?TestDialectRegistry.test_incomplete_dialect..myexceltsvrNrrrrrrsr)r Dialectrr!)r rrrrtest_incomplete_dialectsz+TestDialectRegistry.test_incomplete_dialectcCsGdddtj}td\}|d|dtj||d}|t|ddg|t|d d gWdn1s|0YdS) Nc@seZdZdZejZdZdS)z5TestDialectRegistry.test_space_dialect..space rAN)rrrrr rErr5rrrrspacesrrRzabc def c1ccccc1 benzene rr2rdefZc1ccccc1Zbenzene)r rrr(rVr&r1r)r rrZr&rrrtest_space_dialects   z&TestDialectRegistry.test_space_dialectcOsrtddddP}tj|g|Ri|}|gd|d|||Wdn1sd0YdS)NrRrutf-8rTencodingrrarr)rr r+rUrVr1rW)r expectedZ writeargsZ kwwriteargsrZr+rrrcompare_dialect_123s  z'TestDialectRegistry.compare_dialect_123c CsGdddtj}Gdddtj}Gdddtj}Gdddtj}Gd d d }td|z||d |jd dd |jd |d |d ||jd|d |jddd |jd|dd|jd|d Wtdn td0dS)Nc@seZdZdZdS)z5TestDialectRegistry.test_dialect_apply..testArNrrrrrtestAsrc@seZdZdZdS)z5TestDialectRegistry.test_dialect_apply..testBr0NrrrrrtestBsrc@seZdZdZdS)z5TestDialectRegistry.test_dialect_apply..testC|NrrrrrtestCsrc@seZdZdZdS)z7TestDialectRegistry.test_dialect_apply..testUniuΛNrrrrrtestUnisrc@s eZdZdS)z;TestDialectRegistry.test_dialect_apply..unspecifiedNrrrrrrr unspecifiedsrz1,2,3 rz1 2 3 z1:2:3 z1|2|3 z1;2;3 r)r2ru 1Λ2Λ3 )r rrrr)r rrrrrrrrtest_dialect_applys(   z&TestDialectRegistry.test_dialect_applycCsT|jttjgdd|jttjgdd|jttjgdd|jttjgdddS)Nrrrrd)rrr r&r rrrtest_bad_dialectsz$TestDialectRegistry.test_bad_dialectcCs,tD]}t|}|ttj|qdSr )r rrrrcopy)r rr2rrr test_copys  zTestDialectRegistry.test_copycCsBtD]4}t|}ttjdD]}|ttj||q$qdS)Nr) r rrrangepickleHIGHEST_PROTOCOLrrdumps)r rr2protorrr test_pickles  zTestDialectRegistry.test_pickleN) rrrrrrrrrrrrrrrrrrss   rc@seZdZddZddZdS) TestCsvBasecCshtdddH}|||dtj||jd}t|}|||Wdn1sZ0YdS)NrRrrSrr)rr(rVr r&r2rr1)r rexpected_resultrZr&rXrrrreaderAssertEquals   zTestCsvBase.readerAssertEqualcCsdtdddD}tj||jd}|||d|||Wdn1sV0YdS)NrRrrSrr)rr r+r2r}rVr1rW)r rrrZr+rrrwriterAssertEquals   zTestCsvBase.writerAssertEqualN)rrrrrrrrrrsrc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4S)5TestDialectExcelrcCs|ddggdS)Nrrr rrr test_singleszTestDialectExcel.test_singlecCs|dgdgdS)Nz 1,2,3,4,5)r2r4rrr rrr test_simpleszTestDialectExcel.test_simplecCs|dgdSNrrr rrrtest_blanklineszTestDialectExcel.test_blanklinecCs|dddggdS)Nr-rrr rrrtest_empty_fieldssz"TestDialectExcel.test_empty_fieldscCs|ddggdS)Nr^rrr rrrtest_singlequotedsz"TestDialectExcel.test_singlequotedcCs|dddggdS)Nz"",rrr rrrtest_singlequoted_left_emptysz-TestDialectExcel.test_singlequoted_left_emptycCs|dddggdS)Nz,""rrr rrrtest_singlequoted_right_empty sz.TestDialectExcel.test_singlequoted_right_emptycCs|ddggdS)Nrtr/rr rrrtest_single_quoted_quote sz)TestDialectExcel.test_single_quoted_quotecCs|ddggdS)Nz""""""r^rr rrrtest_quoted_quotessz#TestDialectExcel.test_quoted_quotescCs|ddggdS)Nza""brr rrrtest_inline_quotesz"TestDialectExcel.test_inline_quotecCs|ddggdS)Nza"b"crr rrrtest_inline_quotessz#TestDialectExcel.test_inline_quotescCs|ddggdS)Nz"a"babrr rrrtest_quotes_and_moresz%TestDialectExcel.test_quotes_and_morecCs|ddggdS)Nza"brr rrrtest_lone_quotesz TestDialectExcel.test_lone_quotecCs|ddggdS)Nz"a" "b"za "b"rr rrrtest_quote_and_quote sz%TestDialectExcel.test_quote_and_quotecCs|ddggdS)Nz "a"rr rrrtest_space_and_quote%sz%TestDialectExcel.test_space_and_quotecCs|dgdgdS)Nz#1,2,3,"I think, therefore I am",5,6)rrrzI think, therefore I amr6rr rrr test_quoted(szTestDialectExcel.test_quotedcCs|dgdgdS)NzJ1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw")rrrz"I see," said the blind manz"as he picked up his hammer and sawrr rrrtest_quoted_quote.sz"TestDialectExcel.test_quoted_quotecCs d}||gdgdgdS)NzR1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw" 9,8,7,6)rrrz"I see," said the blind manz"as he picked up his hammer and saw)987rr)r rrrrtest_quoted_nl4s zTestDialectExcel.test_quoted_nlcCs|dgdgdS)Nz 12,12,1",)12rz1"rrr rrrtest_dubious_quote@sz#TestDialectExcel.test_dubious_quotecCs|gddSrrr rrr test_nullCszTestDialectExcel.test_nullcCs|dggddS)Nrzabc rr rrrtest_single_writerFsz#TestDialectExcel.test_single_writercCs|gdgddS)N)rrarrz 1,2,abc,3,4 rr rrrtest_simple_writerIsz#TestDialectExcel.test_simple_writercCs|gdgddS)N)rraza"bc"rrz1,2,"a""bc""",3,4 rr rrr test_quotesLszTestDialectExcel.test_quotescCs|dggddSNabc,defz "abc,def" rr rrrtest_quote_fieldsepOsz$TestDialectExcel.test_quote_fieldsepcCs|gdgddS)N)rraza bcrrz1,2,"a bc",3,4 rr rrr test_newlinesRszTestDialectExcel.test_newlinesN)rrrr2rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrs4 rc@seZdZejZdZdS) EscapedExcelrAN)rrrr rErr5rrrrrUsrc@s"eZdZeZddZddZdS)TestEscapedExcelcCs|dggddS)Nr abc\,def rr rrrtest_escape_fieldsep\sz%TestEscapedExcel.test_escape_fieldsepcCs|ddggdS)Nrrrr rrrtest_read_escape_fieldsep_sz*TestEscapedExcel.test_read_escape_fieldsepN)rrrrr2rr rrrrrYsrc@s eZdZdZddZddZdS)TestDialectUnixZunixcCs|gdgddS)N)rabc defr"1","abc def","abc" rr rrrresz"TestDialectUnix.test_simple_writercCs|dgdgdS)Nr )rr rrr rrrtest_simple_readerhsz"TestDialectUnix.test_simple_readerN)rrrr2rr rrrrr bsr c@seZdZejZdZdS)QuotedEscapedExcelrAN)rrrr rqrr5rrrrrksrc@s"eZdZeZddZddZdS)TestQuotedEscapedExcelcCs|dggddSrrr rrrtest_write_escape_fieldseprsz1TestQuotedEscapedExcel.test_write_escape_fieldsepcCs|ddggdS)Nz "abc\,def" rrr rrrr usz0TestQuotedEscapedExcel.test_read_escape_fieldsepN)rrrrr2rr rrrrrosrc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'S)(TestDictFieldscCsVtddd6}tj|gdd}|}||dWdn1sH0YdS)NrRrrSf1f2f3 fieldnamesr_)rr DictWriter writeheaderr1)r rZr+Zwriteheader_return_valuerrrtest_writeheader_return_value{sz,TestDictFields.test_writeheader_return_valuecCstdddv}tj|gdd}||d||d|dd d |d|||d Wdn1s0YdS) NrRrrSrrr f1,f2,f3 r_r)rrz 10,,abc ) rr rrrVr1readlinerUrWrrrrtest_write_simple_dicts  z%TestDictFields.test_write_simple_dictcCsbt}tj|gdd}|||d|ddddddd dg||d dS) NrrrrrfraZxyzzf1,f2,f3 1,abc,f 2,5,xyz )rr rrr1getvaluer}rrrrtest_write_multiple_dict_rowss  z,TestDictFields.test_write_multiple_dict_rowscCst}|ttj|dSr )rrrr rr rZrrrtest_write_no_fieldssz#TestDictFields.test_write_no_fieldsc Cstddd}tj|gdd}|t"}|dddd Wdn1sR0Yt|j}|d ||d || d ||d |Wdn1s0YdS)NrRrrSrrr_Zspamr)Zf4rrrz'f4'z'f2'r) rr rrrrUstr exceptionassertInZ assertNotIn)r rZr+Zcxr%rrr#test_write_fields_not_in_fieldnamess 0    z2TestDictFields.test_write_fields_not_in_fieldnamescCs$t}|jttj|ddgdddS)NrrZraisedZ extrasaction)rrrr rr"rrr&test_typo_in_extrasaction_raises_errorsz5TestDictFields.test_typo_in_extrasaction_raises_errorcCs@t}tj|ddgdd}ddddd }|ttjj||dS) Nrrraiser(rrrarZf0rrr)rr rrrrUr rZr+Zdictrowrrr)test_write_field_not_in_field_names_raisesz8TestDictFields.test_write_field_not_in_field_names_raisecCsJt}tj|ddgdd}ddddd }tj||||d dS) Nrrignorer(rrrarr+z1,2 )rr rrUr1r r,rrr*test_write_field_not_in_field_names_ignores z9TestDictFields.test_write_field_not_in_field_names_ignorecCsjtdN}|d|dtj|gdd}|t|ddddWdn1s\0YdS) NrRz 1,2,abc rrrrrrrr(rVr DictReaderr1rr rZr&rrrtest_read_dict_fieldss   z$TestDictFields.test_read_dict_fieldscCsttdX}|d|dt|}|t|dddd||jgdWdn1sf0YdS)NrRf1,f2,f3 1,2,abc rrrrr)rr(rVr r1r1rrr2rrrtest_read_dict_no_fieldnamess     z+TestDictFields.test_read_dict_no_fieldnamescCstdf}|d|dtj|tt|d}||jgd|t|ddddWdn1st0YdS) NrRr4rrrrrr) rr(rVr r1rr&r1rr2rrr#test_read_dict_fieldnames_from_files    z2TestDictFields.test_read_dict_fieldnames_from_filec Csddl}tdp}|d|dt|}t|}||g|D]*}||j gd||ddddqFWdn1s0YdS)NrrRr4rrrr) itertoolsrr(rVr r1rchainr1r)r r7rZr&firstrrrrtest_read_dict_fieldnames_chains    z.TestDictFields.test_read_dict_fieldnames_chaincCsntdR}|d|dtj|ddgd}|t|ddgd d Wdn1s`0YdS) NrR1,2,abc,4,5,6 rrrrrrrrrr)rrNr0r2rrrtest_read_longs   zTestDictFields.test_read_longcCsptdT}|d|dtj|ddgdd}|t|dd gd d Wdn1sb0YdS) NrRr;rrr_rest)rrestkeyrrr<rrr>r0r2rrrtest_read_long_with_rests   z'TestDictFields.test_read_long_with_restcCs|td`}|d|dtj|dd}||jddg|t|dd gd d Wdn1sn0YdS) NrRzf1,f2 1,2,abc,4,5,6 rr>r?rrrrr<r@)rr(rVr r1r1rrr2rrr&test_read_long_with_rest_no_fieldnamess   z5TestDictFields.test_read_long_with_rest_no_fieldnamesc Cstdt}|d|dtj|ddd}|t|ddd d d d d |t|ddd dddd Wdn1s0YdS)NrRz1,2,abc,4,5,6 1,2,abc r 1 2 3 4 5 6ZDEFAULT)rZrestvalrrrrrrrrrrrr)rr(rVr r1splitr1rr2rrrtest_read_shorts   zTestDictFields.test_read_shortc Cs:gd}tj|dd}|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.0e12Z17rr)Zi1floatZi2s1s2r r1rFr1r)r sampler&rrrtest_read_multis zTestDictFields.test_read_multic CsVtjgddd}|t|dddddd d |t|dddddd d dS) N)r;r.r;rDrrrrrrrrErKr r&rrrtest_read_with_blankss z$TestDictFields.test_read_with_blanksc Cs8tjdgddd}|t|ddddd d d dS) Nz1;2;abc;4;5;6 rDr)rrrrrrrrrErKrNrrrtest_read_semi_sepsz!TestDictFields.test_read_semi_sepN)rrrrrr!r#r'r)r-r/r3r5r6r:r=rArCrGrMrOrPrrrrrxs&           rc@s,eZdZddZddZddZddZd S) TestArrayWritescCsddl}ddtdD}|d|}tdddZ}tj|d d }||d d d|Dd }|d|| |Wdn1s0YdS)NrcSsg|] }d|qS)r.0rbrrr (z2TestArrayWrites.test_int_write..rRrbrRrrSrrr-cSsg|] }t|qSrr$rSrrrrU.rVr. arrayrrr r+rUjoinrVr1rWr rYcontentsrnrZr+rrrrtest_int_write&s   zTestArrayWrites.test_int_writecCsddl}ddtdD}|d|}tdddZ}tj|d d }||d d d|Dd }|d|| |Wdn1s0YdS)NrcSsg|]}d|dqSrRg?rrSrrrrU4rVz5TestArrayWrites.test_double_write..rRr|rRrrSrrr-cSsg|] }t|qSrrWrSrrrrU9rVr.rXr[rrrtest_double_write2s   z!TestArrayWrites.test_double_writecCsddl}ddtdD}|d|}tdddZ}tj|d d }||d d d|Dd }|d|| |Wdn1s0YdS)NrcSsg|]}d|dqSr^rrSrrrrU?rVz4TestArrayWrites.test_float_write..rRrrRrrSrrr-cSsg|] }t|qSrrWrSrrrrUDrVr.rXr[rrrtest_float_write=s   z TestArrayWrites.test_float_writecCsddl}ddl}|d|j}tdddP}tj|dd}||d|d }|d| | |Wdn1s0YdS) NrurRrrSrrr-r.) rYstring ascii_lettersrr r+rUrZrVr1rW)r rYrbrnrZr+rrrrtest_char_writeHs  zTestArrayWrites.test_char_writeN)rrrr]r_r`rdrrrrrQ%s   rQc@s4eZdZddZddZddZddZd d Zd S) TestDialectValiditycCsGdddtj}|}||jtjd|_|tj|d|_tj|_d|_ |}||jtj||j d| |jd|_ |tj}|Wdn1s0Y|t |j dd|_ |tj}|Wdn1s0Y|t |j ddS) Nc@s&eZdZdZdZdZdZdZej Z dS)z3TestDialectValidity.test_quoting..mydialectrrAFTr.N rrrrr5r4r7rr rErrrrr mydialectUs rgTr/z''z("quotechar" must be a 1-character stringrz+"quotechar" must be string or None, not int) r rr1rrErr!r4r"r assertTruer$r%r rgr|cmrrr test_quotingTs0 $ $ z TestDialectValidity.test_quotingcCsGdddtj}|}||jdd|_|tj}|Wdn1sT0Y|t|jdd|_|tj}|Wdn1s0Y|t|jdd|_|tj}|Wdn1s0Y|t|jdd |_|tj}|Wdn1s40Y|t|jd d|_|tj}|Wdn1s0Y|t|jd dS) Nc@s&eZdZdZdZdZdZdZej Z dS)z5TestDialectValidity.test_delimiter..mydialectrrAFTr.Nrfrrrrrgws rgr:::z("delimiter" must be a 1-character stringr,z%"delimiter" must be string, not bytesrz#"delimiter" must be string, not intz("delimiter" must be string, not NoneType)r rr1rrr!r$r%rirrrtest_delimitervsB$ $ $ & & z"TestDialectValidity.test_delimitercCsGdddtj}|}||jdd|_|tjd|Wdn1sV0Yd|_|tjd|Wdn1s0Yd|_|tjd |Wdn1s0YdS) Nc@s&eZdZdZdZdZdZdZej Z dS)z6TestDialectValidity.test_escapechar..mydialectrrAFTr.Nrfrrrrrgs rgrAz**z)"escapechar" must be a 1-character string*z."escapechar" must be string or None, not bytesrz,"escapechar" must be string or None, not int)r rr1r5ZassertRaisesRegexr!)r rgr|rrrtest_escapechars$$z#TestDialectValidity.test_escapecharcCsGdddtj}|}||jdd|_|}||jdd|_|tj}|Wdn1sn0Y|t|jddS)Nc@s&eZdZdZdZdZdZdZej Z dS)z:TestDialectValidity.test_lineterminator..mydialectrrAFTr.Nrfrrrrrgs rgr.rlrz!"lineterminator" must be a string)r rr1rrr!r$r%rirrrtest_lineterminators$ z'TestDialectValidity.test_lineterminatorc Csdd}dD]x}|j|dX|tj||d|tj||d|tj||d|tj||dWdq 1sz0Yq dS) NcSs(Gdddtj}t||||}dS)Nc@s eZdZdS)zQTestDialectValidity.test_invalid_chars..create_invalid..mydialectNrrrrrrgsrg)r rr;) field_namevaluergr|rrrcreate_invalids z>TestDialectValidity.test_invalid_chars..create_invalid)rr5r)rrrrxr)subTestrr r!)r rtrrrrrtest_invalid_charssz&TestDialectValidity.test_invalid_charsN)rrrrkrnrprqrwrrrrreSs ")rec@sheZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d d ZddZddZddZddZddZdS) TestSnifferzHarry'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" z05/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" zHarry'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}|||jd|||j|jddSNFT)r Snifferr3 has_headersample1header1r snifferrrrtest_has_header szTestSniffer.test_has_headercCs:t}|||jd|||j|jddSry)r rzr3r{sample8header2r~rrr'test_has_header_regex_special_delimitersz3TestSniffer.test_has_header_regex_special_delimiterc Cst}dD]r}||T||d}||jd||jd||jd||j dWdq 1st0Yq dS)N)z ;'123;4';z'123;4';z;'123;4'z'123;4'z,;r'F) r rzrvsniffr1rrr3r4r7)r rheaderr2rrrtest_guess_quote_and_delimiters  z*TestSniffer.test_guess_quote_and_delimitercCsxt}||j}||jd||jd||jd||j }||jd||jd||jddS)Nr-r/Tr0rF) r rzrr|r1rrr3r7sample2r rr2rrr test_sniff s  zTestSniffer.test_sniffcCst}||j}||j|j|j|jdd}||jd|j|jdd}||jd||j}||jd||j}||jd||j }||jd||j }||jd||j d ||j }||jd ||j }||jd ||j d dS) Nz?,)Z delimiters?z/,/rrrr+)r rzrsample3r&rr1sample4sample5sample6sample7rrsample9rrrrtest_delimiters,s*       zTestSniffer.test_delimiterscCst}||j}||j||j}||j||j}||j||j }||j||j }||jdSr ) r rzrr}Z assertFalser4rrrhrrrrrrtest_doublequoteFs         zTestSniffer.test_doublequoteN)rrrr|rr}rrrrrrrrrrrrrrrrrrrxs"  rxc@seZdZddZeZdS)NULcGsdSr r)sr<rrrr(Tsz NUL.writeN)rrrr( writelinesrrrrrSsrgettotalrefcountzrequires sys.gettotalrefcount()c@s,eZdZddZddZddZddZd S) TestLeakscCsxd}t}tdD]R}t|tjgt}tdgtdgtdg||}|}q| |ddS)NrrRa,b,c r sysrrgccollectr1garbager r& assertLess)r deltalastrcrbrcrrrtest_create_read[s    zTestLeaks.test_create_readcCsxd}t}t}tdD]L}t|tjgt}t |t |t |||}|}q| |ddS)NrrRr) rrrrrrr1rr r+r)r rrrrbrrrrtest_create_writejs    zTestLeaks.test_create_writecCsrd}dgd}t}tdD]B}t|tjgt}t|}|D]}qN||}|}q| |ddS)NrrrrRr)r rrrrbrZrdrrrrr test_readzs   zTestLeaks.test_readc Csd}gdgd}t}t}tdD]L}t|tjgt}t |}|D]}| |qX||}|}q(| |ddS)NrrrrR) rrrrrrr1rr r+rUr) r rrrrrbrr+rrrr test_writes   zTestLeaks.test_writeN)rrrrrrrrrrrrXsrc@s$eZdZgdZddZddZdS) TestUnicode)uMartin von LöwisuMarc André LemburgzGuido van RossumuFrançois PinardcCsptddddN}|d|jd|dt|}|t||jgWdn1sb0YdSNrRrrrr-r.r) rr(rZnamesrVr r&r1rr2rrrtest_unicode_reads   zTestUnicode.test_unicode_readcCsrtddddP}t|}||jd|jd}|d|||Wdn1sd0YdSr) rr r+rUrrZrVr1rW)r rZr+rrrrtest_unicode_writes    zTestUnicode.test_unicode_writeN)rrrrrrrrrrrsrc@seZdZddZddZdS)KeyOrderingTestc Cst}tdD]z}tddddX}t||}||dt|}t|j }| ||| |Wdq1s~0Yq| t |dddS) NZabcderRrrrrxz@Key ordering: some key permutations not collected (expected 120)) setrrr rrrVr1tuplerr1addlen)r Z resultsetkeysZ fileobjectZdwZdrZktrrr,test_ordering_for_the_dict_reader_and_writers      *zsN      ^qa   ..y A4