
RVc           @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m	 Z	 d  d l
 m Z d  d l Z y
 e Z Wn n Xe e f Z d e j f d     YZ d e j f d     YZ d e j f d	     YZ d
 e f d     YZ d e j f d     YZ d e f d     YZ d e j f d     YZ d e f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ  d S(   iN(   t   EncodedFile(   t   BytesIOt   Test_Csvc           B   s   e  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 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   se  |  j  t |  |  j  t | d   |  j  t | | d d |  j  t | | d d |  j  t | | d d |  j  t j | | d  |  j  t | | d d  |  j  t | | d d |  j  t | | d d |  j  t | | d d  |  j  t | | d d |  j  t | | d	 d  |  j  t | | d	 t j d d
 |  j  t | | d	 t j d d  d  S(   Nt   bad_attri    t	   delimitert   XXt   fooi   t	   quotechart   lineterminatort   quotingt    (   t   assertRaisest   py_compat_exct   Nonet   csvt   Errort	   QUOTE_ALL(   t   selft   ctort   arg(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   _test_arg_valid#   s     c         C   s   |  j  t j g   d  S(   N(   R   R   t   reader(   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_reader_arg_valid5   s    c         C   s   |  j  t j t    d  S(   N(   R   R   t   writerR   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_writer_arg_valid8   s    c         G   s-  | |   } |  j  | j j d  |  j  | j j t  |  j  | j j d   |  j  | j j d  |  j  | j j d  |  j  | j j	 t
 j  |  j  | j j t  |  j  | j j t  |  j t t | j d  |  j t t | j d d  |  j t t | j d  |  j t t | j d d   d  S(   Nt   ,s   
t   "R   t   :R	   (   t   assertEqualt   dialectR   t   doublequotet   Truet
   escapecharR   R   R   R	   R   t   QUOTE_MINIMALt   skipinitialspacet   Falset   strictR   R   t   delattrt   setattr(   R   R   t   argst   obj(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   _test_default_attrs;   s"    c         C   s   |  j  t j g   d  S(   N(   R)   R   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_reader_attrsP   s    c         C   s   |  j  t j t    d  S(   N(   R)   R   R   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_writer_attrsS   s    c         G   s  t  d d d t d d d d d d	 d
 t j d t d t  } | | |   } |  j | j j d  |  j | j j t  |  j | j j	 d  |  j | j j
 d  |  j | j j d	  |  j | j j t j  |  j | j j t  |  j | j j t  d  S(   NR   R   R   R    s   \R   s   R   t   *R	   R"   R$   (   t   dictR#   R   t
   QUOTE_NONER   R   R   R   R   R    R   R   R	   R"   R$   (   R   R   R'   t   kwargsR(   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   _test_kw_attrsV   s    	c         C   s   |  j  t j g   d  S(   N(   R0   R   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_reader_kw_attrsf   s    c         C   s   |  j  t j t    d  S(   N(   R0   R   R   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_writer_kw_attrsi   s    c         G   s   d d d     Y} | | f } | |   } |  j  | j j d  |  j  | j j t  |  j  | j j d  |  j  | j j d  |  j  | j j d  |  j  | j j t	 j
  |  j  | j j t  |  j  | j j t  d  S(   NR   c           B   s;   e  Z d  Z e Z d Z d Z d Z e j	 Z
 e Z e Z RS(   t   -t   ^t   $t   #(   t   __name__t
   __module__R   R#   R   R    R   R   R   R   R	   R   R"   R$   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   n   s   	R3   R4   R5   R6   (    (   R   R   R   R   R#   R    R   R   R	   R   R   R"   R   R$   (   R   R   R'   R   R(   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   _test_dialect_attrsl   s    	c         C   s   |  j  t j g   d  S(   N(   R9   R   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_reader_dialect_attrs   s    c         C   s   |  j  t j t    d  S(   N(   R9   R   R   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_writer_dialect_attrs   s    c         K   s   t  j   \ } } t j | d  } zY t j | |  } | j |  | j d  |  j | j	   | | j
 j j d   Wd  | j   t j |  Xd  S(   Ns   w+bi    s   utf-8(   t   tempfilet   mkstempt   ost   fdopenR   R   t   writerowt   seekR   t   readR   R   t   encodet   closet   unlink(   R   t   fieldst   expectR/   t   fdt   namet   fileobjR   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   _write_test   s    
c         C   s  d d  l  } t | d  o* | j j d k } |  j | r? t n t j |  j d  d  |  j d d  |  j d  g d  |  j t j |  j d  g d  d t j
 d d d     Y} |  j t |  j |   d  d	 d d
     Y} |  j t |  j |   g d  d  S(   Nit   pypy_version_infoi   R
   s   ""R	   t   BadListc           B   s   e  Z d    Z d   Z RS(   c         S   s   d S(   Ni
   (    (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   __len__   s    c         S   s   | d k r t   n  d  S(   Ni   (   t   IOError(   R   t   i(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   __getitem__   s    (   R7   R8   RN   RQ   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyRM      s   	t   BadItemc           B   s   e  Z d    Z RS(   c         S   s
   t   d  S(   N(   RO   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   __str__   s    (   R7   R8   RS   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyRR      s   (    (    (    (   t   syst   hasattrt   version_infot   majorR   t	   TypeErrorR   R   RK   R   R.   RO   (   R   RT   t   pypy3RM   RR   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_write_arg_valid   s    !(c         C   s=   d d } |  j  | | g d j | j d  g d   d  S(   Nt   XiP  R   s   utf-8i   (   RK   t   joinRC   (   R   t	   bigstring(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_write_bigfield   s    
c         C   s   |  j  d d d g d  |  j t j |  j  d d d g d d t j |  j  d d d g d d t j |  j  d d d g d d t j |  j  d d d g d d t j |  j  d	 d g d
 d t j d  S(   Nt   ai   s   p,qs	   a,1,"p,q"s   a,1,p,qR	   s   "a",1,"p,q"s   "a","1","p,q"s   a
bs	   "a
b","1"(   RK   R   R   R   R.   R!   t   QUOTE_NONNUMERICR   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_write_quoting   s    



c         C   s/   |  j  d t j d  d g d d t j d  S(   NR_   s   1.1s   p,qs   "a",1.1,"p,q"R	   (   RK   t   decimalt   DecimalR   R`   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_write_decimal   s    !c      	   C   s  |  j  d d d g d d d |  j t j |  j  d d d g d d d  d	 t |  j  d d d g d d d d	 t |  j  d
 g d d d d t j |  j  d
 g d d d d t j d	 t |  j  d
 g d d d d t j |  j  d d d g d d d d t j d  S(   NR_   i   s   p,qs	   a,1,"p,q"R    s   \s   p,"q"s   a,1,"p,\"q\""R   R   s   """"R	   s   \"s   a,1,p\,q(   RK   R   R   R   R   R#   R!   R.   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_write_escape   s"    c         C   s   d d
 d     Y} t  j |    } |  j t | j d g g  t j   \ } } t j | d  } zk t  j |  } |  j t	 | j d   | j d d g d d g g  | j d  |  j | j   d	  Wd  | j   t j |  Xd  S(   Nt
   BrokenFilec           B   s   e  Z d    Z RS(   c         S   s
   t   d  S(   N(   RO   (   R   t   buf(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   write   s    (   R7   R8   Rh   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyRf      s   R_   s   w+bt   bt   ct   di    s
   a,b
c,d
(    (   R   R   R   RO   t	   writerowsR<   R=   R>   R?   RX   R   RA   R   RB   RD   RE   (   R   Rf   R   RH   RI   RJ   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_writerows   s    
c         K   s2   t  j | |  } t |  } |  j | |  d  S(   N(   R   R   t   listR   (   R   t   inputRG   R/   R   t   result(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt
   _read_test   s    c         C   s   |  j  g  g   |  j  d g g  g  |  j t j |  j  d g d  d d |  j t j |  j  d g d  d d |  j  d g d g g d d d  S(	   NR
   s   "ab"cR$   i   s   ab ct   abcR   i    (   Rq   R   R   R   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_oddinputs   s    c         C   s   |  j  d g d d g g  |  j  d g d d g g  |  j  d g d d g g  |  j  d g d d g g  |  j t j |  j  d g g   |  j t j |  j  d g g   |  j t j |  j  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(   Rq   R   R   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_eol   s    c         C   s   |  j  d g d d d g g d d |  j  d g d d g g d d |  j  d	 g d d g g d d |  j  d
 g d d g g d d |  j  d g d d g g d d |  j  d g d d g g d d d  S(   Ns   a,\b,cR_   Ri   Rj   R    s   \s   a,b\,cs   b,cs   a,"b\,c"s   a,"b,\c"s	   a,"b,c\""s   b,c"s   a,"b,c"\s   b,c\(   Rq   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_escape  s    %""""c         C   s   |  j  d g d d d g g  |  j  d g d d d d d g g d d  d d	 |  j  d g d d d d d g g d
 t j d d	 |  j  d g d d d d d g g d
 t j |  j  d g d d g g  |  j t |  j  d g g  g d
 t j d  S(   Ns	   1,",3,",5t   1s   ,3,t   5R   t   3R   R    s   \R	   s   ,3,"5",7.3, 9R
   i   g333333@i	   s   "a
b", 7s   a
bs    7s   abc,3(   Rq   R   R   R.   R`   R   t
   ValueError(   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_quoting  s    $$$
c         C   s   x t  j d d d g  t  j d d d g d d d d g f D] } |  j | j d  t |  |  j | j d	  t |  |  j | j d
  t |  |  j | j d  |  j t t |  |  j | j d  q@ Wd  S(   Ns   line,1s   line,2s   line,3t
   fieldnamesR_   Ri   Rj   i    i   i   i   (   R   R   t
   DictReaderR   t   line_numt   nextR   t   StopIteration(   R   t   r(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_linenum  s    


c         C   s   t  j   \ } } t j | d  } z t j |  } |  j t | j d   d d g d d g g } | j |  | j
 d  x7 t t j |   D]  \ } } |  j | | |  q WWd  | j   t j |  Xd  S(   Ns   w+bs   a
bRi   Rj   s   x
di    (   R<   R=   R>   R?   R   R   R   RX   Rl   R   RA   t	   enumerateR   R   RD   RE   (   R   RH   RI   RJ   R   t   rowsRP   t   row(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_roundtrip_quoteed_newlines,  s    "
(   R7   R8   t   __doc__R   R   R   R)   R*   R+   R0   R1   R2   R9   R:   R;   RK   RZ   R^   Ra   Rd   Re   Rm   Rq   Rs   Rt   Ru   Rz   R   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR      s6   																					
					t   TestDialectRegistryc           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s=  |  j  t t j d   |  j  t t j  |  j  t j t j d   |  j  t j t j d  |  j  t t j  |  j  t j t j d   |  j  t j t j d  |  j  t t j d   |  j  t t j d  d   |  j  t t j d d d  |  j  t t j d d d  |  j  t t j d d d  |  j  t t j g   d  S(   Nt   nonesuchi    t   badargumentR	   (	   R   RX   R   t   list_dialectsR   t   get_dialectR   t   unregister_dialectt   register_dialect(   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_registry_badargs=  s    c         C   s   d t  j f d     Y} d } t  j   | g } | j   t  j | |  zF |  j t  j |  j d  t  j   } | j   |  j | |  Wd  t  j |  Xd  S(   Nt
   myexceltsvc           B   s   e  Z d  Z RS(   s   	(   R7   R8   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   O  s   s   	(	   R   t   excelR   t   sortR   R   R   R   R   (   R   R   RI   t   expected_dialectst   got_dialects(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_registryN  s    

c         C   s   d } t  j | d d zQ |  j t  j |  j d  |  j t t  j d g |   d d d g g  Wd  t  j |  Xd  S(	   Nt   fedcbaR   t   ;s   	s   X;Y;Zu   Xu   Yu   Z(	   R   R   t   assertNotEqualR   R   R   Rn   R   R   (   R   RI   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_register_kwargs]  s    5c         C   s0   d t  j f d     Y} |  j t  j |  d  S(   NR   c           B   s   e  Z d  Z RS(   s   	(   R7   R8   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   g  s   (   R   t   DialectR   R   (   R   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_incomplete_dialectf  s    c         C   s   d t  j f d     Y} t j   \ } } t j | d  } zn | j d  | j d  t  j | d |   } |  j	 t
 |  d d g  |  j	 t
 |  d	 d
 g  Wd  | j   t j |  Xd  S(   Nt   spacec           B   s   e  Z d  Z e j Z d Z RS(   t    s   \(   R7   R8   R   R   R.   R	   R    (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   l  s   	s   w+bs   abc def
c1ccccc1 benzene
i    R   Rr   t   deft   c1ccccc1t   benzene(   R   R   R<   R=   R>   R?   Rh   RA   R   R   R~   RD   RE   (   R   R   RH   RI   RJ   t   rdr(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_space_dialectk  s     
c         C   sI  d t  j f d     Y} d t  j f d     Y} d t  j f d     Y} t  j d |  zt j   \ } } t j | d  } zL t  j |  } | j d d	 d
 g  | j	 d  |  j
 | j   d  Wd  | j   t j |  Xt j   \ } } t j | d  } zO t  j | |  } | j d d	 d
 g  | j	 d  |  j
 | j   d  Wd  | j   t j |  Xt j   \ } } t j | d  } zU t  j | d |   } | j d d	 d
 g  | j	 d  |  j
 | j   d  Wd  | j   t j |  Xt j   \ } } t j | d  } zR t  j | d d } | j d d	 d
 g  | j	 d  |  j
 | j   d  Wd  | j   t j |  Xt j   \ } } t j | d  } zX t  j | d | d d } | j d d	 d
 g  | j	 d  |  j
 | j   d  Wd  | j   t j |  XWd  t  j d  Xd  S(   Nt   testAc           B   s   e  Z d  Z RS(   s   	(   R7   R8   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   ~  s   t   testBc           B   s   e  Z d  Z RS(   R   (   R7   R8   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR     s   t   testCc           B   s   e  Z d  Z RS(   t   |(   R7   R8   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR     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   R   s   1;2;3
(   R   R   R   R<   R=   R>   R?   R   R@   RA   R   RB   RD   RE   R   (   R   R   R   R   RH   RI   RJ   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_dialect_apply}  sf    




c         C   st   |  j  t t j g  d d |  j  t t j g  d d  |  j  t t j g  d d |  j  t t j g  d d d  S(   NR   i    R   R	   iid   (   R   RX   R   R   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_bad_dialect  s    (	   R7   R8   R   R   R   R   R   R   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   <  s   							Ft   TestCsvBasec           B   s   e  Z d    Z d   Z RS(   c         C   s   t  j   \ } } t j | d  } zR | j |  | j d  t j | d |  j } t	 |  } |  j
 | |  Wd  | j   t j |  Xd  S(   Ns   w+bi    R   (   R<   R=   R>   R?   Rh   RA   R   R   R   Rn   R   RD   RE   (   R   Ro   t   expected_resultRH   RI   RJ   R   RF   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   readerAssertEqual  s    
c         C   s   t  j   \ } } t j | d  } zL t j | d |  j } | j |  | j d  |  j	 | j
   |  Wd  | j   t j |  Xd  S(   Ns   w+bR   i    (   R<   R=   R>   R?   R   R   R   Rl   RA   R   RB   RD   RE   (   R   Ro   R   RH   RI   RJ   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   writerAssertEqual  s    
(   R7   R8   R   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR     s   	t   TestDialectExcelc           B   s   e  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(   R   c         C   s   |  j  d d g g  d  S(   NRr   (   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_single  s    c         C   s&   |  j  d d d d d d g g  d  S(   Ns	   1,2,3,4,5Rv   t   2Rx   t   4Rw   (   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_simple  s    c         C   s   |  j  d g   d  S(   NR
   (   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_blankline  s    c         C   s   |  j  d d d g g  d  S(   NR   R
   (   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_empty_fields  s    c         C   s   |  j  d d g g  d  S(   Ns   ""R
   (   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_singlequoted  s    c         C   s   |  j  d d d g g  d  S(   Ns   "",R
   (   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_singlequoted_left_empty  s    c         C   s   |  j  d d d g g  d  S(   Ns   ,""R
   (   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_singlequoted_right_empty  s    c         C   s   |  j  d d g g  d  S(   Ns   """"R   (   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_single_quoted_quote  s    c         C   s   |  j  d d g g  d  S(   Ns   """"""s   ""(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_quoted_quotes  s    c         C   s   |  j  d d g g  d  S(   Ns   a""b(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_inline_quote  s    c         C   s   |  j  d d g g  d  S(   Ns   a"b"c(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_inline_quotes  s    c         C   s   |  j  d d g g  d  S(   Ns   "a"bt   ab(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_quotes_and_more  s    c         C   s   |  j  d d g g  d  S(   Ns   a"b(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_lone_quote  s    c         C   s   |  j  d d g g  d  S(   Ns   "a" "b"s   a "b"(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_quote_and_quote  s    c         C   s   |  j  d d g g  d  S(   Ns    "a"(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_space_and_quote  s    c         C   s)   |  j  d d d d d d d g g  d  S(   Ns#   1,2,3,"I think, therefore I am",5,6Rv   R   Rx   s   I think, therefore I amRw   t   6(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_quoted  s    		c         C   s,   d } |  j  | 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"Rv   R   Rx   s   "I see," said the blind mans"   as he picked up his hammer and saw(   R   (   R   t   value(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_quoted_quote!  s
    		c         C   s;   d } |  j  | 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,6Rv   R   Rx   s   "I see,"
said the blind mans"   as he picked up his
hammer and sawt   9t   8t   7R   (   R   (   R   Ro   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_quoted_nl(  s    		c         C   s#   |  j  d d d d d g g  d  S(   Ns	   12,12,1",t   12s   1"R
   (   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_dubious_quote4  s    c         C   s   |  j  g  d  d  S(   NR
   (   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt	   test_null7  s    c         C   s   |  j  d g g d  d  S(   NRr   s   abc
(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_single_writer:  s    c         C   s&   |  j  d d d d d g g d  d  S(   Ni   i   Rr   i   i   s   1,2,abc,3,4
(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_simple_writer=  s    c         C   s&   |  j  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   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_quotesA  s    c         C   s   |  j  d g g d  d  S(   Ns   abc,defs   "abc,def"
(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_quote_fieldsepE  s    c         C   s&   |  j  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   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_newlinesI  s    (   R7   R8   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   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR     s4   																								t   EscapedExcelc           B   s   e  Z e j Z d  Z RS(   s   \(   R7   R8   R   R.   R	   R    (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   N  s   	t   TestEscapedExcelc           B   s#   e  Z e   Z d    Z d   Z RS(   c         C   s   |  j  d g g d  d  S(   Ns   abc,defs
   abc\,def
(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_escape_fieldsepV  s    c         C   s   |  j  d d g g  d  S(   Ns
   abc\,def
s   abc,def(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_escape_fieldsepY  s    (   R7   R8   R   R   R   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   S  s   		t   QuotedEscapedExcelc           B   s   e  Z e j Z d  Z RS(   s   \(   R7   R8   R   R`   R	   R    (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   ]  s   	t   TestQuotedEscapedExcelc           B   s#   e  Z e   Z d    Z d   Z RS(   c         C   s   |  j  d g g d  d  S(   Ns   abc,defs   "abc,def"
(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_write_escape_fieldsepe  s    c         C   s   |  j  d d g g  d  S(   Ns   "abc\,def"
s   abc,def(   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   h  s    (   R7   R8   R   R   R   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   b  s   		t   TestDictFieldsc           B   s   e  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(   c         C   s   t  j   \ } } t | d  } z t j | d d d d g } | j   | j d  |  j | j   d  | j	 i d d 6d	 d 6 | j d  | j   |  j | j
   d
  Wd  | j   t j |  Xd  S(   Ns   w+bR{   t   f1t   f2t   f3i    s
   f1,f2,f3
i
   Rr   s	   10,,abc
(   R<   R=   t   openR   t
   DictWritert   writeheaderRA   R   t   readlineR@   RB   RD   R>   RE   (   R   RH   RI   RJ   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_write_simple_dicto  s    


c         C   s   t  j   \ } } t | d  } zU t j | d d d g } | j   | j d  |  j | j   j	 d  d  Wd  | j
   t j |  Xd  S(   Ns   w+bR{   u   ñu   öi    s   utf-8u   ñ,ö
(   R<   R=   R   R   R   R   RA   R   R   t   decodeRD   R>   RE   (   R   RH   RI   RJ   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_write_unicode_header_dict  s    
#
c         C   s#   t    } |  j t t j |  d  S(   N(   R   R   RX   R   R   (   R   RJ   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_write_no_fields  s    	c         C   s   t  j   \ } } t j | d  } zg | j d  | j d  t j | d d d d g } |  j t	 |  i d d 6d	 d 6d
 d 6 Wd  | j
   t j |  Xd  S(   Ns   w+bs	   1,2,abc
i    R{   R   R   R   Rv   R   Rr   (   R<   R=   R>   R?   Rh   RA   R   R|   R   R~   RD   RE   (   R   RH   RI   RJ   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_dict_fields  s     
c         C   s   t  j   \ } } t j | d  } zt | j d  | j d  t j |  } |  j | j	 d d d g  |  j t
 |  i d d 6d d 6d	 d 6 Wd  | j   t j |  Xd  S(
   Ns   w+bs   f1,f2,f3
1,2,abc
i    R   R   R   Rv   R   Rr   (   R<   R=   R>   R?   Rh   RA   R   R|   R   R{   R~   RD   RE   (   R   RH   RI   RJ   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_dict_no_fieldnames  s     
c         C   s   t  j   \ } } t j | d  } z | j d  | j d  t j | d t t j	 |   } |  j
 | j d d d g  |  j
 t |  i d d 6d	 d 6d
 d 6 Wd  | j   t j |  Xd  S(   Ns   w+bs   f1,f2,f3
1,2,abc
i    R{   R   R   R   Rv   R   Rr   (   R<   R=   R>   R?   Rh   RA   R   R|   R~   R   R   R{   RD   RE   (   R   RH   RI   t   fR   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt#   test_read_dict_fieldnames_from_file  s    $ 
c         C   s   d d  l  } t j   \ } } t j | d  } z | j d  | j d  t j |  } t	 |  } x^ | j
 | g |  D]G } |  j | j d d d g  |  j | i d d 6d	 d 6d
 d 6 q~ WWd  | j   t j |  Xd  S(   Nis   w+bs   f1,f2,f3
1,2,abc
i    R   R   R   Rv   R   Rr   (   t	   itertoolsR<   R=   R>   R?   Rh   RA   R   R|   R~   t   chainR   R{   RD   RE   (   R   R   RH   RI   R   R   t   firstR   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_dict_fieldnames_chain  s    -
c         C   s   t  j   \ } } t j | d  } zp | j d  | j d  t j | d d d g } |  j t	 |  i d d 6d d 6d	 d
 d d g d  6 Wd  | j   t j |  Xd  S(   Ns   w+bs   1,2,abc,4,5,6
i    R{   R   R   Rv   R   Rr   R   Rw   R   (   R<   R=   R>   R?   Rh   RA   R   R|   R   R~   R   RD   RE   (   R   RH   RI   RJ   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_long  s     
c         C   s   t  j   \ } } t j | d  } zv | j d  | j d  t j | d d d g d d } |  j t	 |  i d	 d 6d
 d 6d d d d g d 6 Wd  | j
   t j |  Xd  S(   Ns   w+bs   1,2,abc,4,5,6
i    R{   R   R   t   restkeyt   _restRv   R   Rr   R   Rw   R   (   R<   R=   R>   R?   Rh   RA   R   R|   R   R~   RD   RE   (   R   RH   RI   RJ   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_long_with_rest  s     
c         C   s   t  j   \ } } t j | d  } z | j d  | j d  t j | d d } |  j | j	 d d g  |  j t
 |  i d d 6d	 d 6d
 d d d g d 6 Wd  | j   t j |  Xd  S(   Ns   w+bs   f1,f2
1,2,abc,4,5,6
i    R   R   R   R   Rv   R   Rr   R   Rw   R   (   R<   R=   R>   R?   Rh   RA   R   R|   R   R{   R~   RD   RE   (   R   RH   RI   RJ   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt&   test_read_long_with_rest_no_fieldnames  s     
c         C   s  t  j   \ } } t j | d  } z | j d  | j d  t j | d d j   d d } |  j	 t
 |  i d d 6d	 d	 6d
 d 6d d 6d d 6d d 6 |  j	 t
 |  i d d 6d	 d	 6d
 d 6d d 6d d 6d d 6 Wd  | j   t j |  Xd  S(   Ns   w+bs   1,2,abc,4,5,6
1,2,abc
i    R{   s   1 2 3 4 5 6t   restvalt   DEFAULTRv   R   Rr   Rx   R   Rw   R   (   R<   R=   R>   R?   Rh   RA   R   R|   t   splitR   R~   RD   RE   (   R   RH   RI   RJ   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_short  s    	''
c         C   sg   d d d g } t  j | d d j   } |  j t |  i d d 6d d	 6d
 d 6d d 6d d 6 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
   2147483648t   i1s   43.0e12t   floatt   17t   i2Rr   t   s1R   t   s2(   R   R|   R   R   R~   (   R   t   sampleR   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_multi	  s    	c         C   s   t  j d d d g d d j   } |  j t |  i d d 6d d 6d d 6d	 d	 6d
 d
 6d d 6 |  j t |  i d d 6d d 6d d 6d	 d	 6d
 d
 6d d 6 d  S(   Ns   1,2,abc,4,5,6
s   
R{   s   1 2 3 4 5 6Rv   R   Rr   Rx   R   Rw   R   (   R   R|   R   R   R~   (   R   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_with_blanks  s    	''c         C   sh   t  j d g d d j   d d } |  j t |  i d d 6d d 6d d	 6d
 d
 6d d 6d d 6 d  S(   Ns   1;2;abc;4;5;6
R{   s   1 2 3 4 5 6R   R   Rv   R   Rr   Rx   R   Rw   R   (   R   R|   R   R   R~   (   R   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_read_semi_sep!  s
    	'c         C   s   t  j t    d  S(   N(   R   R|   R   (   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_empty_file(  s    (   R7   R8   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   l  s   															t   TestArrayWritesc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c   	      C   s   g  t  d  D] } d | ^ q } t j d |  } t j   \ } } t j | d  } z~ t j | d d } | j |  d j	 g  | D] } t
 |  j d  ^ q  d } | j d	  |  j | j   |  Wd  | j   t j |  Xd  S(
   Ni   RP   s   w+bR   R   R   s   utf-8s   
i    (   t   ranget   arrayR<   R=   R>   R?   R   R   R@   R\   t   strRC   RA   R   RB   RD   RE   (	   R   RP   t   contentsR_   RH   RI   RJ   R   t   expected(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_int_write,  s    #5
c   
      C   s  g  t  d  D] } d | d ^ q } t j d |  } t j   \ } } t j | d  } z t j | d d } | j |  t	 } t
 j d k r t } n  d
 j g  | D] } | |  j d  ^ q  d }	 | j d  |  j | j   |	  Wd  | j   t j |  Xd  S(   Ni   g?Rk   s   w+bR   R   i   i   i   R   s   utf-8s   
i    (   i   i   i   (   R   R  R<   R=   R>   R?   R   R   R@   R  RT   RV   t   reprR\   RC   RA   R   RB   RD   RE   (
   R   RP   R  R_   RH   RI   RJ   R   t
   float_reprR  (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_double_write<  s    '	5
c   
      C   s  g  t  d  D] } d | d ^ q } t j d |  } t j   \ } } t j | d  } z t j | d d } | j |  t	 } t
 j d k r t } n  d
 j g  | D] } | |  j d  ^ q  d }	 | j d  |  j | j   |	  Wd  | j   t j |  Xd  S(   Ni   g?R   s   w+bR   R   i   i   i   R   s   utf-8s   
i    (   i   i   i   (   R   R  R<   R=   R>   R?   R   R   R@   R  RT   RV   R  R\   RC   RA   R   RB   RD   RE   (
   R   RP   R  R_   RH   RI   RJ   R   R  R  (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_float_writeN  s    '	5
c         C   s   t  j } t j   \ } } t j | d  } ze t j | d d } | j |  d j	 |  j
 d  d } | j d  |  j | j   |  Wd  | j   t j |  Xd  S(   Ns   w+bR   R   R   s   utf-8s   
i    (   t   stringt   ascii_lettersR<   R=   R>   R?   R   R   R@   R\   RC   RA   R   RB   RD   RE   (   R   R_   RH   RI   RJ   R   R  (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_char_write`  s    	
(   R7   R8   R  R  R	  R  (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR   +  s   			t   TestUnicodec           B   s   e  Z d    Z RS(   c         C   s_   t  t d j d   d d } t j | d d } |  j t |  d d d d g g  d  S(	   NuI   Martin von Löwis,Marc André Lemburg,Guido van Rossum,François Pinard
s
   iso-8859-1t   data_encodingt   encodingu   Martin von Löwisu   Marc André Lemburgu   Guido van Rossumu   François Pinard(   R    R   RC   R   R   R   Rn   (   R   R   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_unicode_readp  s    	(   R7   R8   R  (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR  o  s   t   TestUnicodeErrorsc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   sW   t    } t j | d d d d } | j d t d  g  |  j | j   d  d  S(   NR  t   cp1252t   errorst   xmlcharrefreplacet   helloi+
  s   hello,&#2603;
(   R   R   R   R@   t   chrR   t   getvalue(   R   RH   R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_encode_error~  s    	c         C   s^   t    } t j | d g d d d d } | j i t d  d 6 |  j | j   d  d  S(   Nt   col1R  R  R  R  i,
  s	   &#2604;
(   R   R   R   R@   R  R   R  (   R   RH   t   dw(    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_encode_error_dictwriter  s
    	c         C   s^   t  t d j d   d d } t j | d d d d } |  j t |  d d d	  d
 S(   sA   Make sure the specified error-handling mode is obeyed on readers.u
   Löwis,2,3s
   iso-8859-1R  R  t   asciiR  t   ignorei    t   LwisN(   R    R   RC   R   R   R   Rn   (   R   t   fileR   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_decode_error  s    	c         C   s^   t  t d j d   d d } t j | d d d d } |  j t |  d d	 d
  d S(   s;   Make sure the error-handling mode is obeyed on DictReaders.u   name,height,weight
Löwis,2,3s
   iso-8859-1R  R  R  R  R  i    RI   R  N(   R    R   RC   R   R|   R   Rn   (   R   R  R   (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   test_decode_error_dictreader  s    	(   R7   R8   R  R  R   R!  (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyR  }  s   			(!   R  Rb   R>   R
  RT   R<   t	   unittest2t   unittestt   codecsR    t   ioR   t
   unicodecsvR   t   unichrR  RX   t   AttributeErrorR   t   TestCaseR   R   R   R   R   R   R   R   R   R   R   R  R  (    (    (    s.   lib/python2.7/site-packages/unicodecsv/test.pyt   <module>   s6   
  g

D