ó
¦–Õ\c           @   sH  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	 m
 Z
 d d g Z e j d ƒ Z e j d d	 ƒ d
 „  ƒ Z d „  Z d „  Z d „  Z e j j d d d g ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z e j j d „  ƒ Z e j j d d ƒ e j j d „  ƒ ƒ Z d S(   iÿÿÿÿN(   t
   open_files(   t   PY2(   t   tmpdirt   at   bt   requestst   scopet   modulec          c   s'  t  ƒ  }  xF t D]> } t t j j |  | ƒ d ƒ  } | j d d ƒ Wd  QXq Wt rs t j	 d d d g } n t j	 d d d g } t
 j | d |  ƒ} d	 } xh t ry t j d
 ƒ PWq¦ t j j k
 r	t j d ƒ | d 8} | d k  r
t d ƒ ‚ q
q¦ Xq¦ W|  V| j ƒ  Wd  QXd  S(   Nt   wbR   i'  s   -mt   SimpleHTTPServert   8999s   http.servert   cwdi
   s   http://localhost:8999gš™™™™™¹?i    s   Server did not appear(   R   t   filest   opent   ost   patht   joint   writeR   t   syst
   executablet
   subprocesst   Popent   TrueR   t   gett
   exceptionst   ConnectionErrort   timet   sleept   RuntimeErrort	   terminate(   t   dt   fnt   ft   cmdt   pt   timeout(    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt
   dir_server   s(    !	
c         C   ss   d } t  d } t | | ƒ d } |  } | j ƒ  } Wd  QX| t t j j |  | ƒ d ƒ j ƒ  k so t ‚ d  S(   Ns   http://localhost:8999/i    t   rb(   R   R    t   readR   R   R   R   t   AssertionError(   R$   t   rootR   R    t   data(    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt   test_simple)   s    
	c         C   sì   d } t  d } t | | ƒ d } t t j j |  | ƒ d ƒ j ƒ  } | ˜ } | j d ƒ } | | d  k sv t ‚ | j d k s‹ t ‚ | j	 d ƒ | j d ƒ } | | d  k s½ t ‚ | j	 d d ƒ | j d k sâ t ‚ Wd  QXd  S(   Ns   http://localhost:8999/i    R%   i   i   i   i   (
   R   R    R   R   R   R   R&   R'   t   loct   seek(   R$   R(   R   R    t   expectedR)   (    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt   test_loc2   s    
$	c         C   sœ   d } t  d } i d d 6} t | | d | ƒd } | ) } | j d d ƒ | j d d ƒ } Wd  QX| t t j j |  | ƒ d	 ƒ j ƒ  k s˜ t ‚ d  S(
   Ns   http://localhost:8999/i    s   Wed, 21 Oct 2015 07:28:00 GMTt   Datet   headerst   lengthi   iÿÿÿÿR%   (   R   R    R&   R   R   R   R   R'   (   R$   R(   R   R0   R    R)   (    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt   test_fetch_range_with_headersB   s    
	(t
   block_sizeiŸ† c         C   sô   d } t  d } t | | ƒ d } t t j j |  | ƒ d ƒ j ƒ  } |   } | j d ƒ | d  k sp t ‚ | j d ƒ | j d ƒ | d  k sœ t ‚ | j d ƒ | d d !k s¾ t ‚ | j d d ƒ | j ƒ  | d k sê t ‚ Wd  QXd  S(   Ns   http://localhost:8999/i    R%   i
   i   iöÿÿÿi   (	   R   R    R   R   R   R   R&   R'   R,   (   R$   R3   R(   R   R    R)   (    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt   test_opsM   s    
$	"c         C   sü   d } t  d } t | | d d ƒd } t t j j |  | ƒ d ƒ j ƒ  } | : } | j ƒ  | k so t ‚ | j t	 | ƒ k sŠ t ‚ Wd  QXt  d } t | | d d ƒd } | < } t
 j t ƒ $ | j d ƒ | d  k sì t ‚ Wd  QXWd  QXd  S(   Ns   http://localhost:8999/i    R3   i   R%   i   i
   (   R   R    R   R   R   R   R&   R'   t   sizet   lent   pytestt   raisest
   ValueError(   R$   R(   R   R    R)   (    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt   test_ops_blocksize]   s    
$	!
	c         C   s!  t  d ƒ d } t j t j j ƒ  |  } | j ƒ  Wd  QXWd  QXt  d ƒ d } t j t j j ƒ  |  } | j ƒ  Wd  QXWd  QXd } t d } t  | | d d ƒd } t j t ƒ  |  Wd  QXWd  QXt  | | ƒ d } | * } t j t	 ƒ  | j
 d ƒ Wd  QXWd  QXd  S(   Ns"   http://localhost:8999/doesnotexisti    s   http://nohost/s   http://localhost:8999/t   modeR   iÿÿÿÿ(   R    R7   R8   R   R   t   RequestExceptionR&   R   t   NotImplementedErrorR9   R,   (   R$   R    R(   R   (    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt   test_errorsr   s$    		
	c      
   C   s’   d } t  g  t D] } | | ^ q ƒ } xb t | t ƒ D]Q \ } } | = } | j ƒ  t t j j |  | ƒ d ƒ j ƒ  k s„ t ‚ Wd  QXq9 Wd  S(   Ns   http://localhost:8999/R%   (	   R    R   t   zipR&   R   R   R   R   R'   (   R$   R(   R    t   fst   f2(    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt
   test_files‡   s
    #	c         C   sL   d } t  | d ƒ } | d j d k s/ t ‚ | d j d k sH t ‚ d  S(   Ns   http://localhost:8999/s   /*i    s   http://localhost:8999/ai   s   http://localhost:8999/b(   R    R   R'   (   R$   R(   R@   (    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt   test_open_glob   s    c          C   s¾   d d l  m }  |  t j ƒ |  d ƒ k  r8 t j ƒ  n  t j d ƒ } t j d ƒ | j d g ƒ j ƒ  } | j	 j
 ƒ  t t d ƒ ƒ k s“ t ‚ | j j
 ƒ  d d	 d
 d g k sº t ‚ d  S(   Niÿÿÿÿ(   t   LooseVersions   2.21.0s   dask.dataframet   fastparquetst   https://github.com/Parquet/parquet-compatibility/raw/master/parquet-testdata/impala/1.1.1-NONE/nation.impala.parqueti   t   n_nationkeyt   n_namet   n_regionkeyt	   n_comment(   t   distutils.versionRD   R   t   __version__R7   t   skipt   importorskipt   read_parquett   computeRF   t   tolistt   listt   rangeR'   t   columns(   RD   t   ddt   df(    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt   test_parquet–   s    't   reasons(   https://github.com/dask/dask/issues/3696c          C   sM   t  j d ƒ }  d d g } |  j | ƒ } | j d k s? t ‚ | j ƒ  d  S(   Ns   dask.bagsr   https://raw.githubusercontent.com/weierophinney/pastebin/master/public/js-src/dojox/data/tests/stores/patterns.csvs   https://en.wikipedia.orgi   (   R7   RM   t	   read_textt   npartitionsR'   RO   (   t   dbt   urlsR   (    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt   test_bag¦   s    	(   R   R7   R   R   R   t   dask.bytes.coreR    t   dask.compatibilityR   t
   dask.utilsR   R   RM   R   t   fixtureR$   R*   R.   R2   t   markt   parametrizet   NoneR4   R:   R>   RB   RC   t   networkRV   t   xfailR\   (    (    (    s9   lib/python2.7/site-packages/dask/bytes/tests/test_http.pyt   <module>   s*   				$				