m
fIc           @   s  d  k  Z  d  k Z d  k Z d k l Z d  k Z d  k Z d  k Z d k l Z d e i	 f d     YZ
 d e i	 f d     YZ d e i	 f d     YZ d	 e f d
     YZ d e i f d     YZ d e f d     YZ d e i f d     YZ d e f d     YZ d e i	 f d     YZ d e i	 f d     YZ d e i	 f d     YZ d e i	 f d     YZ e e  d  p e i o	 d GHqn- d f  d     YZ d e i	 f d      YZ d!   Z e d" j o e   n d  S(#   N(   s   StringIO(   s   test_supportt   Test_Csvc           B   s   t  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   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.
    c         C   s   |  i t t i  |  i t t i d   |  i t t i g  d d |  i t i t i g  d  d f  d     Y} |  i t	 t i g  |  |  i t t i g  d   d f  d     Y} |  i t t i g  |  d  S(   Nt   bad_attri    t   foot   BadClassc           B   s   t  Z d   Z RS(   Nc         C   s
   t   d  S(   N(   t   IOError(   t   self(    (    t*   /mit/python/lib/python2.4/test/test_csv.pyt   __init__   s    (   t   __name__t
   __module__R   (    (    (    R   R      s   t
   BadDialectc           B   s   t  Z d Z RS(   Ni    (   R   R	   R   (    (    (    R   R
      s   (   R   t   assertRaisest	   TypeErrort   csvt   readert   Nonet   AttributeErrort   ErrorR   R   R
   (   R   R
   R   (    (    R   t   test_reader_arg_valid   s    c         C   sL   |  i t t i  |  i t t i d   |  i t t i t   d d d  S(   NR   i    (   R   R   R   R   t   writerR   R   t   StringIO(   R   (    (    R   t   test_writer_arg_valid"   s    c         C   s   |  i | i i d  d | i _ |  i | i i d  |  i t t | i d  |  i t t | i d d   d  | i _
 |  i | i i
 d   |  i t t | i d  |  i t t | i d d   t i | i _ |  i | i i t i  d  S(   Nt   ,s   	t	   delimitert   lineterminatort   quoting(   R   t   assertEqualt   objt   dialectR   R   R   t   delattrt   setattrR   t
   escapecharR   t   QUOTE_MINIMALR   (   R   R   (    (    R   t   _test_attrs'   s    
c         C   s   |  i t i g    d  S(   N(   R   R!   R   R   (   R   (    (    R   t   test_reader_attrs5   s    c         C   s   |  i t i t     d  S(   N(   R   R!   R   R   R   (   R   (    (    R   t   test_writer_attrs8   s    c         K   s   t  i   \ } } t i | d  } zP t i | |  } | i
 |  | i d  |  i | i   | | i i  Wd  | i   t i |  Xd  S(   Ns   w+bi    (   t   tempfilet   mkstempt   fdt   namet   ost   fdopent   fileobjR   R   t   kwargst   writerowt   fieldst   seekR   R   t   readt   expectR   R   t   closet   unlink(   R   R-   R0   R+   R'   R   R&   R*   (    (    R   t   _write_test;   s     
c         C   s   |  i t i |  i d  d  |  i f  d  |  i d  g d  |  i t i |  i d  g d  d t i d f  d     Y} |  i t |  i |   d  d f  d     Y} |  i t |  i |   g d  d  S(   Nt    s   ""R   t   BadListc           B   s   t  Z d   Z d   Z RS(   Nc         C   s   d S(   Ni
   (    (   R   (    (    R   t   __len__P   s    c         C   s   | d j o
 t  n d  S(   Ni   (   t   iR   (   R   R7   (    (    R   t   __getitem__R   s    (   R   R	   R6   R8   (    (    (    R   R5   O   s   	t   BadItemc           B   s   t  Z d   Z RS(   Nc         C   s
   t   d  S(   N(   R   (   R   (    (    R   t   __str__W   s    (   R   R	   R:   (    (    (    R   R9   V   s   (
   R   R   R   R   R3   R   t
   QUOTE_NONER5   R   R9   (   R   R9   R5   (    (    R   t   test_write_arg_validH   s    c         C   s.   d d } |  i | | g d | | f  d  S(   Nt   XiP  s   %s,%s(   t	   bigstringR   R3   (   R   R>   (    (    R   t   test_write_bigfield[   s    
c         C   s   |  i d d d g d  |  i t i |  i d d d g d d t i |  i d d d g d d t i |  i d d d g d d t i |  i d d d g d d t i d  S(   Nt   at   1s   p,qs	   a,1,"p,q"R   s   "a",1,"p,q"s   "a","1","p,q"(	   R   R3   R   R   R   R;   R    t   QUOTE_NONNUMERICt	   QUOTE_ALL(   R   (    (    R   t   test_write_quotinga   s    c         C   sK   |  i d d d g d d d |  i d d d g d d d d t i d  S(	   NR@   RA   s   p,qs	   a,1,"p,q"R   s   \s   a,1,p\,qR   (   R   R3   R   R;   (   R   (    (    R   t   test_write_escapen   s    
c         C   s   d f  d     Y} t i |    } |  i t | i d g g  t i   \ } } t i | d  } zk t i |  } |  i t | i d   | i d d g d d g g  | i d  |  i | i   d	  Wd  | i   t i |  Xd  S(
   Nt
   BrokenFilec           B   s   t  Z d   Z RS(   Nc         C   s
   t   d  S(   N(   R   (   R   t   buf(    (    R   t   writey   s    (   R   R	   RH   (    (    (    R   RF   x   s   R@   s   w+bt   bt   ct   di    s
   a,b
c,d
(   RF   R   R   R   R   R   t	   writerowsR$   R%   R&   R'   R(   R)   R*   R   R   R.   R   R/   R1   R2   (   R   RF   R'   R   R&   R*   (    (    R   t   test_writerowsw   s     
c         K   s2   t  i | |  } t |  } |  i | |  d  S(   N(	   R   R   t   inputR+   t   listt   resultR   R   R0   (   R   RN   R0   R+   R   RP   (    (    R   t
   _read_test   s    c         C   s   |  i g  g   |  i d g g  g  |  i t i |  i d g d  d d |  i t i |  i d g d  d d |  i d g d g g d d d  S(	   NR4   s   "ab"ct   stricti   t   ab ct   abct   doublequotei    (   R   RQ   R   R   R   R   (   R   (    (    R   t   test_read_oddinputs   s    c         C   s   |  i d g d d g g  |  i d g d d g g  |  i d g d d g g  |  i d g d d g g  |  i t i |  i d g g   |  i t i |  i d g g   |  i t i |  i d	 g g   d  S(
   Ns   a,bR@   RI   s   a,b
s   a,b
s   a,bs   a,bc,ds   a,b
c,ds   a,b
c,d(   R   RQ   R   R   R   (   R   (    (    R   t   test_read_eol   s    c         C   s   |  i d g d d d g g d d |  i d g d d g g d d |  i d	 g d d g g d d |  i d
 g d d g g d d |  i d g d d g g d d |  i d g d d g g d d d  S(   Ns   a,\b,cR@   s   \bRJ   R   s   \s   a,b\,cs   b,cs   a,"b\,c"s   a,"b,\c"s   b,\cs	   a,"b,c\""s   b,c"s   a,"b,c"\s   b,c\(   R   RQ   (   R   (    (    R   t   test_read_escape   s    %""""c         C   s:   d d } d | | f } |  i | g | | g g  d  S(   NR=   iP  s   %s,%s(   R>   t   biglineR   RQ   (   R   RY   R>   (    (    R   t   test_read_bigfield   s    
(   R   R	   t   __doc__R   R   R!   R"   R#   R3   R<   R?   RD   RE   RM   RQ   RV   RW   RX   RZ   (    (    (    R   R       s"    														
			t   TestDialectRegistryc           B   s>   t  Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   Nc         C   s  |  i t t i d   |  i t t i  |  i t i t i d   |  i t i t i d  |  i t t i  |  i t i t i d   |  i t i t i d  |  i t t i	 d   |  i t t i	 d  d   |  i t t i	 d d   d f  d     Y} |  i t t i	 d |  d  S(   Nt   nonesucht   bogusc           B   s   t  Z d   Z RS(   Nc         C   s
   t   d  S(   N(   t   KeyError(   R   (    (    R   R      s    (   R   R	   R   (    (    (    R   R^      s   (   R   R   R   R   t   list_dialectsR   t   get_dialectR   t   unregister_dialectt   register_dialectR^   R_   (   R   R^   (    (    R   t   test_registry_badargs   s    c         C   s   d t  i f d     Y} d } t  i   | g } | i   t  i | |  zI |  i	 t
 t  i |  |   t  i   } | i   |  i | |  Wd  t  i |  Xd  S(   Nt
   myexceltsvc           B   s   t  Z d Z RS(   Ns   	(   R   R	   R   (    (    (    R   Re      s   (   R   t   excelRe   R'   R`   t   expected_dialectst   sortRc   R   t
   failUnlesst
   isinstanceRa   t   got_dialectsR   Rb   (   R   R'   Re   Rk   Rg   (    (    R   t   test_registry   s    

 c         C   s0   d t  i f d     Y} |  i t  i |  d  S(   NRe   c           B   s   t  Z d Z RS(   Ns   	(   R   R	   R   (    (    (    R   Re      s   (   R   t   DialectRe   R   R   R   (   R   Re   (    (    R   t   test_incomplete_dialect   s    c         C   s   d t  i f d     Y} t i   \ } } t i | d  } zn | i
 d  | i d  t  i | d |   } |  i | i   d d g  |  i | i   d	 d
 g  Wd  | i   t i |  Xd  S(   Nt   spacec           B   s   t  Z d Z e i Z d Z RS(   Nt    s   \(   R   R	   R   R   R;   R   R   (    (    (    R   Ro      s   	s   w+bs   abc def
c1ccccc1 benzene
i    R   RT   t   deft   c1ccccc1t   benzene(   R   Rf   Ro   R$   R%   R&   R'   R(   R)   R*   RH   R.   R   t   rdrR   R   t   nextR1   R2   (   R   R'   Ro   Rt   R&   R*   (    (    R   t   test_space_dialect   s      
c         C   sI  d t  i f d     Y} d t  i f d     Y} d t  i f d     Y} t  i d |  zt i   \ } } t
 i | d  } zL t  i |  } | i d d	 d
 g  | i d  |  i | i   d  Wd  | i   t
 i |  Xt i   \ } } t
 i | d  } zO t  i | |  } | i d d	 d
 g  | i d  |  i | i   d  Wd  | i   t
 i |  Xt i   \ } } t
 i | d  } zU t  i | d |   } | i d d	 d
 g  | i d  |  i | i   d  Wd  | i   t
 i |  Xt i   \ } } t
 i | d  } zR t  i | d d } | i d d	 d
 g  | i d  |  i | i   d  Wd  | i   t
 i |  Xt i   \ } } t
 i | d  } zX t  i | d | d d } | i d d	 d
 g  | i d  |  i | i   d  Wd  | i   t
 i |  XWd  t  i d  Xd  S(   Nt   testAc           B   s   t  Z d Z RS(   Ns   	(   R   R	   R   (    (    (    R   Rw      s   t   testBc           B   s   t  Z d Z RS(   Nt   :(   R   R	   R   (    (    (    R   Rx      s   t   testCc           B   s   t  Z d Z RS(   Nt   |(   R   R	   R   (    (    (    R   Rz      s   s   w+bi   i   i   i    s   1,2,3
s   1	2	3
R   s   1:2:3
s   1|2|3
R   t   ;s   1;2;3
(   R   Rf   Rw   Rx   Rz   Rc   R$   R%   R&   R'   R(   R)   R*   R   R,   R.   R   R   R/   R1   R2   Rb   (   R   R'   R   Rw   Rz   Rx   R&   R*   (    (    R   t   test_dialect_apply   sr     
 
 
 
 
 c         C   st   |  i t t i g  d d |  i t t i g  d d  |  i t t i g  d d |  i t t i g  d d d  S(   NR   i    R   R   iid   (   R   R   R   R   R   R   R   (   R   (    (    R   t   test_bad_dialect*  s    (   R   R	   Rd   Rl   Rn   Rv   R}   R~   (    (    (    R   R\      s   					Dt   TestCsvBasec           B   s   t  Z d   Z d   Z RS(   Nc         C   s   t  i   \ } } t i | d  } zR | i |  | i	 d  t
 i | d |  i } t |  } |  i | |  Wd  | i   t i |  Xd  S(   Ns   w+bi    R   (   R$   R%   R&   R'   R(   R)   R*   RH   RN   R.   R   R   R   R   RO   R-   R   t   expected_resultR1   R2   (   R   RN   R   R'   R-   R&   R*   R   (    (    R   t   readerAssertEqual3  s     
c         C   s   t  i   \ } } t i | d  } zL t i | d |  i
 } | i |  | i d  |  i | i   |  Wd  | i   t i |  Xd  S(   Ns   w+bR   i    (   R$   R%   R&   R'   R(   R)   R*   R   R   R   R   RL   RN   R.   R   R/   R   R1   R2   (   R   RN   R   R'   R   R&   R*   (    (    R   t   writerAssertEqual@  s     
(   R   R	   R   R   (    (    (    R   R   2  s   	t   TestDialectExcelc           B   s   t  Z d Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   NRf   c         C   s   |  i d d g g  d  S(   NRT   (   R   R   (   R   (    (    R   t   test_singleO  s    c         C   s&   |  i d d d d d d g g  d  S(   Ns	   1,2,3,4,5RA   t   2t   3t   4t   5(   R   R   (   R   (    (    R   t   test_simpleR  s    c         C   s   |  i d g   d  S(   NR4   (   R   R   (   R   (    (    R   t   test_blanklineU  s    c         C   s   |  i d d d g g  d  S(   NR   R4   (   R   R   (   R   (    (    R   t   test_empty_fieldsX  s    c         C   s   |  i d d g g  d  S(   Ns   ""R4   (   R   R   (   R   (    (    R   t   test_singlequoted[  s    c         C   s   |  i d d d g g  d  S(   Ns   "",R4   (   R   R   (   R   (    (    R   t   test_singlequoted_left_empty^  s    c         C   s   |  i d d d g g  d  S(   Ns   ,""R4   (   R   R   (   R   (    (    R   t   test_singlequoted_right_emptya  s    c         C   s   |  i d d g g  d  S(   Ns   """"t   "(   R   R   (   R   (    (    R   t   test_single_quoted_quoted  s    c         C   s   |  i d d g g  d  S(   Ns   """"""s   ""(   R   R   (   R   (    (    R   t   test_quoted_quotesg  s    c         C   s   |  i d d g g  d  S(   Ns   a""b(   R   R   (   R   (    (    R   t   test_inline_quotej  s    c         C   s   |  i d d g g  d  S(   Ns   a"b"c(   R   R   (   R   (    (    R   t   test_inline_quotesm  s    c         C   s   |  i d d g g  d  S(   Ns   "a"bt   ab(   R   R   (   R   (    (    R   t   test_quotes_and_morep  s    c         C   s   |  i d d g g  d  S(   Ns   a"b(   R   R   (   R   (    (    R   t   test_lone_quotes  s    c         C   s   |  i d d g g  d  S(   Ns   "a" "b"s   a "b"(   R   R   (   R   (    (    R   t   test_quote_and_quotev  s    c         C   s   |  i d d g g  d  S(   Ns    "a"(   R   R   (   R   (    (    R   t   test_space_and_quotey  s    c         C   s)   |  i d d d d d d d g g  d  S(   Ns#   1,2,3,"I think, therefore I am",5,6RA   R   R   s   I think, therefore I amR   t   6(   R   R   (   R   (    (    R   t   test_quoted|  s    	c         C   s&   |  i d d d d d d g g  d  S(   NsJ   1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw"RA   R   R   s   "I see," said the blind mans"   as he picked up his hammer and saw(   R   R   (   R   (    (    R   t   test_quoted_quote  s    	c         C   s;   d } |  i | d d d d d g d d d	 d
 g g  d  S(   NsR   1,2,3,"""I see,""
said the blind man","as he picked up his
hammer and saw"
9,8,7,6RA   R   R   s   "I see,"
said the blind mans"   as he picked up his
hammer and sawt   9t   8t   7R   (   RN   R   R   (   R   RN   (    (    R   t   test_quoted_nl  s    	c         C   s#   |  i d d d d d g g  d  S(   Ns	   12,12,1",t   12s   1"R4   (   R   R   (   R   (    (    R   t   test_dubious_quote  s    c         C   s   |  i g  d  d  S(   NR4   (   R   R   (   R   (    (    R   t	   test_null  s    c         C   s   |  i d g g d  d  S(   NRT   s   abc
(   R   R   (   R   (    (    R   R     s    c         C   s&   |  i d d d d d g g d  d  S(   Ni   i   RT   i   i   s   1,2,abc,3,4
(   R   R   (   R   (    (    R   R     s    c         C   s&   |  i d d d d d g g d  d  S(   Ni   i   s   a"bc"i   i   s   1,2,"a""bc""",3,4
(   R   R   (   R   (    (    R   t   test_quotes  s    c         C   s   |  i d g g d  d  S(   Ns   abc,defs   "abc,def"
(   R   R   (   R   (    (    R   t   test_quote_fieldsep  s    c         C   s&   |  i d d d d d g g d  d  S(   Ni   i   s   a
bci   i   s   1,2,"a
bc",3,4
(   R   R   (   R   (    (    R   t   test_newlines  s    (   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   L  s4   																								t   EscapedExcelc           B   s   t  Z e i Z d Z RS(   Ns   \(   R   R	   R   R;   R   R   (    (    (    R   R     s   	t   TestEscapedExcelc           B   s#   t  Z e   Z d   Z d   Z RS(   Nc         C   s   |  i d g g d  d  S(   Ns   abc,defs
   abc\,def
(   R   R   (   R   (    (    R   t   test_escape_fieldsep  s    c         C   s   |  i d d g g  d  S(   Ns
   abc\,def
s   abc,def(   R   R   (   R   (    (    R   t   test_read_escape_fieldsep  s    (   R   R	   R   R   R   R   (    (    (    R   R     s   		t   QuotedEscapedExcelc           B   s   t  Z e i Z d Z RS(   Ns   \(   R   R	   R   RB   R   R   (    (    (    R   R     s   	t   TestQuotedEscapedExcelc           B   s#   t  Z e   Z d   Z d   Z RS(   Nc         C   s   |  i d g g d  d  S(   Ns   abc,defs   "abc,def"
(   R   R   (   R   (    (    R   t   test_write_escape_fieldsep  s    c         C   s   |  i d d g g  d  S(   Ns   "abc\,def"
s   abc,def(   R   R   (   R   (    (    R   R     s    (   R   R	   R   R   R   R   (    (    (    R   R     s   		t   TestDictFieldsc           B   sk   t  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 d
   Z d   Z RS(   Nc         C   s   t  i   \ } } t i | d  } zd t i | d d d d g } | i
 h  d d <d d < | i d  |  i | i   d	  Wd  | i   t i |  Xd  S(
   Ns   w+bt
   fieldnamest   f1t   f2t   f3i
   RT   i    s	   10,,abc
(   R$   R%   R&   R'   R(   R)   R*   R   t
   DictWriterR   R,   R.   R   R   R/   R1   R2   (   R   R'   R   R&   R*   (    (    R   t   test_write_simple_dict  s     
c         C   s#   t    } |  i t t i |  d  S(   N(   R   R*   R   R   R   R   R   (   R   R*   (    (    R   t   test_write_no_fields  s    	c         C   s   t  i   \ } } t i | d  } zm | i d  | i d  t	 i
 | d d d d g } |  i | i   h  d d <d d	 <d d
 < Wd  | i   t i |  Xd  S(   Ns   w+bs	   1,2,abc
i    R   R   R   R   RA   R   RT   (   R$   R%   R&   R'   R(   R)   R*   RH   R.   R   t
   DictReaderR   R   R   Ru   R1   R2   (   R   R'   R&   R*   R   (    (    R   t   test_read_dict_fields  s    	5 
c         C   s   t  i   \ } } t i | d  } z^ | i d  | i d  t	 i
 |  } |  i | i   h  d d <d d <d d	 < Wd  | i   t i |  Xd  S(
   Ns   w+bs   f1,f2,f3
1,2,abc
i    R   RA   R   R   R   RT   (   R$   R%   R&   R'   R(   R)   R*   RH   R.   R   R   R   R   R   Ru   R1   R2   (   R   R'   R&   R*   R   (    (    R   t   test_read_dict_no_fieldnames  s    5 
c      	   C   s   t  i   \ } } t i | d  } zv | i d  | i d  t	 i
 | d d d g } |  i | i   h  d d <d d <d  d	 d
 d d g < Wd  | i   t i |  Xd  S(   Ns   w+bs   1,2,abc,4,5,6
i    R   R   R   RA   R   RT   R   R   R   (   R$   R%   R&   R'   R(   R)   R*   RH   R.   R   R   R   R   R   Ru   R   R1   R2   (   R   R'   R&   R*   R   (    (    R   t   test_read_long  s    	A 
c      	   C   s   t  i   \ } } t i | d  } z| | i d  | i d  t	 i
 | d d d g d d } |  i | i   h  d d	 <d d
 <d d d d d g < Wd  | i   t i |  Xd  S(   Ns   w+bs   1,2,abc,4,5,6
i    R   R   R   t   restkeyt   _restRA   R   RT   R   R   R   (   R$   R%   R&   R'   R(   R)   R*   RH   R.   R   R   R   R   R   Ru   R1   R2   (   R   R'   R&   R*   R   (    (    R   t   test_read_long_with_rest  s    	A 
c      	   C   s   t  i   \ } } t i | d  } zp | i d  | i d  t	 i
 | d d } |  i | i   h  d d <d d	 <d d
 d d d g < Wd  | i   t i |  Xd  S(   Ns   w+bs   f1,f2
1,2,abc,4,5,6
i    R   R   R   RA   R   R   RT   R   R   R   (   R$   R%   R&   R'   R(   R)   R*   RH   R.   R   R   R   R   R   Ru   R1   R2   (   R   R'   R&   R*   R   (    (    R   t&   test_read_long_with_rest_no_fieldnames  s    A 
c         C   s  t  i   \ } } t i | d  } z | i d  | i d  t	 i
 | d d i   d d } |  i | i   h  d d <d	 d	 <d
 d <d d <d d <d d < |  i | i   h  d d <d	 d	 <d
 d <d d <d d <d d < Wd  | i   t i |  Xd  S(   Ns   w+bs   1,2,abc,4,5,6
1,2,abc
i    R   s   1 2 3 4 5 6t   restvalt   DEFAULTRA   R   R   RT   R   R   R   (   R$   R%   R&   R'   R(   R)   R*   RH   R.   R   R   t   splitR   R   R   Ru   R1   R2   (   R   R'   R&   R*   R   (    (    R   t   test_read_short  s    	LP 
c         C   sq   d d d g } t i | d d i   } |  i | i   h  d d <d d	 <d
 d <d d <d d < d  S(   Ns   2147483648,43.0e12,17,abc,def
s   147483648,43.0e2,17,abc,def
s   47483648,43.0,170,abc,def
R   s   i1 float i2 s1 s2t   i1t
   2147483648t   floats   43.0e12t   i2t   17t   s1RT   t   s2Rq   (   t   sampleR   R   R   R   R   R   Ru   (   R   R   R   (    (    R   t   test_read_multi*  s    	c         C   s   t  i d d d g d d i   } |  i | i   h  d d <d d <d d <d	 d	 <d
 d
 <d d < |  i | i   h  d d <d d <d d <d	 d	 <d
 d
 <d d < d  S(   Ns   1,2,abc,4,5,6
s   
R   s   1 2 3 4 5 6RA   R   R   RT   R   R   R   (   R   R   R   R   R   R   Ru   (   R   R   (    (    R   t   test_read_with_blanks9  s    Lc         C   st   t  i d g d d i   d d } |  i | i   h  d d <d d <d d	 <d
 d
 <d d <d d < d  S(   Ns   1;2;abc;4;5;6
R   s   1 2 3 4 5 6R   R|   RA   R   R   RT   R   R   R   (   R   R   R   R   R   R   Ru   (   R   R   (    (    R   t   test_read_semi_sepB  s    (   R   R	   R   R   R   R   R   R   R   R   R   R   R   (    (    (    R   R     s   											t   TestArrayWritesc           B   s,   t  Z d   Z d   Z d   Z d   Z RS(   Nc         C   s  d  k  }	 g  } t d  D] } | d | q ~ }
 |	 i  d |
  } t i   \ } } t
 i | d  } z} t i | d d } | i |  d i g  } | D] } | t |  q ~  d } | i d  |  i | i   |  Wd  | i   t
 i |  Xd  S(	   Ni   R7   s   w+bR   Rf   R   s   
i    (   t   arrayt   _[1]t   rangeR7   t   contentsR@   R$   R%   R&   R'   R(   R)   R*   R   R   R,   t   joint   strt   expectedR.   R   R   R/   R1   R2   (   R   R@   R'   R7   R   R   R&   R*   R   R   R   (    (    R   t   test_int_writeJ  s    	+4 
c         C   s
  d  k  }	 g  } t d  D] } | d | d q ~ }
 |	 i  d |
  } t i   \ } } t
 i | d  } z} t i | d d } | i |  d i g  } | D] } | t |  q ~  d } | i d	  |  i | i   |  Wd  | i   t
 i |  Xd  S(
   Ni   f0.10000000000000001RK   s   w+bR   Rf   R   s   
i    (   R   R   R   R7   R   R@   R$   R%   R&   R'   R(   R)   R*   R   R   R,   R   R   R   R.   R   R   R/   R1   R2   (   R   R@   R'   R7   R   R   R&   R*   R   R   R   (    (    R   t   test_double_write[  s    	/4 
c         C   s
  d  k  }	 g  } t d  D] } | d | d q ~ }
 |	 i  d |
  } t i   \ } } t
 i | d  } z} t i | d d } | i |  d i g  } | D] } | t |  q ~  d } | i d	  |  i | i   |  Wd  | i   t
 i |  Xd  S(
   Ni   f0.10000000000000001t   fs   w+bR   Rf   R   s   
i    (   R   R   R   R7   R   R@   R$   R%   R&   R'   R(   R)   R*   R   R   R,   R   R   R   R.   R   R   R/   R1   R2   (   R   R@   R'   R7   R   R   R&   R*   R   R   R   (    (    R   t   test_float_writek  s    	/4 
c   	      C   s   d  k  } d  k } | i  d | i  } t i   \ } } t i	 | d  } z\ t i | d d } | i |  d i |  d } | i d  |  i | i   |  Wd  | i   t i |  Xd  S(   NRJ   s   w+bR   Rf   R   s   
i    (   R   t   stringt   lettersR@   R$   R%   R&   R'   R(   R)   R*   R   R   R,   R   R   R.   R   R   R/   R1   R2   (	   R   R@   R'   R   R&   R*   R   R   R   (    (    R   t   test_char_write{  s     
(   R   R	   R   R   R   R   (    (    (    R   R   I  s   			t   TestDialectValidityc           B   s#   t  Z d   Z d   Z d   Z RS(   Nc         C   s   d t  i f d     Y} |   } d  | _ |  i t  i |  t  i	 | _ d  | _
 |  i t  i |  t | _ t  i | _ d | _ |   } d | _ |  i t  i |  d | _ |  i t  i |  d  S(   Nt	   mydialectc           B   s/   t  Z d Z d Z e Z e Z d Z e	 i
 Z RS(   NR|   s   \s   
(   R   R	   R   R   t   FalseRU   t   Truet   skipinitialspaceR   R   R;   R   (    (    (    R   R     s   R   s   ''i   (   R   Rm   R   RK   R   R   R   R   R   R;   R   R   RU   RC   t	   quotechar(   R   RK   R   (    (    R   t   test_quoting  s    								c         C   s^   d t  i f d     Y} |   } d | _ |  i t  i |  d | _ |  i t  i |  d  S(   NR   c           B   s/   t  Z d Z d Z e Z e Z d Z e	 i
 Z RS(   NR|   s   \s   
(   R   R	   R   R   R   RU   R   R   R   R   R;   R   (    (    (    R   R     s   s   :::i   (   R   Rm   R   RK   R   R   R   R   (   R   R   RK   (    (    R   t   test_delimiter  s    			c         C   sT   d t  i f d     Y} |   } d | _ |   } d | _ |  i t  i |  d  S(   NR   c           B   s/   t  Z d Z d Z e Z e Z d Z e	 i
 Z RS(   NR|   s   \s   
(   R   R	   R   R   R   RU   R   R   R   R   R;   R   (    (    (    R   R     s   s   :::i   (   R   Rm   R   RK   R   R   R   R   (   R   R   RK   (    (    R   t   test_lineterminator  s    				(   R   R	   R   R   R   (    (    (    R   R     s   		t   TestSnifferc           B   sG   t  Z d Z d Z d Z d Z d Z d Z d   Z d   Z	 d	   Z
 RS(
   Ns   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
sT   2147483648;43.0e12;17;abc;def
147483648;43.0e2;17;abc;def
47483648;43.0;170;abc;def
s   aaa	bbb
AAA	
BBB	
c         C   sO   t  i   } |  i | i |  i  t  |  i | i |  i |  i  t	  d  S(   N(
   R   t   Sniffert   snifferR   R   t
   has_headert   sample1R   t   headerR   (   R   R   (    (    R   t   test_has_header  s    c         C   s   t  i   } | i |  i  } |  i | i d  |  i | i	 d  |  i | i
 t  | i |  i  } |  i | i d  |  i | i	 d  |  i | i
 t  d  S(   NR   R   Ry   t   '(   R   R   R   t   sniffR   R   R   R   R   R   R   R   t   sample2R   (   R   R   R   (    (    R   t
   test_sniff  s    c         C   s   t  i   } | i |  i  } |  i | i |  i j  | i |  i d d } |  i	 | i d  | i |  i d d } |  i	 | i d  | i |  i
  } |  i	 | i d  | i |  i  } |  i	 | i d  d  S(   Nt
   delimiterss   ?,t   ?s   /,t   /R|   s   	(   R   R   R   R   R   t   sample3R   t   assert_R   R   t   sample4t   sample5(   R   R   R   (    (    R   t   test_delimiters  s    (   R   R	   R   R   R   R   R   R   R   R   R   (    (    (    R   R     s   		t   gettotalrefcounts   *** skipping leakage tests ***t   NULc           B   s   t  Z d   Z e Z RS(   Nc         G   s   d  S(   N(    (   t   st   args(    (    R   RH     s    (   R   R	   RH   t
   writelines(    (    (    R   R     s   	t	   TestLeaksc           B   s,   t  Z d   Z d   Z d   Z d   Z RS(   Nc         C   s   d } t i   } x} t d  D]o } t i   |  i	 t i
 g   t i   } t i d g  t i d g  t i d g  | | } | } q W|  i	 | d j  t  d  S(   Ni    i   s   a,b,c
i   (   t   deltat   sysR   t   lastrct   xrangeR7   t   gct   collectR   R   t   garbaget   rcR   R   R   (   R   R7   R  R   R   (    (    R   t   test_create_read  s     


c         C   s   d } t i   } t   } xt t d  D]f } t i	   |  i t i g   t i   } t i |  t i |  t i |  | | } | } q( W|  i | d j  t  d  S(   Ni    i   i   (   R   R   R   R   R   R   R   R7   R  R  R   R   R  R  R   R   R   (   R   R7   R  R   R   R   (    (    R   t   test_create_write   s    	 


c         C   s   d } d g d } t i   } xm t d  D]_ } t i   |  i
 t i g   t i   } t i |  } x | D] } qq W| | } | } q, W|  i
 | d j  t  d  S(   Ni    s   a,b,c
i   i   (   R   t   rowsR   R   R   R   R7   R  R  R   R   R  R  R   R   Rt   t   rowR   (   R   R  Rt   R7   R  R   R   R  (    (    R   t	   test_read0  s     
 

c   	      C   s   d } d d d g g d } t   } t i   } xz t d  D]l } t	 i
   |  i t	 i g   t i   } t i |  } x | D] } | i |  q W| | } | } q> W|  i | d j  t  d  S(   Ni    i   i   i   i   i   (   R   R  R   R   R   R   R   R   R7   R  R  R   R   R  R  R   R   R  R,   R   (	   R   R  R7   R  R   R   R   R   R  (    (    R   t
   test_write@  s     	 
 

(   R   R	   R  R  R	  R
  (    (    (    R   R     s   			c          C   s\   t  i t } t i g  }  t |  D]* } | i	 d  o |  t
 | |  q$ q$ ~    d  S(   Nt   Test(   R   t   modulesR   t   modt   test_supportt   run_unittestR   t   dirR'   t
   startswitht   getattr(   R   R'   R  (    (    R   t	   test_main`  s    t   __main__(   R   R(   t   unittestR   R$   R   R  t   testR  t   TestCaseR    R\   R   R   Rf   R   R   R   R   R   R   R   R   t   hasattrt   verboseR   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      s6   						]		A>@
 P	