3
Ud                 @   s   d Z ddlZddlZddlZddlZddljZej	ddgddd Z
ej	dd	 Zejjd
dddgdd Zejjd
ddgdd Zdd Zdd Zejjdddgdd Zejjddddgdd Zdd  Zejjd!d"d#d$gd%d& ZdS )'zZ
Tests compressed data parsing functionality for all
of the parsers defined in parsers.py
    NTF)paramsc             C   s   | j S )N)param)request r   [/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/io/parser/test_compression.pybuffer   s    r   c          
   C   s6   | }t |d}|j }|j|}W d 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 jdt}tj|dd}|jd| W d Q R X |dkrjt|d}|j|dd}W d Q R X n|j||d}t j|| W d Q R X d S )	Nz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 jdj}ddg}tj|dd }x|D ]}|j|| q4W W d Q R X tjtdd |j||d W d Q R X W d Q R X d S )	Nzcombined_zip.zipr   Zsecond_filer   )r   zMultiple files)match)r   )	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_files0   s    

r)   c             C   sd   | \}}}t j H}tj|dd W d Q R X tjtdd |j|dd W d Q R X W d Q R X d S )Nr   )r   z
Zero files)r$   r   )r   )r   r   r   r   r%   r&   r'   r   )r   r   _r    r   r   r   test_zip_error_no_files?   s    


r+   c             C   sb   | \}}}t j F}t|d0}tjtjdd |j|dd W d Q R X W d Q R X W d Q R X d S )NwbzFile is not a zip file)r$   r   )r   )r   r   r	   r%   r&   r   
BadZipfiler   )r   r   r*   r    r   r   r   r   test_zip_error_invalid_zipJ   s
    

r.   filenamez
test.{ext}c             C   s   | \}}}|}|dkrdn|}|d kr*|n
|j |d}|rH|rHtjd tj|dd}	tj||	| |rldn|}
|rt|	d}|j||
d}W d Q R X n|j|	|
d}tj|| W d Q R X d S )	Ngzipgz)extz9Cannot deduce compression from buffer of compressed data.)r/   r   r   )r   )	formatr%   skipr   r   Zwrite_to_compressedr	   r   r   )r   Zcompression_onlyr   r/   r   r   r   compress_typer2   r    r   r   r"   r   r   r   test_compressionS   s    

r6   r2   r1   bz2c       	   
   C   s   | }t ddd}|j|f|}d|d< |rNt|}|j|f|}W d Q R X n"|rZd| nd}|j|| f|}tj|| d S )Nr   T)Z	index_colZparse_datesr   r   . )dictr   r	   r   r   )	r   r   r   r2   r   kwargsr   r   r"   r   r   r   test_infer_compressionk   s    
r<   c       	      C   s^   | }|j |}tjj|d| d}|j||ddd}tjddgddgd	}tj|| d S )
Nutfz_ex_small.zipr   	)encodingr   sepZ	Venezuelau   Hugo Chávez FríaszHenrique Capriles R.)ZCountryZTwitter)	r3   osr    joinr   pdZ	DataFramer   r   )	r   Zcsv_dir_pathZ	utf_valueZencoding_fmtr   r?   r    r"   r   r   r   r   test_compression_utf_encoding~   s    
rD   invalid_compressionZsfarkZbz3Zzipperc          
   C   sB   | }t |d}d| }tjt|d |jd| W d Q R X d S )N)r   zUnrecognized compression type: )r$   test_file.zip)rF   )r:   r%   r&   r'   r   )r   rE   r   Zcompress_kwargsmsgr   r   r   test_invalid_compression   s
    

rH   )__doc__rA   r   r%   ZpandasrC   Zpandas._testingZ_testingr   Zfixturer   r   markZparametrizer#   r)   r+   r.   r6   r<   rD   rH   r   r   r   r   <module>   s   
	