ó {G_Tc@sddlZddlZddlZddlmZddlZddlZddlZddlZddlm Z dej fd„ƒYZ dej fd„ƒYZ dej fd „ƒYZ d e fd „ƒYZd ejfd „ƒYZde fd„ƒYZdejfd„ƒYZde fd„ƒYZdej fd„ƒYZdej fd„ƒYZdej fd„ƒYZdej fd„ƒYZdfd„ƒYZejeedƒdƒd ej fd!„ƒYƒZd"„Zed#krýeƒndS($iÿÿÿÿN(tStringIO(t test_supporttTest_CsvcBs eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(s° 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( Ntbad_attrit delimitertXXtfooit quotechartlineterminatortquotingt(t assertRaisest TypeErrortNonetcsvtErrort QUOTE_ALL(tselftctortarg((s)/usr/local/lib/python2.7/test/test_csv.pyt_test_arg_valids cCs|jtjgƒdS(N(RRtreader(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_reader_arg_valid'scCs|jtjtƒƒdS(N(RRtwriterR(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_writer_arg_valid*scGs-||Œ}|j|jjdƒ|j|jjtƒ|j|jjdƒ|j|jjdƒ|j|jjdƒ|j|jj t j ƒ|j|jj t ƒ|j|jjt ƒ|jtt|jdƒ|jtt|jddƒ|jtt|jdƒ|jtt|jddƒdS(Nt,s t"Rt:R (t assertEqualtdialectRt doublequotetTruet escapecharR RRR Rt QUOTE_MINIMALtskipinitialspacetFalsetstrictR R tdelattrtsetattrtAttributeError(RRtargstobj((s)/usr/local/lib/python2.7/test/test_csv.pyt_test_default_attrs-s cCs|jtjgƒdS(N(R*RR(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_reader_attrs?scCs|jtjtƒƒdS(N(R*RRR(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_writer_attrsBscGstdddtdddddd d tjd td tƒ}|||Ž}|j|jjdƒ|j|jjtƒ|j|jj dƒ|j|jj dƒ|j|jj d ƒ|j|jj tjƒ|j|jj tƒ|j|jjtƒdS( NRRRR s\Rs Rt*R R"R$(tdictR#Rt QUOTE_NONERRRRRR RRR R"R$(RRR(tkwargsR)((s)/usr/local/lib/python2.7/test/test_csv.pyt_test_kw_attrsEs  cCs|jtjgƒdS(N(R1RR(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_reader_kw_attrsUscCs|jtjtƒƒdS(N(R1RRR(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_writer_kw_attrsXscGsãddd„ƒY}||f}||Œ}|j|jjdƒ|j|jjtƒ|j|jjdƒ|j|jjdƒ|j|jjdƒ|j|jjt j ƒ|j|jj t ƒ|j|jj tƒdS(NRcBs;eZdZeZdZdZdZej Z e Z eZ RS(t-t^t$t#(t__name__t __module__RR#RR RRRRR RR"R$(((s)/usr/local/lib/python2.7/test/test_csv.pyR]s R4R5R6R7((RRRRR#R RRR RRR"RR$(RRR(RR)((s)/usr/local/lib/python2.7/test/test_csv.pyt_test_dialect_attrs[s  cCs|jtjgƒdS(N(R:RR(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_reader_dialect_attrsqscCs|jtjtƒƒdS(N(R:RRR(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_writer_dialect_attrstscKs“tjƒ\}}tj|dƒ}zPtj||}|j|ƒ|jdƒ|j|j ƒ||j j ƒWd|j ƒtj |ƒXdS(Nsw+bi(ttempfiletmkstemptostfdopenRRtwriterowtseekRtreadRRtclosetunlink(RtfieldstexpectR0tfdtnametfileobjR((s)/usr/local/lib/python2.7/test/test_csv.pyt _write_testxs   cCsÌ|jtj|jddƒ|jddƒ|jdgdƒ|jtj|jdgddtjƒdd d„ƒY}|jt|j|ƒdƒdd d„ƒY}|jt|j|ƒgdƒdS( NR s""R tBadListcBseZd„Zd„ZRS(cSsdS(Ni ((R((s)/usr/local/lib/python2.7/test/test_csv.pyt__len__scSs|dkrt‚ndS(Ni(tIOError(Rti((s)/usr/local/lib/python2.7/test/test_csv.pyt __getitem__s (R8R9RMRP(((s)/usr/local/lib/python2.7/test/test_csv.pyRLŒs tBadItemcBseZd„ZRS(cSs t‚dS(N(RN(R((s)/usr/local/lib/python2.7/test/test_csv.pyt__str__”s(R8R9RR(((s)/usr/local/lib/python2.7/test/test_csv.pyRQ“s((((R RRRKR R/RN(RRLRQ((s)/usr/local/lib/python2.7/test/test_csv.pyttest_write_arg_valid…scCs.dd}|j||gd||fƒdS(NtXiPÃs%s,%s(RK(Rt bigstring((s)/usr/local/lib/python2.7/test/test_csv.pyttest_write_bigfield˜s cCsÐ|jdddgdƒ|jtj|jdddgddtjƒ|jdddgddtjƒ|jdddgddtjƒ|jdddgddtjƒ|jd dgd dtjƒdS( Ntaisp,qs a,1,"p,q"sa,1,p,qR s "a",1,"p,q"s "a","1","p,q"sa bs "a b","1"(RKR RRR/R!tQUOTE_NONNUMERICR(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_write_quotingžs     c Cs |jdddgdddƒ|jtj|jdddgdddd tƒ|jdddgdddd tƒ|jd gd ddd tjƒ|jd gd ddd tjd tƒ|jd gd ddd tjƒ|jdddgdddd tjƒdS(NRWisp,qs a,1,"p,q"R s\sp,"q"s a,1,"p,\"q\""RRs""""R s\"sa,1,p\,q(RKR RRR R#R!R/(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_write_escape­s"   cCsïdd d„ƒY}tj|ƒƒ}|jt|jdggƒtjƒ\}}tj|dƒ}zktj|ƒ}|jt |jdƒ|jddgddggƒ|j dƒ|j |j ƒd ƒWd|jƒtj|ƒXdS( Nt BrokenFilecBseZd„ZRS(cSs t‚dS(N(RN(Rtbuf((s)/usr/local/lib/python2.7/test/test_csv.pytwriteÂs(R8R9R](((s)/usr/local/lib/python2.7/test/test_csv.pyR[ÁsRWsw+btbtctdis a,b c,d ((RRR RNt writerowsR=R>R?R@R R RBRRCRDRE(RR[RRHRIRJ((s)/usr/local/lib/python2.7/test/test_csv.pyttest_writerowsÀs  cCs†ddddg}tƒ}tj|dtjƒ}|j|ƒ|jdƒtj|dtjƒ}t|ƒ}|j||ƒdS(NgòQŒBÊÀó?gð?g@tabcR i( RRRRXRARBRtnextR(Rtorig_rowtfR_tnew_row((s)/usr/local/lib/python2.7/test/test_csv.pyttest_write_floatÒs    cKs2tj||}t|ƒ}|j||ƒdS(N(RRtlistR(RtinputRGR0Rtresult((s)/usr/local/lib/python2.7/test/test_csv.pyt _read_testÞs cCs“|jggƒ|jdgggƒ|jtj|jdgdddƒ|jtj|jdgdddƒ|jdgdggddƒdS( NR s"ab"cR$itabcRcRi(RlR RRR (R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_oddinputsãscCsÑ|jdgddggƒ|jdgddggƒ|jdgddggƒ|jdgddggƒ|jtj|jdggƒ|jtj|jdggƒ|jtj|jd ggƒdS( Nsa,bRWR^sa,b sa,b sa,b sa,b c,dsa,b c,dsa,b c,d(RlR RR(R((s)/usr/local/lib/python2.7/test/test_csv.pyt test_read_eolísc CsÍ|jdgddggƒ|jdgdggƒ|jdgdggddƒ|jtj|jdggdtƒ|jtj|jdggdtƒ|jtj|jdggdddtƒdS( Nsa,"RWR s"aR5s R R$(RlR RRR(R((s)/usr/local/lib/python2.7/test/test_csv.pyt test_read_eofös%%cCsÓ|jdgdddggddƒ|jdgddggddƒ|jd gddggddƒ|jd gddggddƒ|jd gdd ggddƒ|jd gddggddƒdS(Nsa,\b,cRWR^R_R s\sa,b\,csb,csa,"b\,c"sa,"b,\c"s a,"b,c\""sb,c"sa,"b,c"\sb,c\(Rl(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_escapeÿs %""""cCsú|jdgdddggƒ|jdgdddddggdddd ƒ|jdgdddddggd tjdd ƒ|jd gd d dddggd tjƒ|jdgddggƒ|jt|jdgggd tjƒdS(Ns 1,",3,",5t1s,3,t5Rt3RR s\R s ,3,"5",7.3, 9R ig333333@i s"a b", 7sa bs 7sabc,3(RlR RR/RXR t ValueError(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_quotings$ $$ cCsÿtjƒ}zÞd}d|}d||f}|j|g||ggƒtj|ƒ|j|g||ggƒ|jtjƒ|ƒtj|dƒ|jtj|j|ggƒ|jttjdƒ|jttjddƒWdtj|ƒXdS(NiPÃRTs%s,%si(Rtfield_size_limitRlRR RR R (RtlimittsizeRUtbigline((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_bigfields   cCsÞx×tjdddgƒtjdddgddddgƒfD]–}|j|jdƒ|jƒ|j|jd ƒ|jƒ|j|jd ƒ|jƒ|j|jd ƒ|jt|jƒ|j|jd ƒq@WdS( Nsline,1sline,2sline,3t fieldnamesRWR^R_iiii(RRt DictReaderRtline_numRdR t StopIteration(Rtr((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_linenum(s   cCsØtjƒ\}}tj|dƒ}z•tj|ƒ}|jt|jdƒddgddgg}|j|ƒ|j dƒx7t tj |ƒƒD] \}}|j |||ƒq”WWd|jƒtj|ƒXdS(Nsw+bsa bR^R_sx di(R=R>R?R@RRR R RaR RBt enumerateRRRDRE(RRHRIRJRtrowsROtrow((s)/usr/local/lib/python2.7/test/test_csv.pyttest_roundtrip_quoteed_newlines6s  " (R8R9t__doc__RRRR*R+R,R1R2R3R:R;R<RKRSRVRYRZRbRhRlRnRoRpRqRvR{RR…(((s)/usr/local/lib/python2.7/test/test_csv.pyRs:                      tTestDialectRegistrycBsGeZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs=|jttjdƒ|jttjƒ|jtjtjdƒ|jtjtjdƒ|jttjƒ|jtjtjdƒ|jtjtjdƒ|jttjdƒ|jttjddƒ|jttjdddƒ|jttjdddƒ|jttjdddƒ|jttjgƒdS(Ntnonesuchit badargumentR ( R R Rt list_dialectsR t get_dialectRtunregister_dialecttregister_dialect(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_registry_badargsFscCs¡dtjfd„ƒY}d}tjƒ|g}|jƒtj||ƒ|jtj|ƒ|jtj|ƒj dƒt tjƒƒ}|j||ƒdS(Nt myexceltsvcBseZdZRS(s (R8R9R(((s)/usr/local/lib/python2.7/test/test_csv.pyRXss ( RtexcelRŠtsortRt addCleanupRŒRR‹Rtsorted(RRRItexpected_dialectst got_dialects((s)/usr/local/lib/python2.7/test/test_csv.pyt test_registryWs cCs}d}tj|ddƒ|jtj|ƒ|jtj|ƒjdƒ|jdddggttjdg|ƒƒƒdS(NtfedcbaRt;RTtYtZsX;Y;Z( RRR’RŒRR‹RRiR(RRI((s)/usr/local/lib/python2.7/test/test_csv.pyttest_register_kwargscs cCs0dtjfd„ƒY}|jtj|ƒdS(NRcBseZdZRS(s (R8R9R(((s)/usr/local/lib/python2.7/test/test_csv.pyRks(RtDialectR R(RR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_incomplete_dialectjscCsÊdtjfd„ƒY}tjƒ\}}tj|dƒ}zn|jdƒ|jdƒtj|d|ƒƒ}|j |j ƒddgƒ|j |j ƒd d gƒWd|j ƒtj |ƒXdS( NtspacecBseZdZejZdZRS(t s\(R8R9RRR/R R (((s)/usr/local/lib/python2.7/test/test_csv.pyRžps sw+bsabc def c1ccccc1 benzene iRRctdeftc1ccccc1tbenzene( RRR=R>R?R@R]RBRRRdRDRE(RRžRHRIRJtrdr((s)/usr/local/lib/python2.7/test/test_csv.pyttest_space_dialectos    cCsIdtjfd„ƒY}dtjfd„ƒY}dtjfd„ƒY}tjd|ƒzÙtjƒ\}}tj|dƒ}zLtj|ƒ}|jdd d gƒ|j d ƒ|j |j ƒd ƒWd|j ƒtj |ƒXtjƒ\}}tj|dƒ}zOtj||ƒ}|jdd d gƒ|j d ƒ|j |j ƒd ƒWd|j ƒtj |ƒXtjƒ\}}tj|dƒ}zUtj|d|ƒƒ}|jdd d gƒ|j d ƒ|j |j ƒdƒWd|j ƒtj |ƒXtjƒ\}}tj|dƒ}zRtj|ddƒ}|jdd d gƒ|j d ƒ|j |j ƒdƒWd|j ƒtj |ƒXtjƒ\}}tj|dƒ}zXtj|d|ddƒ}|jdd d gƒ|j d ƒ|j |j ƒdƒWd|j ƒtj |ƒXWdtjdƒXdS(NttestAcBseZdZRS(s (R8R9R(((s)/usr/local/lib/python2.7/test/test_csv.pyR¥‚sttestBcBseZdZRS(R(R8R9R(((s)/usr/local/lib/python2.7/test/test_csv.pyR¦„sttestCcBseZdZRS(t|(R8R9R(((s)/usr/local/lib/python2.7/test/test_csv.pyR§†ssw+biiiis1,2,3 s1 2 3 Rs1:2:3 s1|2|3 RR˜s1;2;3 (RRRR=R>R?R@RRARBRRCRDRERŒ(RR¥R¦R§RHRIRJR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_dialect_applysf          cCst|jttjgddƒ|jttjgddƒ|jttjgddƒ|jttjgddƒdS(NRiRR iÿÿÿÿid(R R RRR (R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_bad_dialectÅs( R8R9RŽR–R›RR¤R©Rª(((s)/usr/local/lib/python2.7/test/test_csv.pyR‡Es     Dt TestCsvBasecBseZd„Zd„ZRS(cCs•tjƒ\}}tj|dƒ}zR|j|ƒ|jdƒtj|d|jƒ}t |ƒ}|j ||ƒWd|j ƒtj |ƒXdS(Nsw+biR( R=R>R?R@R]RBRRRRiRRDRE(RRjtexpected_resultRHRIRJRRF((s)/usr/local/lib/python2.7/test/test_csv.pytreaderAssertEqualÎs    cCstjƒ\}}tj|dƒ}zLtj|d|jƒ}|j|ƒ|jdƒ|j |j ƒ|ƒWd|j ƒtj |ƒXdS(Nsw+bRi( R=R>R?R@RRRRaRBRRCRDRE(RRjR¬RHRIRJR((s)/usr/local/lib/python2.7/test/test_csv.pytwriterAssertEqualÛs   (R8R9R­R®(((s)/usr/local/lib/python2.7/test/test_csv.pyR«Ís tTestDialectExcelcBsïeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(RcCs|jddggƒdS(NRc(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyt test_singleêscCs&|jddddddggƒdS(Ns 1,2,3,4,5Rrt2Rtt4Rs(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyt test_simpleíscCs|jdgƒdS(NR (R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_blanklineðscCs|jdddggƒdS(NRR (R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_empty_fieldsóscCs|jddggƒdS(Ns""R (R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_singlequotedöscCs|jdddggƒdS(Ns"",R (R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_singlequoted_left_emptyùscCs|jdddggƒdS(Ns,""R (R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_singlequoted_right_emptyüscCs|jddggƒdS(Ns""""R(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_single_quoted_quoteÿscCs|jddggƒdS(Ns""""""s""(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_quoted_quotesscCs|jddggƒdS(Nsa""b(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_inline_quotescCs|jddggƒdS(Nsa"b"c(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_inline_quotesscCs|jddggƒdS(Ns"a"btab(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_quotes_and_more scCs|jddggƒdS(Nsa"b(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_lone_quotescCs|jddggƒdS(Ns"a" "b"sa "b"(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_quote_and_quotescCs|jddggƒdS(Ns "a"(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_space_and_quotescCs)|jdddddddggƒdS(Ns#1,2,3,"I think, therefore I am",5,6RrR±RtsI think, therefore I amRst6(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyt test_quoteds  cCs&|jddddddggƒdS(NsJ1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw"RrR±Rts"I see," said the blind mans"as he picked up his hammer and saw(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_quoted_quote!s  cCs;d}|j|dddddgddd d ggƒdS( NsR1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw" 9,8,7,6RrR±Rts"I see," said the blind mans"as he picked up his hammer and sawt9t8t7RÂ(R­(RRj((s)/usr/local/lib/python2.7/test/test_csv.pyttest_quoted_nl's   cCs#|jdddddggƒdS(Ns 12,12,1",t12s1"R (R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_dubious_quote3scCs|jgdƒdS(NR (R®(R((s)/usr/local/lib/python2.7/test/test_csv.pyt test_null6scCs|jdggdƒdS(NRcsabc (R®(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_single_writer9scCs&|jdddddggdƒdS(NiiRciis 1,2,abc,3,4 (R®(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_simple_writer<scCs&|jdddddggdƒdS(Niisa"bc"iis1,2,"a""bc""",3,4 (R®(R((s)/usr/local/lib/python2.7/test/test_csv.pyt test_quotes?scCs|jdggdƒdS(Nsabc,defs "abc,def" (R®(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_quote_fieldsepBscCs&|jdddddggdƒdS(Niisa bciis1,2,"a bc",3,4 (R®(R((s)/usr/local/lib/python2.7/test/test_csv.pyt test_newlinesEs(R8R9RR°R³R´RµR¶R·R¸R¹RºR»R¼R¾R¿RÀRÁRÃRÄRÈRÊRËRÌRÍRÎRÏRÐ(((s)/usr/local/lib/python2.7/test/test_csv.pyR¯çs4                       t EscapedExcelcBseZejZdZRS(s\(R8R9RR/R R (((s)/usr/local/lib/python2.7/test/test_csv.pyRÑHs tTestEscapedExcelcBs#eZeƒZd„Zd„ZRS(cCs|jdggdƒdS(Nsabc,defs abc\,def (R®(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_escape_fieldsepOscCs|jddggƒdS(Ns abc\,def sabc,def(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_escape_fieldsepRs(R8R9RÑRRÓRÔ(((s)/usr/local/lib/python2.7/test/test_csv.pyRÒLs  tQuotedEscapedExcelcBseZejZdZRS(s\(R8R9RRXR R (((s)/usr/local/lib/python2.7/test/test_csv.pyRÕUs tTestQuotedEscapedExcelcBs#eZeƒZd„Zd„ZRS(cCs|jdggdƒdS(Nsabc,defs "abc,def" (R®(R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_write_escape_fieldsep\scCs|jddggƒdS(Ns "abc\,def" sabc,def(R­(R((s)/usr/local/lib/python2.7/test/test_csv.pyRÔ_s(R8R9RÕRR×RÔ(((s)/usr/local/lib/python2.7/test/test_csv.pyRÖYs  tTestDictFieldscBs†eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „ZRS(cCsÚtjƒ\}}tj|dƒ}z—tj|ddddgƒ}|jƒ|jdƒ|j|j ƒdƒ|j idd6d d6ƒ|jdƒ|j ƒ|j|j ƒd ƒWd|j ƒt j|ƒXdS( Nsw+bR|tf1tf2tf3is f1,f2,f3 i Rcs 10,,abc (R=R>tiotopenRt DictWritert writeheaderRBRtreadlineRARCRDR?RE(RRHRIRJR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_write_simple_dictes     cCs#tƒ}|jttj|ƒdS(N(RR R RRÞ(RRJ((s)/usr/local/lib/python2.7/test/test_csv.pyttest_write_no_fieldsus cCsîtjƒ\}}tj|dƒ}z«tj|ddddgƒ}|jtƒ)}|jidd6dd6d d 6ƒWdQXt |j ƒ}|j d|ƒ|j d |ƒ|j d |ƒ|j d |ƒWd|j ƒtj|ƒXdS(Nsw+bR|RÙRÚRÛi tf4tspamRcis'f4's'f2'Rr(R=R>R?R@RRÞR RuRAtstrt exceptiontassertInt assertNotInRDRE(RRHRIRJRtcxRæ((s)/usr/local/lib/python2.7/test/test_csv.pyt#test_write_fields_not_in_fieldnamesys( cCsªtjƒ\}}tj|dƒ}zg|jdƒ|jdƒtj|ddddgƒ}|j|j ƒidd6d d6d d6ƒWd|j ƒtj |ƒXdS( Nsw+bs 1,2,abc iR|RÙRÚRÛRrR±Rc( R=R>R?R@R]RBRR}RRdRDRE(RRHRIRJR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_dict_fieldsŠs   / cCs·tjƒ\}}tj|dƒ}zt|jdƒ|jdƒtj|ƒ}|j|j dddgƒ|j|j ƒidd6dd6d d6ƒWd|j ƒtj |ƒXdS( Nsw+bsf1,f2,f3 1,2,abc iRÙRÚRÛRrR±Rc( R=R>R?R@R]RBRR}RR|RdRDRE(RRHRIRJR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_dict_no_fieldnames—s  / cCsÌtjƒ\}}tj|dƒ}z‰|jdƒ|jdƒtj|dtj|ƒj ƒƒ}|j |j dddgƒ|j |j ƒidd6d d6d d6ƒWd|j ƒtj |ƒXdS( Nsw+bsf1,f2,f3 1,2,abc iR|RÙRÚRÛRrR±Rc(R=R>R?R@R]RBRR}RRdRR|RDRE(RRHRIRfR((s)/usr/local/lib/python2.7/test/test_csv.pyt#test_read_dict_fieldnames_from_file¦s  $/ cCséddl}tjƒ\}}tj|dƒ}zš|jdƒ|jdƒtj|ƒ}t |ƒ}x^|j |g|ƒD]G}|j |j dddgƒ|j |idd6d d6d d6ƒq~WWd|j ƒtj|ƒXdS( Niÿÿÿÿsw+bsf1,f2,f3 1,2,abc iRÙRÚRÛRrR±Rc(t itertoolsR=R>R?R@R]RBRR}RdtchainRR|RDRE(RRîRHRIRfRtfirstR„((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_dict_fieldnames_chain³s    - cCs³tjƒ\}}tj|dƒ}zp|jdƒ|jdƒtj|dddgƒ}|j|j ƒidd6dd6d d d d gd6ƒWd|j ƒtj |ƒXdS( Nsw+bs1,2,abc,4,5,6 iR|RÙRÚRrR±RcR²RsRÂ( R=R>R?R@R]RBRR}RRdR RDRE(RRHRIRJR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_longÃs     cCs¹tjƒ\}}tj|dƒ}zv|jdƒ|jdƒtj|dddgddƒ}|j|j ƒid d6d d6d d d dgd6ƒWd|j ƒtj |ƒXdS(Nsw+bs1,2,abc,4,5,6 iR|RÙRÚtrestkeyt_restRrR±RcR²RsRÂ( R=R>R?R@R]RBRR}RRdRDRE(RRHRIRJR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_long_with_restÑs     cCsÆtjƒ\}}tj|dƒ}zƒ|jdƒ|jdƒtj|ddƒ}|j|j ddgƒ|j|j ƒidd6d d6d d d d gd6ƒWd|j ƒtj |ƒXdS(Nsw+bsf1,f2 1,2,abc,4,5,6 iRóRôRÙRÚRrR±RcR²RsRÂ( R=R>R?R@R]RBRR}RR|RdRDRE(RRHRIRJR((s)/usr/local/lib/python2.7/test/test_csv.pyt&test_read_long_with_rest_no_fieldnamesßs    cCstjƒ\}}tj|dƒ}z¿|jdƒ|jdƒtj|ddjƒddƒ}|j |j ƒidd6d d 6d d 6d d 6d d 6dd6ƒ|j |j ƒidd6d d 6d d 6dd 6dd 6dd6ƒWd|j ƒtj |ƒXdS(Nsw+bs1,2,abc,4,5,6 1,2,abc iR|s 1 2 3 4 5 6trestvaltDEFAULTRrR±RcRtR²RsRÂ( R=R>R?R@R]RBRR}tsplitRRdRDRE(RRHRIRJR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_shortís     '' cCsgdddg}tj|ddjƒƒ}|j|jƒidd6dd 6d d 6d d 6dd6ƒdS(Ns2147483648,43.0e12,17,abc,def s147483648,43.0e2,17,abc,def s47483648,43.0,170,abc,def R|si1 float i2 s1 s2t 2147483648ti1s43.0e12tfloatt17ti2Rcts1R ts2(RR}RùRRd(RtsampleR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_multiÿs  cCs¨tjdddgddjƒƒ}|j|jƒidd6dd6dd6d d 6d d 6d d 6ƒ|j|jƒidd6dd6dd6d d 6d d 6d d 6ƒdS( Ns1,2,abc,4,5,6 s R|s 1 2 3 4 5 6RrR±RcRtR²RsRÂ(RR}RùRRd(RR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_with_blankss  ''cCshtjdgddjƒddƒ}|j|jƒidd6dd6dd 6d d 6d d 6d d 6ƒdS( Ns1;2;abc;4;5;6 R|s 1 2 3 4 5 6RR˜RrR±RcRtR²RsRÂ(RR}RùRRd(RR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_read_semi_seps   '(R8R9RáRâRêRëRìRíRñRòRõRöRúRRR(((s)/usr/local/lib/python2.7/test/test_csv.pyRØbs           tTestArrayWritescBs,eZd„Zd„Zd„Zd„ZRS(c Csùddl}gtdƒD]}d|^q}|jd|ƒ}tjƒ\}}tj|dƒ}zutj|ddƒ}|j|ƒdj g|D]}t |ƒ^q—ƒd} |j d ƒ|j |j ƒ| ƒWd|jƒtj|ƒXdS( NiÿÿÿÿiROsw+bRRRs i(tarraytrangeR=R>R?R@RRRAtjoinRåRBRRCRDRE( RRROtcontentsRWRHRIRJRtexpected((s)/usr/local/lib/python2.7/test/test_csv.pyttest_int_writes # ,  c Csýddl}gtdƒD]}d|d^q}|jd|ƒ}tjƒ\}}tj|dƒ}zutj|ddƒ}|j|ƒdj g|D]}t |ƒ^q›ƒd } |j d ƒ|j |j ƒ| ƒWd|jƒtj|ƒXdS( Niÿÿÿÿigš™™™™™¹?R`sw+bRRRs i(RRR=R>R?R@RRRAR treprRBRRCRDRE( RRROR RWRHRIRJRR ((s)/usr/local/lib/python2.7/test/test_csv.pyttest_double_write0s ' ,  c Csýddl}gtdƒD]}d|d^q}|jd|ƒ}tjƒ\}}tj|dƒ}zutj|ddƒ}|j|ƒdj g|D]}t |ƒ^q›ƒd } |j d ƒ|j |j ƒ| ƒWd|jƒtj|ƒXdS( Niÿÿÿÿigš™™™™™¹?Rfsw+bRRRs i(RRR=R>R?R@RRRAR R RBRRCRDRE( RRROR RWRHRIRJRR ((s)/usr/local/lib/python2.7/test/test_csv.pyttest_float_write@s ' ,  c CsÌddl}ddl}|jd|jƒ}tjƒ\}}tj|dƒ}z\tj|ddƒ}|j |ƒdj |ƒd}|j dƒ|j |j ƒ|ƒWd|jƒtj|ƒXdS( NiÿÿÿÿR_sw+bRRRs i(RtstringtlettersR=R>R?R@RRRAR RBRRCRDRE( RRRRWRHRIRJRR ((s)/usr/local/lib/python2.7/test/test_csv.pyttest_char_writePs   (R8R9R RRR(((s)/usr/local/lib/python2.7/test/test_csv.pyRs   tTestDialectValiditycBs#eZd„Zd„Zd„ZRS(cCs@dtjfd„ƒY}|ƒ}|j|jtjƒd|_|jtj|ƒt|_ tj |_d|_ |ƒ}|j|jtj ƒ|j|j dƒ|j |j ƒd|_ |jtjƒ}|ƒWdQX|jt |jƒdƒd|_ |jtjƒ}|ƒWdQX|jt |jƒdƒdS(Nt mydialectcBs/eZdZdZeZeZdZe j Z RS(R˜s\s ( R8R9RR R#RRR"RRR/R (((s)/usr/local/lib/python2.7/test/test_csv.pyRas Rs''s)"quotechar" must be an 1-character stringis#"quotechar" must be string, not int(RRœRR R/R R RRRRRt assertTrueRåRæ(RRR`tcm((s)/usr/local/lib/python2.7/test/test_csv.pyt test_quoting`s,          cCsIdtjfd„ƒY}|ƒ}|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( NRcBs/eZdZdZeZeZdZe j Z RS(R˜s\s ( R8R9RR R#RRR"RRR/R (((s)/usr/local/lib/python2.7/test/test_csv.pyRƒs R˜s:::s)"delimiter" must be an 1-character stringR u,s'"delimiter" must be string, not unicodeis#"delimiter" must be string, not int(RRœRRR RRåRæ(RRR`R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_delimiter‚s.         cCs¢dtjfd„ƒY}|ƒ}|j|jdƒd|_|ƒ}|j|jdƒd|_|jtjƒ}|ƒWdQX|jt|jƒdƒdS(NRcBs/eZdZdZeZeZdZe j Z RS(R˜s\s ( R8R9RR R#RRR"RRR/R (((s)/usr/local/lib/python2.7/test/test_csv.pyR¦s s s:::is!"lineterminator" must be a string(RRœRRR RRåRæ(RRR`R((s)/usr/local/lib/python2.7/test/test_csv.pyttest_lineterminator¥s     (R8R9RRR(((s)/usr/local/lib/python2.7/test/test_csv.pyR_s " #t TestSniffercBsweZdZdZdZdZdZdZdZdZ dZ d Z d Z d „Z d „Zd „Zd„Zd„ZRS(sî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 s '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' s+"venue","city","state","date","performers" s¢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 sT2147483648;43.0e12;17;abc;def 147483648;43.0e2;17;abc;def 47483648;43.0;170;abc;def saaa bbb AAA BBB sa|b|c d|e|f s'a'|'b'|'c' 'd'|e|f s+"venue"+"city"+"state"+"date"+"performers" sî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 s'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ƒtƒ|j|j|j|jƒtƒdS(N(RtSnifferRt has_headertsample1R#theader1R(Rtsniffer((s)/usr/local/lib/python2.7/test/test_csv.pyttest_has_headerís cCsOtjƒ}|j|j|jƒtƒ|j|j|j|jƒtƒdS(N(RRRRtsample8R#theader2R(RR((s)/usr/local/lib/python2.7/test/test_csv.pyt'test_has_header_regex_special_delimiterós cCs¦tjƒ}|j|jƒ}|j|jdƒ|j|jdƒ|j|jtƒ|j|j ƒ}|j|jdƒ|j|jdƒ|j|jt ƒdS(NRRRt'( RRtsniffRRRRR"Rtsample2R#(RRR((s)/usr/local/lib/python2.7/test/test_csv.pyt test_sniffùs cCs’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|j d ƒ|j|j ƒ}|j|jd ƒ|j|j ƒ}|j|jd ƒ|j|j d ƒdS( Nt delimiterss?,t?s/,t/R˜s R¨R$t+(RRR%tsample3RçRRtsample4tsample5tsample6tsample7RR!tsample9(RRR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_delimiterss* cCsºtjƒ}|j|jƒ}|j|jƒ|j|jƒ}|j|jƒ|j|jƒ}|j|jƒ|j|j ƒ}|j|jƒ|j|j ƒ}|j|jƒdS(N( RRR%Rt assertFalseRR"R&RR!R1(RRR((s)/usr/local/lib/python2.7/test/test_csv.pyttest_doublequotes (R8R9RR&RR,R-R.R/R0R"R!R1R R#R'R2R4(((s)/usr/local/lib/python2.7/test/test_csv.pyR»s    tNULcBseZd„ZeZRS(cGsdS(N((tsR(((s)/usr/local/lib/python2.7/test/test_csv.pyR]-s(R8R9R]t writelines(((s)/usr/local/lib/python2.7/test/test_csv.pyR5,s tgettotalrefcountsrequires sys.gettotalrefcount()t TestLeakscBs,eZd„Zd„Zd„Zd„ZRS(cCs¬d}tjƒ}x}tdƒD]o}tjƒ|jtjgƒtjƒ}tjdgƒtjdgƒtjdgƒ||}|}qW|j|dkt ƒdS(Niisa,b,c i( tsysR8txrangetgctcollectRtgarbageRRR(RtdeltatlastrcROtrc((s)/usr/local/lib/python2.7/test/test_csv.pyttest_create_read4s     cCs¬d}tjƒ}tƒ}xttdƒD]f}tjƒ|jtjgƒtjƒ}tj |ƒtj |ƒtj |ƒ||}|}q(W|j|dkt ƒdS(Niii( R:R8R5R;R<R=RR>RRR(RR?R@R6RORA((s)/usr/local/lib/python2.7/test/test_csv.pyttest_create_writeCs         cCs©d}dgd}tjƒ}xmtdƒD]_}tjƒ|jtjgƒtjƒ}tj|ƒ}x|D]}qqW||}|}q,W|j|dkt ƒdS(Nisa,b,c ii( R:R8R;R<R=RR>RRR(RR?RƒR@RORAR£R„((s)/usr/local/lib/python2.7/test/test_csv.pyt test_readSs       c CsÈd}dddggd}tƒ}tjƒ}xztdƒD]l}tjƒ|jtjgƒtjƒ}tj |ƒ}x|D]}|j |ƒqƒW||}|}q>W|j|dkt ƒdS(Niiiiii( R5R:R8R;R<R=RR>RRRAR( RR?RƒR6R@RORARR„((s)/usr/local/lib/python2.7/test/test_csv.pyt test_writecs       (R8R9RBRCRDRE(((s)/usr/local/lib/python2.7/test/test_csv.pyR91s   cCsOtjt}tjgt|ƒD]$}|jdƒr t||ƒ^q ŒdS(NtTest(R:tmodulesR8Rt run_unittesttdirt startswithtgetattr(tmodRI((s)/usr/local/lib/python2.7/test/test_csv.pyt test_mainƒs t__main__(R:R?tunittestRR=RR<RÜttestRtTestCaseRR‡R«R¯RRÑRÒRÕRÖRØRRRR5t skipUnlessthasattrR9RMR8(((s)/usr/local/lib/python2.7/test/test_csv.pyts8       ÿ7ˆa  ¼A\q P