3
Ud              
   @   s  d Z ddlZddlmZ ddlZddlmZ ddlmZ ddl	j
Zejjdeddd	fedejd
dfedddfgdd Zejjdd<d=gdd Zdd Zejjdddddddgdd  Zejjd!ejejgejjdd"dgd#d$ Zejjd%e d&ddggfed'ejd
d&ddggfed'ejd
d&ddggfed'ejd
d&dd(ggfed'ejd
d)d*dggfgd+d, Zejjd-d.d/d0ggfd1d/d2ggfgd3d4 Zejjd5d'd6gd7d8 Zejjd9d.d1gd:d; ZdS )>zt
Tests that quoting specifications are properly handled
during parsing for all of the parsers defined in parsers.py
    N)StringIO)ParserError)	DataFramez
kwargs,msgfoo)	quotecharz,"quotechar" must be a(n)? 1-character string)r   quotingz(quotechar must be set if quoting enabled   z#"quotechar" must be string, not intc          
   C   s8   d}| }t jt|d |jt|f| W d Q R X d S )Nz1,2,3)match)pytestraises	TypeErrorread_csvr   )all_parserskwargsmsgdataparser r   W/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/io/parser/test_quoting.pytest_bad_quote_char   s    r   zquoting,msg"quoting" must be an integer   bad "quoting" valuec             C   s8   d}| }t jt|d |jt||d W d Q R X d S )Nz1,2,3)r	   )r   )r
   r   r   r   r   )r   r   r   r   r   r   r   r   test_bad_quoting$   s    r   c             C   sD   | }d}t dddggdddgd}|jt|d	d
}tj|| d S )Nza,b,c
1,2,"cat"   r   catabc)columns")r   )r   r   r   tmassert_frame_equal)r   r   r   expectedresultr   r   r   test_quote_char_basic3   s
    r%   
quote_char~*%$@Pc             C   sP   | }t dddggdddgd}d}|jd	|}|jt||d
}tj|| d S )Nr   r   r   r   r   r   )r   za,b,c
1,2,"cat"r    )r   )r   replacer   r   r!   r"   )r   r&   r   r#   r   Znew_datar$   r   r   r   test_quote_char_various<   s    r.   r    c       	   
   C   s   t ||d}d}| }|tjkrPd}tjt|d |jt|f| W d Q R X n8tdddggdd	d
gd}|jt|f|}t	j
|| d S )N)r   r   za,b,c
1,2,3z(quotechar must be set if quoting enabled)r	   r   r      r   r   r   )r   )dictcsv
QUOTE_NONEr
   r   r   r   r   r   r!   r"   )	r   r   r&   r   r   r   r   r#   r$   r   r   r   test_null_quote_charH   s    
r4   zkwargs,exp_datar   r    z"foo"g      ?g       @c             C   sH   d}| }dddg}|j t|fd|i|}t||d}tj|| d S )Nz	1,2,"foo"r   r   r   names)r   )r   r   r   r!   r"   )r   r   exp_datar   r   r   r$   r#   r   r   r   test_quoting_various[   s    
r7   zdoublequote,exp_dataTr0   z4 " 5Fz4 " 5"c             C   s<   | }d}|j t|d|d}t|ddgd}tj|| d S )Nza,b
3,"4 "" 5"r    )r   doublequoter   r   )r   )r   r   r   r!   r"   )r   r8   r6   r   r   r$   r#   r   r   r   test_double_quoteu   s
    r9   r   c             C   s8   d}| }t ddgi}|jt||d}tj|| d S )Nza
1r   r   )r   )r   r   r   r!   r"   )r   r   r   r   r#   r$   r   r   r   test_quotechar_unicode   s
    r;   balancedc          
   C   s   | }d}|rFt dddggdddgd}|jt|d	 }tj|| n:|jdkrTd
nd}tjt|d |jt| W d Q R X d S )Nza,b,c
1,2,"3r   r   r0   r   r   r   )r   r    z#EOF inside string starting at row 1zunexpected end of data)r	   )	r   r   r   r!   r"   Zenginer
   r   r   )r   r<   r   r   r#   r$   r   r   r   r   test_unbalanced_quoting   s    r=   )r   r   )r   r   )__doc__r2   ior   r
   Zpandas.errorsr   Zpandasr   Zpandas._testingZ_testingr!   markZparametrizer1   QUOTE_MINIMALr   r   r%   r.   r3   r4   	QUOTE_ALLQUOTE_NONNUMERICr7   r9   r;   r=   r   r   r   r   <module>   s>   
	"&(