
x\c        
   @   s  d  Z  d d l Z d d l Z d d l m Z d d l m Z d d l m Z d d l	 j
 j Z e j d    Z d   Z d   Z d	   Z e j j d
 d d d d d d g  e j j d d d d g  d     Z e j j d e d d  d f e d d  e f e d d  d f e d d  d f e d d  e f e d d  e f g d d d d d d  d! g d"    Z d S(#   sf   
Tests that dialects are properly handled during parsing
for all of the parsers defined in parsers.py
iN(   t   StringIO(   t   ParserWarning(   t	   DataFramec          C   s=   d }  t  d t d d d d d t d d d	 d
  } |  | f S(   Nt   weirdt   doublequotet
   escapechart   ~t	   delimitert   :t   skipinitialspacet	   quotechart   quotingi   (   t   dictt   False(   t   dialect_namet   dialect_kwargs(    (    sB   lib/python2.7/site-packages/pandas/tests/io/parser/test_dialect.pyt   custom_dialect   s    c         C   s   |  } d } t  j   } t  j | _ | j t |  d | } d } | j t |   } | j d d d t t j	 | |  d  S(   Ns0   label1,label2,label3
index1,"a,c,e
index2,b,d,f
t   dialects/   label1,label2,label3
index1,a,c,e
index2,b,d,f
t   as   "at   inplace(
   t   csvt   excelt
   QUOTE_NONER   t   read_csvR    t   replacet   Truet   tmt   assert_frame_equal(   t   all_parserst   parsert   datat   diat   dft   exp(    (    sB   lib/python2.7/site-packages/pandas/tests/io/parser/test_dialect.pyt   test_dialect   s    c         C   s   d } |  } d } t  i d d g d 6d d g d 6 } t j | d	 d
 0 | j t |  d | } t j | |  Wd  QXd  S(   Nt	   mydialects+   fruit:vegetable
apple:broccoli
pear:tomato
t   applet   peart   fruitt   broccolit   tomatot	   vegetableR   R   R   (   R   R   t   with_csv_dialectR   R    R   (   R   R   R   R   R!   R    (    (    sB   lib/python2.7/site-packages/pandas/tests/io/parser/test_dialect.pyt   test_dialect_str1   s    c         C   sa   d t  f d     Y} d } |  } d } t j t d |  | j t |  d | Wd  QXd  S(   Nt   InvalidDialectc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sB   lib/python2.7/site-packages/pandas/tests/io/parser/test_dialect.pyR,   D   s   s   a
1s   Invalid dialectt   matchR   (   t   objectt   pytestt   raisest
   ValueErrorR   R    (   R   R,   R   R   t   msg(    (    sB   lib/python2.7/site-packages/pandas/tests/io/parser/test_dialect.pyt   test_invalid_dialectC   s    t   argR   R   R	   R
   R   t   valueR   t   defaultt   otherc         C   s  | \ } } |  } t  i d g d 6d g d 6 } d } d  }	 t   }
 | d  k	 r d d k rp | | |
 | <q d d k r d	 d
 l m } | | |
 | <q t }	 d |
 | <n  t j | |  I t j |	  3 | j	 t
 |  d | |
 } t j | |  Wd  QXWd  QXd  S(   Ni   R   i   t   bs   a:b
1:2R7   R   R8   i(   t   _parser_defaultst   blah(   R   t   NoneR   t   pandas.io.parsersR;   R   R   R*   t   assert_produces_warningR   R    R   (   R   R   R6   R7   R   R   R   t   expectedR   t   warning_klasst   kwdsR;   t   result(    (    sB   lib/python2.7/site-packages/pandas/tests/io/parser/test_dialect.pyt&   test_dialect_conflict_except_delimiterO   s&     	s   kwargs,warning_klasst   sept   ,t   .R   R   t   idss   sep-override-trues   sep-override-falses   delimiter-no-conflicts   delimiter-default-args   delimiter-conflicts   delimiter-conflict2c   
      C   s   | \ } } |  } t  i d g d 6d g d 6 } d } t j | |  I t j |  3 | j t |  d | | }	 t j |	 |  Wd  QXWd  QXd  S(   Ni   R   i   R:   s   a:b
1:2R   (   R   R   R*   R?   R   R    R   (
   R   R   t   kwargsRA   R   R   R   R@   R   RC   (    (    sB   lib/python2.7/site-packages/pandas/tests/io/parser/test_dialect.pyt   test_dialect_conflict_delimiterp   s     (   t   __doc__R   R1   t   pandas.compatR    t   pandas.errorsR   t   pandasR   t   pandas.util.testingt   utilt   testingR   t   fixtureR   R"   R+   R5   t   markt   parametrizeR=   RD   R   RJ   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/io/parser/test_dialect.pyt   <module>   s.   			*