
    Eh                     4   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	 eZeefZ G d dej&                        Z G d dej&                        Z G d d	ej&                        Z G d
 de      Z G d dej0                        Z G d de      Z G d dej0                        Z G d de      Z G d dej&                        Z G d dej&                        Z G d dej&                        Z G d dej&                        Z y#  Y xY w)    N)EncodedFile)BytesIOc                       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d Zy)Test_Csvz
    Test the underlying C csv parser in ways that are not appropriate
    from the high level interface. Further tests of this nature are done
    in TestDialectRegistry.
    c                    | j                  t        |       | j                  t        |d        | j                  t        ||d       | j                  t        ||d       | j                  t        ||d       | j                  t        j                  ||d       | j                  t        ||d        | j                  t        ||d       | j                  t        ||d       | j                  t        ||d        | j                  t        ||d       | j                  t        ||d 	       | j                  t        ||t        j                  d
       | j                  t        ||t        j                  d        y )Nr   bad_attr	delimiterXXfoo   )	quotechar)lineterminatorquoting )r   r   )assertRaisespy_compat_exccsvError	QUOTE_ALL)selfctorargs      P/var/www/html/bid_assistant/venv/lib/python3.12/site-packages/unicodecsv/test.py_test_arg_validzTest_Csv._test_arg_valid#   sP   -.-t4-sQ?-sa@-sdC#))T36-sdC-sa@-sa@-s4H-s1E-sDA-s"%--2 	 	?-s"%--4 	 	A    c                 D    | j                  t        j                  g        y N)r   r   readerr   s    r   test_reader_arg_validzTest_Csv.test_reader_arg_valid5   s    SZZ,r   c                 T    | j                  t        j                  t                      y r    )r   r   writerr   r"   s    r   test_writer_arg_validzTest_Csv.test_writer_arg_valid8   s    SZZ3r   c                     || }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d        | j                  |j                  j
                  d       | j                  |j                  j                  d       | j                  |j                  j                  t        j                         | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  t        t        |j                  d       | j                  t        t        |j                  dd       | j                  t        t        |j                  d       | j                  t        t        |j                  dd        y )	N,Tz
"Fr   :r   )assertEqualdialectr   doublequote
escapecharr   r   r   r   QUOTE_MINIMALskipinitialspacestrictr   r   delattrsetattr)r   r   argsobjs       r   _test_default_attrszTest_Csv._test_default_attrs;   sQ   Dk..400$7//633V<..4,,c.?.?@55u=++U3-++{	4-++{C	9-++y	2-++y$	8r   c                 D    | j                  t        j                  g        y r    )r6   r   r!   r"   s    r   test_reader_attrszTest_Csv.test_reader_attrsP         R0r   c                 T    | j                  t        j                  t                      y r    )r6   r   r%   r   r"   s    r   test_writer_attrszTest_Csv.test_writer_attrsS         WY7r   c           
         t        dddddt        j                  dd      } ||i |}| j                  |j                  j
                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  t        j                         | j                  |j                  j                  d       | j                  |j                  j                  d       y )Nr*   F\*T)r   r-   r.   r   r   r   r0   r1   )dictr   
QUOTE_NONEr+   r,   r   r-   r.   r   r   r   r0   r1   )r   r   r4   kwargsr5   s        r   _test_kw_attrszTest_Csv._test_kw_attrsV   s   4%)S!nnt!# D#F#..400%8//633T:..4,,cnn=55t<++T2r   c                 D    | j                  t        j                  g        y r    )rD   r   r!   r"   s    r   test_reader_kw_attrszTest_Csv.test_reader_kw_attrsf   s    CJJ+r   c                 T    | j                  t        j                  t                      y r    )rD   r   r%   r   r"   s    r   test_writer_kw_attrszTest_Csv.test_writer_kw_attrsi   s    CJJ	2r   c                     G d d      }||fz   } || }| j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j                  d       | j                  |j                  j
                  d       | j                  |j                  j                  d       | j                  |j                  j                  t        j                         | j                  |j                  j                  d       | j                  |j                  j                  d       y )	Nc                   @    e Zd ZdZdZdZdZdZej                  Z
dZdZy)-Test_Csv._test_dialect_attrs.<locals>.dialect-F^$#TN)__name__
__module____qualname__r   r-   r.   r   r   r   r   r   r0   r1    r   r   r,   rK   n   s/    IKJ NImmG#Fr   r,   rL   FrM   rN   rO   T)r+   r,   r   r-   r.   r   r   r   r   r   r0   r1   )r   r   r4   r,   r5   s        r   _test_dialect_attrszTest_Csv._test_dialect_attrsl   s    	 	 wj Dk..400%8//533S9..4,,cmm<55t<++U3r   c                 D    | j                  t        j                  g        y r    )rT   r   r!   r"   s    r   test_reader_dialect_attrsz"Test_Csv.test_reader_dialect_attrs   r9   r   c                 T    | j                  t        j                  t                      y r    )rT   r   r%   r   r"   s    r   test_writer_dialect_attrsz"Test_Csv.test_writer_dialect_attrs   r<   r   c                    t        j                         \  }}t        j                  |d      }	 t	        j
                  |fi |}|j                  |       |j                  d       | j                  |j                         ||j                  j                  j                  d      z          |j                          t        j                  |       y # |j                          t        j                  |       w xY w)Nw+br   utf-8)tempfilemkstemposfdopenr   r%   writerowseekr+   readr,   r   encodecloseunlink)r   fieldsexpectrC   fdnamefileobjr%   s           r   _write_testzTest_Csv._write_test   s    ##%D))B&	ZZ262FOOF#LLOW\\^#fnn&C&C&J&J7&SSU MMOIIdO MMOIIdOs   A>C 'C:c                 L   dd l }t        |d      xr |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 t        j                          G d	 d
      }| j	                  t        | j                   |       d        G d d      }| j	                  t        | j                   |       gd       y )Nr   pypy_version_info   r   rS   r      ""r   c                       e Zd Zd Zd Zy).Test_Csv.test_write_arg_valid.<locals>.BadListc                      y)N
   rS   r"   s    r   __len__z6Test_Csv.test_write_arg_valid.<locals>.BadList.__len__   s    r   c                     |dkD  rt         y )N   IOError)r   is     r   __getitem__z:Test_Csv.test_write_arg_valid.<locals>.BadList.__getitem__   s    q5!M r   N)rP   rQ   rR   rt   rz   rS   r   r   BadListrq      s    "r   r{   c                       e Zd Zd Zy).Test_Csv.test_write_arg_valid.<locals>.BadItemc                     t         r    rw   r"   s    r   __str__z6Test_Csv.test_write_arg_valid.<locals>.BadItem.__str__       r   N)rP   rQ   rR   r   rS   r   r   BadItemr}          r   r   )syshasattrversion_infomajorr   	TypeErrorr   r   rk   rB   rx   )r   r   pypy3r{   r   s        r   test_write_arg_validzTest_Csv.test_write_arg_valid   s    01Qc6F6F6L6LPQ6Qu)#))T=M=MtUWXS!$'#))T%5%5&$ 	 	@	" 	" 	'4#3#3WYC	 	 	'4#3#3gi["Er   c                 z    ddz  }| j                  ||gdj                  |j                  d      gdz               y )NXiP     ,r[   rv   )rk   joinrc   )r   	bigstrings     r   test_write_bigfieldzTest_Csv.test_write_bigfield   s@    %K	)Y/I$4$4W$=#>#BC	Er   c                    | j                  g dd       | j                  t        j                  | j                   g ddt        j                         | j                  g ddt        j
                         | j                  g ddt        j                         | j                  g ddt        j                         | j                  ddgd	t        j                         y )
Nar   p,q	   a,1,"p,q"s   a,1,p,qr   s   "a",1,"p,q"s   "a","1","p,q"a
br   s	   "a
b","1")rk   r   r   r   rB   r/   QUOTE_NONNUMERICr   r"   s    r   test_write_quotingzTest_Csv.test_write_quoting   s    ,7#))**):"%.. 	 	2 	,!$!2!2 	 	4.!$!5!5 	 	7*:!$ 	 	0&!m!$ 	 	0r   c                 t    | j                  dt        j                  d      dgdt        j                         y )Nr   z1.1r   s   "a",1.1,"p,q"r   )rk   decimalDecimalr   r   r"   s    r   test_write_decimalzTest_Csv.test_write_decimal   s3    #wu5u=?O!$!5!5 	 	7r   c                    | j                  g ddd       | j                  t        j                  | j                   g ddd d       | j                  g dddd       | j                  d	gd
dt        j                         | j                  d	gddt        j                  d       | j                  d	gddt        j
                         | j                  g dddt        j
                         y )Nr   r   r>   r.   )r   r   zp,"q"s   a,1,"p,\"q\""F)r.   r-   r)      """")r.   r   s   \")r.   r   r-   s   a,1,p\,q)rk   r   r   r   r/   rB   r"   s    r   test_write_escapezTest_Csv.test_write_escape   s    ,$( 	 	*#))**+-?%)u 	 	> 	*,>$(e 	 	=#$(#2C2C 	 	E#$(#2C2C%* 	 	, 	#$(#.. 	 	B,$(#.. 	 	Br   c                     G d d      }t        j                   |             }| j                  t        |j                  dgg       t        j                         \  }}t        j                  |d      }	 t        j                  |      }| j                  t        |j                  d        |j	                  ddgddgg       |j                  d       | j                  |j                         d	       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)
Nc                       e Zd Zd Zy)+Test_Csv.test_writerows.<locals>.BrokenFilec                     t         r    rw   )r   bufs     r   writez1Test_Csv.test_writerows.<locals>.BrokenFile.write   r   r   N)rP   rQ   rR   r   rS   r   r   
BrokenFiler      r   r   r   r   rZ   bcdr   s
   a,b
c,d
)r   r%   r   rx   	writerowsr\   r]   r^   r_   r   ra   r+   rb   rd   re   )r   r   r%   rh   ri   rj   s         r   test_writerowszTest_Csv.test_writerows   s    	 	 JL)'6#3#3seW=##%D))B&	ZZ(Fi)9)94@sCj3*56LLOW\\^->?MMOIIdO MMOIIdOs   6A>D 'Ec                 j    t        j                  |fi |}t        |      }| j                  ||       y r    )r   r!   listr+   )r   inputrg   rC   r!   results         r   
_read_testzTest_Csv._read_test   s.    E,V,f(r   c                 :   | j                  g g        | j                  dgg g       | j                  t        j                  | j                   dgd d       | j                  t        j                  | j                   dgd d       | j                  dgdggd       y )	Nr   s   "ab"cr   )r1   s   ab cabcr   )r-   r   r   r   r   r"   s    r   test_read_oddinputszTest_Csv.test_read_oddinputs   s    Bt$#))T__#*d1 	 	6 	#))T__#*d1 	 	6
eWI1=r   c                    | 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        y )
Ns   a,br   r   s   a,b
s   a,b
s   a,bs   a,bc,ds   a,b
c,ds   a,b
c,dr   r"   s    r   test_read_eolzTest_Csv.test_read_eol   s    C:,/
c3ZL1Szl3
c3ZL1#))T__{mRH#))T__{mRH#))T__}orJr   c                 $   | j                  dgg dgd       | j                  dgddggd       | j                  dgddggd       | j                  d	gddggd       | j                  d
gddggd       | j                  dgddggd       y )Ns   a,\b,cr   r   r   r>   r   s   a,b\,cr   zb,cs   a,"b\,c"s   a,"b,\c"s	   a,"b,c\""zb,c"s   a,"b,c"\zb,c\)r   r"   s    r   test_read_escapezTest_Csv.test_read_escape  s    &7DIU|nF#u4H#u4H3-TJ#w(8TJr   c                    | j                  dgg dg       | j                  dgg dgd d       | j                  dgg dgt        j                  d       | j                  dgg dgt        j                  	       | j                  d
gddgg       | j	                  t
        | j                   dgg gt        j                  	       y )Ns	   1,",3,",5)1z,3,5)r   r)   3r)   r   r>   )r   r.   )r   r.   s   ,3,"5",7.3, 9)r   rn   r   g333333@	   r   s   "a
b", 7r   z 7s   abc,3)r   r   rB   r   r   
ValueErrorr"   s    r   test_read_quotingzTest_Csv.test_read_quoting  s    ):(;<)B(C"&4 	 	9)B(C #4 	 	A 	)*-A,B # 4 4 	 	6&$(89*doo#*rd"%"6"6 	 	8r   c                    t        j                  g d      t        j                  g dg d      fD ]  }| j                  |j                  d       t        |       | j                  |j                  d       t        |       | j                  |j                  d       t        |       | j                  |j                  d       | j                  t        t
        |       | j                  |j                  d        y )N)s   line,1s   line,2s   line,3r   
fieldnamesr   r   rv   rn   )r   r!   
DictReaderr+   line_numnextr   StopIteration)r   rs     r   test_read_linenumzTest_Csv.test_read_linenum  s    **>?..!B,;=> 	,A QZZ+GQZZ+GQZZ+GQZZ+mT15QZZ+	,r   c                 6   t        j                         \  }}t        j                  |d      }	 t	        j
                  |      }| j                  t        |j                  d        ddgddgg}|j                  |       |j                  d       t        t	        j                  |            D ]  \  }}| j                  |||           	 |j                          t        j                  |       y # |j                          t        j                  |       w xY w)NrZ   r   r   r   zx
dr   )r\   r]   r^   r_   r   r%   r   r   r   ra   	enumerater!   r+   rd   re   )r   rh   ri   rj   r%   rowsry   rows           r   test_roundtrip_quoteed_newlinesz(Test_Csv.test_roundtrip_quoteed_newlines,  s    ##%D))B&
	ZZ(Fi)9)94@SMC?3DT"LLO#CJJw$78 /3  d1g./ MMOIIdO MMOIIdOs   BC1 1'DN)rP   rQ   rR   __doc__r   r#   r&   r6   r8   r;   rD   rF   rH   rT   rV   rX   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   rS   r   r   r   r      s    
A$-48*183 ,34,18F6E07B&()
>KK8,r   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestDialectRegistryc                     | 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        | j                  t        t        j                  dd        | j                  t        t        j                  g        y )Nnonesuchr   )badargumentr   )r   r   r   list_dialectsget_dialectr   unregister_dialectregister_dialectr"   s    r   test_registry_badargsz)TestDialectRegistry.test_registry_badargs=  sZ   )S%6%6=)S__5#))S__d;#))S__jA)S%;%;<#))S%;%;TB#))S%;%;ZH)S%9%94@)S%9%94F)S%9%9:q!L)S%9%9:&* 	 	,)S%9%9:"& 	 	()S%9%92>r   c                     G d dt         j                        }d}t        j                         |gz   }|j                          t        j                  ||       	 | j                  t        j                  |      j                  d       t        j                         }|j                          | j                  ||       t        j                  |       y # t        j                  |       w xY w)Nc                       e Zd ZdZy)5TestDialectRegistry.test_registry.<locals>.myexceltsv	NrP   rQ   rR   r   rS   r   r   
myexceltsvr   O      Ir   r   r   )	r   excelr   sortr   r+   r   r   r   )r   r   ri   expected_dialectsgot_dialectss        r   test_registryz!TestDialectRegistry.test_registryN  s    	 	--/4&8 T:.	)S__T2<<dC,,.L.=""4(C""4(s   A%C C-c                 Z   d}t        j                  |d       	 | j                  t        j                  |      j                  d       | j                  t        t        j                  dg|            g dg       t        j                  |       y # t        j                  |       w xY w)Nfedcba;r
   r   s   X;Y;Z)r   YZ)	r   r   assertNotEqualr   r   r+   r   r!   r   )r   ri   s     r   test_register_kwargsz(TestDialectRegistry.test_register_kwargs]  s~    TS1	) 5 ? ?FT#**hZ">?BTAUV""4(C""4(s   A"B B*c                 v     G d dt         j                        }| j                  t         j                  |       y )Nc                       e Zd ZdZy)?TestDialectRegistry.test_incomplete_dialect.<locals>.myexceltsvr   Nr   rS   r   r   r   r   g  r   r   r   )r   Dialectr   r   )r   r   s     r   test_incomplete_dialectz+TestDialectRegistry.test_incomplete_dialectf  s&    	 	#))Z0r   c                      G d dt         j                        }t        j                         \  }}t	        j
                  |d      }	 |j                  d       |j                  d       t        j                  | |             }| j                  t        |      ddg       | j                  t        |      d	d
g       |j                          t	        j                  |       y # |j                          t	        j                  |       w xY w)Nc                   ,    e Zd ZdZej
                  ZdZy)5TestDialectRegistry.test_space_dialect.<locals>.space r>   N)rP   rQ   rR   r   r   rB   r   r.   rS   r   r   spacer   l  s    InnGJr   r   rZ   s   abc def
c1ccccc1 benzene
r   r,   r   defc1ccccc1benzene)r   r   r\   r]   r^   r_   r   ra   r!   r+   r   rd   re   )r   r   rh   ri   rj   rdrs         r   test_space_dialectz&TestDialectRegistry.test_space_dialectk  s    	CII 	
 ##%D))B&	MM89LLO**Weg6CT#Y7T#YY(?@MMOIIdO MMOIIdOs   A8C& &'Dc                 	    G d dt         j                        } G d dt         j                        } G d dt         j                        }t        j                  d|       	 t        j                         \  }}t        j                  |d      }	 t        j                  |      }|j                  g d       |j                  d	       | j                  |j                         d
       |j                          t        j                  |       t        j                         \  }}t        j                  |d      }	 t        j                  ||      }|j                  g d       |j                  d	       | j                  |j                         d       |j                          t        j                  |       t        j                         \  }}t        j                  |d      }	 t        j                  | |             }|j                  g d       |j                  d	       | j                  |j                         d       |j                          t        j                  |       t        j                         \  }}t        j                  |d      }	 t        j                  |d      }|j                  g d       |j                  d	       | j                  |j                         d       |j                          t        j                  |       t        j                         \  }}t        j                  |d      }	 t        j                  ||d      }|j                  g d       |j                  d	       | j                  |j                         d       |j                          t        j                  |       	 t        j                  d       y # |j                          t        j                  |       w xY w# |j                          t        j                  |       w xY w# |j                          t        j                  |       w xY w# |j                          t        j                  |       w xY w# |j                          t        j                  |       w xY w# t        j                  d       w xY w)Nc                       e Zd ZdZy)5TestDialectRegistry.test_dialect_apply.<locals>.testAr   Nr   rS   r   r   testAr   ~  r   r   r   c                       e Zd ZdZy)5TestDialectRegistry.test_dialect_apply.<locals>.testBr*   Nr   rS   r   r   testBr        Ir   r  c                       e Zd ZdZy)5TestDialectRegistry.test_dialect_apply.<locals>.testC|Nr   rS   r   r   testCr    r  r   r  rZ   )r   rv   rn   r   s   1,2,3
s   1	2	3
r   s   1:2:3
s   1|2|3
r   )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           r   test_dialect_applyz&TestDialectRegistry.test_dialect_apply}  s9   	CII 		CII 		CII 	 	We,9	,'')HBiiE*G G,	*Q  >		$'')HBiiE*G GU3	*Q  @		$'')HBiiE*G GUW=	*Q  >		$'')HBiiE*G GW=	*Q  >		$'')HBiiE*G GUcJ	*Q  >		$ ""7+a 		$ 		$ 		$ 		$ 		$ ""7+s   #-R5 AO# *AR5 =AP AR5 *A P7 
AR5 AQ! 8AR5 AR '%R5 #'P

R5 'P44R5 7'QR5 !'RR5 'R22R5 5Sc                 <   | j                  t        t        j                  g d       | j                  t        t        j                  g d        | j                  t        t        j                  g d       | j                  t        t        j                  g d       y )Nr   r   r
   r   d   )r   r   r   r!   r"   s    r   test_bad_dialectz$TestDialectRegistry.test_bad_dialect  sn    )SZZa@)SZZtD)SZZR@)SZZSAr   N)
rP   rQ   rR   r   r   r   r   r   r	  r  rS   r   r   r   r   <  s(    ?"))1
$D,LBr   r   c                       e Zd Zd Zd Zy)TestCsvBasec                    t        j                         \  }}t        j                  |d      }	 |j	                  |       |j                  d       t        j                  || j                        }t        |      }| j                  ||       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)NrZ   r   r   )r\   r]   r^   r_   r   ra   r   r!   r,   r   r+   rd   re   )r   r   expected_resultrh   ri   rj   r!   rf   s           r   readerAssertEqualzTestCsvBase.readerAssertEqual  s    ##%D))B&	MM% LLOZZ>F&\FV_5MMOIIdO MMOIIdOs   A B5 5'Cc                    t        j                         \  }}t        j                  |d      }	 t	        j
                  || j                        }|j                  |       |j                  d       | j                  |j                         |       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)NrZ   r   r   )r\   r]   r^   r_   r   r%   r,   r   ra   r+   rb   rd   re   )r   r   r  rh   ri   rj   r%   s          r   writerAssertEqualzTestCsvBase.writerAssertEqual  s    ##%D))B&	ZZ>FU#LLOW\\^_=MMOIIdO MMOIIdOs   A#B8 8'CN)rP   rQ   rR   r  r  rS   r   r   r  r    s    
r   r  c                       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y)TestDialectExcelr   c                 ,    | j                  ddgg       y )Ns   abcr   r  r"   s    r   test_singlezTestDialectExcel.test_single      vy1r   c                 .    | j                  dg dg       y )Ns	   1,2,3,4,5)r   2r   4r   r  r"   s    r   test_simplezTestDialectExcel.test_simple  s    |.G-HIr   c                 (    | j                  dg        y Nr   r  r"   s    r   test_blanklinezTestDialectExcel.test_blankline  s    sB'r   c                 .    | j                  dddgg       y )Nr   r   r  r"   s    r   test_empty_fieldsz"TestDialectExcel.test_empty_fields  s    tr2hZ0r   c                 ,    | j                  ddgg       y )Nro   r   r  r"   s    r   test_singlequotedz"TestDialectExcel.test_singlequoted  s    utf-r   c                 .    | j                  dddgg       y )Ns   "",r   r  r"   s    r   test_singlequoted_left_emptyz-TestDialectExcel.test_singlequoted_left_empty      vRz2r   c                 .    | j                  dddgg       y )Ns   ,""r   r  r"   s    r   test_singlequoted_right_emptyz.TestDialectExcel.test_singlequoted_right_empty  r(  r   c                 ,    | j                  ddgg       y )Nr   r)   r  r"   s    r   test_single_quoted_quotez)TestDialectExcel.test_single_quoted_quote  s    w#0r   c                 ,    | j                  ddgg       y )Ns   """"""z""r  r"   s    r   test_quoted_quotesz#TestDialectExcel.test_quoted_quotes  s    yD6(3r   c                 ,    | j                  ddgg       y )Ns   a""bza""br  r"   s    r   test_inline_quotez"TestDialectExcel.test_inline_quote      w&
3r   c                 ,    | j                  ddgg       y )Ns   a"b"cza"b"cr  r"   s    r   test_inline_quotesz#TestDialectExcel.test_inline_quotes  s    x7)5r   c                 ,    | j                  ddgg       y )Ns   "a"babr  r"   s    r   test_quotes_and_morez%TestDialectExcel.test_quotes_and_more  s     	w$1r   c                 ,    | j                  ddgg       y )Ns   a"bza"br  r"   s    r   test_lone_quotez TestDialectExcel.test_lone_quote  r  r   c                 ,    | j                  ddgg       y )Ns   "a" "b"za "b"r  r"   s    r   test_quote_and_quotez%TestDialectExcel.test_quote_and_quote  s     	zWI;7r   c                 ,    | j                  ddgg       y )Ns    "a"z "a"r  r"   s    r   test_space_and_quotez%TestDialectExcel.test_space_and_quote  r1  r   c                 .    | j                  dg dg       y )Ns#   1,2,3,"I think, therefore I am",5,6)r   r  r   zI think, therefore I amr   6r  r"   s    r   test_quotedzTestDialectExcel.test_quoted  s    E!+  ,	-r   c                 2    d}| j                  |g dg       y )NsJ   1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw")r   r  r   z"I see," said the blind manz"as he picked up his hammer and sawr  )r   values     r   test_quoted_quotez"TestDialectExcel.test_quoted_quote!  s$    ]u!G  H	Ir   c                 8    d}| j                  |g dg dg       y )NsR   1,2,3,"""I see,""
said the blind man","as he picked up his
hammer and saw"
9,8,7,6)r   r  r   z"I see,"
said the blind manz"as he picked up his
hammer and saw)987r>  r  )r   r   s     r   test_quoted_nlzTestDialectExcel.test_quoted_nl(  s+    
 	u!J !5 6	7r   c                 .    | j                  dg dg       y )Ns	   12,12,1",)12rI  z1"r   r  r"   s    r   test_dubious_quotez#TestDialectExcel.test_dubious_quote4  s    |.D-EFr   c                 (    | j                  g d       y r   r  r"   s    r   	test_nullzTestDialectExcel.test_null7  s    r3'r   c                 ,    | j                  dggd       y )Nr   s   abc
rL  r"   s    r   test_single_writerz#TestDialectExcel.test_single_writer:  s    y*5r   c                 .    | j                  g dgd       y )N)r   rv   r   rn      s   1,2,abc,3,4
rL  r"   s    r   test_simple_writerz#TestDialectExcel.test_simple_writer=  s     341	3r   c                 .    | j                  g dgd       y )N)r   rv   za"bc"rn   rQ  s   1,2,"a""bc""",3,4
rL  r"   s    r   test_quoteszTestDialectExcel.test_quotesA  s     567	9r   c                 ,    | j                  dggd       y Nabc,defs   "abc,def"
rL  r"   s    r   test_quote_fieldsepz$TestDialectExcel.test_quote_fieldsepE  s    }/	1r   c                 .    | j                  g dgd       y )N)r   rv   za
bcrn   rQ  s   1,2,"a
bc",3,4
rL  r"   s    r   test_newlineszTestDialectExcel.test_newlinesI  s     565	7r   N)rP   rQ   rR   r,   r  r  r!  r#  r%  r'  r*  r,  r.  r0  r3  r6  r8  r:  r<  r?  rB  rG  rJ  rM  rO  rR  rT  rX  rZ  rS   r   r   r  r    s    G2J(1.3314462
28
4-I
7G(63917r   r  c                   (    e Zd Zej                  ZdZy)EscapedExcelr>   N)rP   rQ   rR   r   rB   r   r.   rS   r   r   r\  r\  N  s    nnGJr   r\  c                   &    e Zd Z e       Zd Zd Zy)TestEscapedExcelc                 ,    | j                  dggd       y )NrW  
   abc\,def
rL  r"   s    r   test_escape_fieldsepz%TestEscapedExcel.test_escape_fieldsepV      }.>?r   c                 ,    | j                  ddgg       y )Nr`  rW  r  r"   s    r   test_read_escape_fieldsepz*TestEscapedExcel.test_read_escape_fieldsepY  s    /9+?r   N)rP   rQ   rR   r\  r,   ra  rd  rS   r   r   r^  r^  S  s    nG@@r   r^  c                   (    e Zd Zej                  ZdZy)QuotedEscapedExcelr>   N)rP   rQ   rR   r   r   r   r.   rS   r   r   rf  rf  ]  s    ""GJr   rf  c                   &    e Zd Z e       Zd Zd Zy)TestQuotedEscapedExcelc                 ,    | j                  dggd       y rV  rL  r"   s    r   test_write_escape_fieldsepz1TestQuotedEscapedExcel.test_write_escape_fieldsepe  rb  r   c                 ,    | j                  ddgg       y )Ns   "abc\,def"
rW  r  r"   s    r   rd  z0TestQuotedEscapedExcel.test_read_escape_fieldseph  s    1YK=Ar   N)rP   rQ   rR   rf  r,   rj  rd  rS   r   r   rh  rh  b  s     "G@Br   rh  c                   f    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y)TestDictFieldsc                 H   t        j                         \  }}t        |d      }	 t        j                  |g d      }|j                          |j                  d       | j                  |j                         d       |j                  ddd       |j                  d       |j                          | j                  |j                         d	       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)
NrZ   f1f2f3r   r   s
   f1,f2,f3
rs   r   )rp  rr  s	   10,,abc
)r\   r]   openr   
DictWriterwriteheaderra   r+   readliner`   rb   rd   r^   re   r   rh   ri   rj   r%   s        r   test_write_simple_dictz%TestDictFields.test_write_simple_dicto  s    ##%DtU#	^^G8JKF LLOW--/AOO2U34LLOW\\^^<MMOIIdO MMOIIdOs   B/C: :'D!c                    t        j                         \  }}t        |d      }	 t        j                  |ddg      }|j                          |j                  d       | j                  |j                         j                  d      d       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)NrZ      ñ   ör   r   r[   u   ñ,ö
)r\   r]   rs  r   rt  ru  ra   r+   rv  decoderd   r^   re   rw  s        r   test_write_unicode_header_dictz-TestDictFields.test_write_unicode_header_dict  s    ##%DtU#	^^GGF LLOW--/66w?NMMOIIdO MMOIIdOs   A)B4 4'Cc                 b    t               }| j                  t        t        j                  |       y r    )r   r   r   r   rt  )r   rj   s     r   test_write_no_fieldsz#TestDictFields.test_write_no_fields  s    ))S^^W=r   c                    t        j                         \  }}t        j                  |d      }	 |j	                  d       |j                  d       t        j                  |g d      }| j                  t        |      dddd       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)	NrZ   s	   1,2,abc
r   ro  r   r   r  r   r\   r]   r^   r_   r   ra   r   r   r+   r   rd   re   r   rh   ri   rj   r!   s        r   test_read_dict_fieldsz$TestDictFields.test_read_dict_fields  s    ##%D))B&		MM.)LLO^^G/ACFT&\$'s%@B MMOIIdO MMOIIdOs   AB/ /'Cc                    t        j                         \  }}t        j                  |d      }	 |j	                  d       |j                  d       t        j                  |      }| j                  |j                  g d       | j                  t        |      dddd       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)NrZ      f1,f2,f3
1,2,abc
r   ro  r   r  r   r\   r]   r^   r_   r   ra   r   r   r+   r   r   rd   re   r  s        r   test_read_dict_no_fieldnamesz+TestDictFields.test_read_dict_no_fieldnames  s    ##%D))B&
	MM45LLO^^G,FV../1T&\$'s%@B MMOIIdO MMOIIdOs   A4C	 	'C0c                 "   t        j                         \  }}t        j                  |d      }	 |j	                  d       |j                  d       t        j                  |t        t        j                  |                  }| j                  |j                  g d       | j                  t        |      dddd       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)	NrZ   r  r   r   ro  r   r  r   )r\   r]   r^   r_   r   ra   r   r   r   r!   r+   r   rd   re   )r   rh   ri   fr!   s        r   #test_read_dict_fieldnames_from_filez2TestDictFields.test_read_dict_fieldnames_from_file  s    ##%DIIb% 
	GG./FF1I^^A$szz!}2EFFV../1T&\$'s%@B GGIIIdO GGIIIdOs   BC' ''Dc                 $   dd l }t        j                         \  }}t        j                  |d      }	 |j                  d       |j                  d       t        j                  |      }t        |      }|j                  |g|      D ]6  }| j                  |j                  g d       | j                  |dddd       8 	 |j                          t        j                  |       y # |j                          t        j                  |       w xY w)Nr   rZ   r  ro  r   r  r   )	itertoolsr\   r]   r^   r_   r   ra   r   r   r   chainr+   r   rd   re   )r   r  rh   ri   r  r!   firstr   s           r   test_read_dict_fieldnames_chainz.TestDictFields.test_read_dict_fieldnames_chain  s    ##%DIIb% 
	GG./FF1I^^A&FLE w7 K  !2!24FG  S5&IJK GGIIIdO GGIIIdOs   BC( ('Dc                    t        j                         \  }}t        j                  |d      }	 |j	                  d       |j                  d       t        j                  |ddg      }| j                  t        |      ddg d	d
       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)NrZ      1,2,abc,4,5,6
r   rp  rq  r   r   r  r   r  r   r>  )rp  rq  Nr  r  s        r   test_read_longzTestDictFields.test_read_long  s    ##%D))B&		MM./LLO^^G04d|=FT&\#S3I,K L MMOIIdO MMOIIdOs   AB1 1'Cc                    t        j                         \  }}t        j                  |d      }	 |j	                  d       |j                  d       t        j                  |ddgd      }| j                  t        |      dd	g d
d       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)NrZ   r  r   rp  rq  _rest)r   restkeyr   r  r  rp  rq  r  r  r  s        r   test_read_long_with_restz'TestDictFields.test_read_long_with_rest  s    ##%D))B&		MM./LLO^^G04d|WNFT&\#S6L,N O MMOIIdO MMOIIdOs   AB2 2'Cc                    t        j                         \  }}t        j                  |d      }	 |j	                  d       |j                  d       t        j                  |d      }| j                  |j                  ddg       | j                  t        |      dd	g d
d       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)NrZ   s   f1,f2
1,2,abc,4,5,6
r   r  )r  rp  rq  r   r  r  r  r  r  s        r   &test_read_long_with_rest_no_fieldnamesz5TestDictFields.test_read_long_with_rest_no_fieldnames  s    ##%D))B&		MM78LLO^^GW=FV..t=T&\#S6L,N O MMOIIdO MMOIIdOs   A8C 'C4c           
         t        j                         \  }}t        j                  |d      }	 |j	                  d       |j                  d       t        j                  |dj                         d      }| j                  t        |      ddd	d
ddd       | j                  t        |      ddd	dddd       |j                          t        j                  |       y # |j                          t        j                  |       w xY w)NrZ   s   1,2,abc,4,5,6
1,2,abc
r   1 2 3 4 5 6DEFAULT)r   restvalr   r  r   r  r   r>  r   r  r   r  r   r>  )r\   r]   r^   r_   r   ra   r   r   splitr+   r   rd   re   r  s        r   test_read_shortzTestDictFields.test_read_short  s    ##%D))B&	MM9:LLO^^G/</B/B/D,57F T&\3U25Cc,K LT&\3U2;)2;,= > MMOIIdO MMOIIdOs   BC! !'Dc           	          g d}t        j                  |dj                               }| j                  t	        |      dddddd	       y )
N)s   2147483648,43.0e12,17,abc,def
s   147483648,43.0e2,17,abc,def
s   47483648,43.0,170,abc,def
zi1 float i2 s1 s2r   
2147483648z43.0e1217r   r   )i1floati2s1s2r   r   r  r+   r   )r   sampler!   s      r   test_read_multizTestDictFields.test_read_multi	  sO     +>+D+D+FHfl2;/3/4/4	(6 	7r   c           
          t        j                  g ddj                               }| j                  t	        |      dddddd	d
       | j                  t	        |      dddddd	d
       y )N)r     
r  r  r   r   r  r   r  r   r>  r  r  r   r!   s     r   test_read_with_blanksz$TestDictFields.test_read_with_blanks  st     !7+8+>+>+@B 	fSs.1#(G 	HfSs.1#(G 	Hr   c           
          t        j                  dgdj                         d      }| j                  t	        |      ddddd	d
d       y )Ns   1;2;abc;4;5;6
r  r   )r   r   r   r  r   r  r   r>  r  r  r  s     r   test_read_semi_sepz!TestDictFields.test_read_semi_sep!  sO    !5 6+8+>+>+@*-/ 	fSs.1#(G 	Hr   c                 >    t        j                  t                      y r    )r   r   r   r"   s    r   test_empty_filezTestDictFields.test_empty_file(  s    wy!r   N)rP   rQ   rR   rx  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  rS   r   r   rm  rm  l  sO     
>" $7HH"r   rm  c                   $    e Zd Zd Zd Zd Zd Zy)TestArrayWritesc                    t        d      D cg c]  }d|z
  	 }}t        j                  d|      }t        j                         \  }}t	        j
                  |d      }	 t        j                  |d      }|j                  |       dj                  |D cg c]  }t        |      j                  d       c}      dz   }|j                  d	       | j                  |j                         |       |j                          t	        j                   |       y c c}w c c}w # |j                          t	        j                   |       w xY w)
N   ry   rZ   r   r   r   r[   r  r   )rangearrayr\   r]   r^   r_   r   r%   r`   r   strrc   ra   r+   rb   rd   re   )	r   ry   contentsr   rh   ri   rj   r%   expecteds	            r   test_int_writezTestArrayWrites.test_int_write,  s    $)"I.qRT..KKX&##%D))B&	ZZ9FOOAyy!!DQ#a&--"8!DEgMHLLOW\\^X6MMOIIdO / "E MMOIIdOs#   D 7D# !D8;D# D# #'E
c                    t        d      D cg c]
  }d|z
  dz   }}t        j                  d|      }t        j                         \  }}t	        j
                  |d      }	 t        j                  |d      }|j                  |       t        }t        j                  dk\  rt        }dj                  |D cg c]  } ||      j                  d	       c}      d
z   }	|j                  d       | j!                  |j#                         |	       |j%                          t	        j&                  |       y c c}w c c}w # |j%                          t	        j&                  |       w xY w)Nr  皙?r   rZ   r   r   rv      rn   r   r[   r  r   r  r  r\   r]   r^   r_   r   r%   r`   r  r   r   reprr   rc   ra   r+   rb   rd   re   
r   ry   r  r   rh   ri   rj   r%   
float_reprr  s
             r   test_double_writez!TestArrayWrites.test_double_write<     (-b	21RT3J22KKX&##%D))B&	ZZ9FOOAJ9,!
yy!KA*Q-"6"6w"?!KLWTHLLOW\\^X6MMOIIdO 3 "L MMOIIdO$   D8#AE 9D=;E =E 'E)c                    t        d      D cg c]
  }d|z
  dz   }}t        j                  d|      }t        j                         \  }}t	        j
                  |d      }	 t        j                  |d      }|j                  |       t        }t        j                  dk\  rt        }dj                  |D cg c]  } ||      j                  d	       c}      d
z   }	|j                  d       | j!                  |j#                         |	       |j%                          t	        j&                  |       y c c}w c c}w # |j%                          t	        j&                  |       w xY w)Nr  r  r  rZ   r   r   r  r   r[   r  r   r  r  s
             r   test_float_writez TestArrayWrites.test_float_writeN  r  r  c                    t         j                  }t        j                         \  }}t	        j
                  |d      }	 t        j                  |d      }|j                  |       dj                  |      j                  d      dz   }|j                  d       | j                  |j                         |       |j                          t	        j                  |       y # |j                          t	        j                  |       w xY w)NrZ   r   r   r(   r[   r  r   )stringascii_lettersr\   r]   r^   r_   r   r%   r`   r   rc   ra   r+   rb   rd   re   )r   r   rh   ri   rj   r%   r  s          r   test_char_writezTestArrayWrites.test_char_write`  s      ##%D))B&	ZZ9FOOAxx{))'27:HLLOW\\^X6MMOIIdO MMOIIdOs   A<C! !'DN)rP   rQ   rR   r  r  r  r  rS   r   r   r  r  +  s     $$r   r  c                       e Zd Zd Zy)TestUnicodec                     t        t        dj                  d            d      }t        j                  |d      }| j                  t        |      g dg       y )NuI   Martin von Löwis,Marc André Lemburg,Guido van Rossum,François Pinard

iso-8859-1data_encoding)encoding)u   Martin von Löwisu   Marc André LemburgzGuido van Rossumu   François Pinardr   r   rc   r   r!   r+   r   )r   r  r!   s      r   test_unicode_readzTestUnicode.test_unicode_readp  s\     "9 ;A&:NP '3	4
 A5f )> (? 	@r   N)rP   rQ   rR   r  rS   r   r   r  r  o  s    
@r   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestUnicodeErrorsc                     t               }t        j                  |dd      }|j                  dt	        d      g       | j                  |j                         d       y )Ncp1252xmlcharrefreplacer  errorshelloi+
  s   hello,&#2603;
)r   r   r%   r`   chrr+   getvalue)r   rh   r%   s      r   test_encode_errorz#TestUnicodeErrors.test_encode_error~  sH    YB:MN#d),-(<=r   c                     t               }t        j                  |dgdd      }|j                  dt	        d      i       | j                  |j                         d       y )Ncol1r  r  r  i,
  s	   &#2604;
)r   r   rt  r`   r  r+   r  )r   rh   dws      r   test_encode_error_dictwriterz.TestUnicodeErrors.test_encode_error_dictwriter  sO    Y^^B%-6IK
VSY'(7r   c                     t        t        dj                  d            d      }t        j                  |dd      }| j                  t        |      d   d   d       y	)
zAMake sure the specified error-handling mode is obeyed on readers.u
   Löwis,2,3r  r  asciiignorer  r   LwisNr  r   filer!   s      r   test_decode_errorz#TestUnicodeErrors.test_decode_error  sP    7=#7#7#EF)57D78Dfa+V4r   c                     t        t        dj                  d            d      }t        j                  |dd      }| j                  t        |      d   d   d	       y
)z;Make sure the error-handling mode is obeyed on DictReaders.u   name,height,weight
Löwis,2,3r  r  r  r  r  r   ri   r  N)r   r   rc   r   r   r+   r   r  s      r   test_decode_error_dictreaderz.TestUnicodeErrors.test_decode_error_dictreader  sQ    7#D#K#KL#YZ)57wxHfa0&9r   N)rP   rQ   rR   r  r  r  r  rS   r   r   r  r  }  s    >85:r   r  )!r  r   r^   r  r   r\   	unittest2unittestcodecsr   ior   
unicodecsvr   unichrr  r   AttributeErrorr   TestCaser   r   r  r  r   r\  r^  rf  rh  rm  r  r  r  rS   r   r   <module>r     s  
   	  
     	
C N+\x   \~MB(++ MB`(## 6d7{ d7N399 
@{ @ 
B[ B}"X&& }"~Ah'' AH@(## @:)) :S	s   D D