U
    +if                     @   sP  d Z ddlZddlmZ ddlZddlZddlmZ ddlm	Z
 ddlm  mZ ejdZejddgdd	d
 Zejdd Zeejddddgdd Zeejdddgdd Zedd Zedd Zeejdddgdd Zeejddddgd d! Zed"d# Zeejd$d%d&d'gd(d) Zd*d+ ZdS ),zZ
Tests compressed data parsing functionality for all
of the parsers defined in parsers.py
    N)Path)	DataFrameZpyarrow_skipTF)paramsc                 C   s   | j S )N)param)request r   Z/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/io/parser/test_compression.pybuffer   s    r	   c              	   C   s6   | }t |d}| }W 5 Q R X ||}|||fS )Nrb)openreadread_csv)all_parserscsv1parserfdataexpectedr   r   r   parser_and_data   s
    
r   compressionzipinferzip2c           	   
   C   s   | \}}}t dt}tj|dd}|d| W 5 Q R X |dkrjt|d}|j|dd}W 5 Q R X n|j||d}t || W 5 Q R X d S )	Ntest_file.zipwmode	test_filer   r
   r   r   )tmensure_cleanzipfileZipFilewritestrr   r   assert_frame_equal)	r   r   r   r   r   pathtmpr   resultr   r   r   test_zip$   s    
r(   c           	   
   C   s   | \}}}t df}ddg}tj|dd}|D ]}||| q2W 5 Q R X tjtdd |j||d W 5 Q R X W 5 Q R X d S )	Nzcombined_zip.zipr   Zsecond_filer   r   zMultiple filesmatchr   )	r   r    r!   r"   r#   pytestraises
ValueErrorr   )	r   r   r   r   r   r%   Zinner_file_namesr&   	file_namer   r   r   test_zip_error_multiple_files6   s    
r/   c              
   C   sd   | \}}}t  H}tj|dd W 5 Q R X tjtdd |j|dd W 5 Q R X W 5 Q R X d S )Nr   r   z
Zero filesr)   r   r   )r   r    r!   r"   r+   r,   r-   r   )r   r   _r%   r   r   r   test_zip_error_no_filesF   s    


r1   c                 C   sb   | \}}}t  F}t|d0}tjtjdd |j|dd W 5 Q R X W 5 Q R X W 5 Q R X d S )Nr
   zFile is not a zip filer)   r   r   )r   r    r   r+   r,   r!   
BadZipfiler   )r   r   r0   r%   r   r   r   r   test_zip_error_invalid_zipR   s
    

r3   filenamez
test.{ext}c              
   C   s   | \}}}|}t j| }|d kr$|n
|j|d}|rB|rBtd tj|dd}	t||	| |rfdn|}
|rt|	d}|j	||
d}W 5 Q R X n|j	|	|
d}t
|| W 5 Q R X d S )N)extz9Cannot deduce compression from buffer of compressed data.)r4   r   r
   r   )icomZ_compression_to_extensionformatr+   skipr   r    Zwrite_to_compressedr   r   r$   )r   Zcompression_onlyr	   r4   r   r   r   compress_typer5   r%   r   r   r'   r   r   r   test_compression\   s    


r:   r5   gzbz2c           	   	   C   s~   | }ddd}|j |f|}d|d< |rLt|}|j |f|}W 5 Q R X n"|rXd| nd}|j || f|}t|| d S )Nr   T)Z	index_colZparse_datesr   r   . )r   r   r   r$   )	r   r   r	   r5   r   kwargsr   r   r'   r   r   r   test_infer_compressionu   s    

r@   c           	      C   s\   | }| |}tj|d| d}|j||ddd}tddgddgd	}t|| d S )
Nutfz_ex_small.zipr   	)encodingr   sepZ	Venezuelau   Hugo Chávez FríaszHenrique Capriles R.)ZCountryZTwitter)r7   osr%   joinr   r   r   r$   )	r   Zcsv_dir_pathZ	utf_valueZencoding_fmtr   rC   r%   r'   r   r   r   r   test_compression_utf_encoding   s    
rG   invalid_compressionZsfarkZbz3Zzipperc              	   C   s@   | }d|i}d| }t jt|d |jd| W 5 Q R X d S )Nr   zUnrecognized compression type: r)   r   )r   )r+   r,   r-   r   )r   rH   r   Zcompress_kwargsmsgr   r   r   test_invalid_compression   s
    
rJ   c              
   C   s~   | }t dddgi}tdV}td@}|j|dd t|t|  t|j|d d| W 5 Q R X W 5 Q R X d S )	Nar      ztest.csvztest.csv.zipF)indexr   )	r   r   r    Zto_csvr   
write_text	read_textr$   r   )r   r   ZdfZpath_csvZpath_zipr   r   r   !test_ignore_compression_extension   s    rP   )__doc__rE   pathlibr   r!   r+   Zpandasr   Zpandas._testingZ_testingr   Zpandas.io.commoniocommonr6   markZusefixturesZskip_pyarrowZfixturer	   r   Zparametrizer(   r/   r1   r3   r:   r@   rG   rJ   rP   r   r   r   r   <module>   sD   




	

