U
    /e                     @   sr   d dl Z d dlZd dlZd dlZd dlmZmZmZmZ dd Z	dd Z
dd Zejd	d
dd Zdd ZdS )    N)infer_storage_options
read_blockseek_delimiterstringify_pathc                     sZ  d} |  dddg}t| t dddks2tt dddd	d
ksJtt dddd	d
ksbtt dddd	d
ksztt dddd	dkstt dddd	dkstt dddd	dkstt dddd	dkstt dddd	dkstt dddd	dkstddddgdddgfD ]2} fdd|D }d td ||ks"tq"d S )N   
s   123s   456s   789      s   23r   )	delimiters   123
      s   123
456
      123
456
789d       s   456
s   456
789)r   r
   )r
   r
   )   r
   )	   r   )r      )r   r   )r   r   c                    s   g | ]\}}t  ||d qS )r   )r   ).0olf E/tmp/pip-unpacked-wheel-dbjnr7gq/dask/bytes/tests/test_bytes_utils.py
<listcomp>   s     z#test_read_block.<locals>.<listcomp>)joinioBytesIOr   AssertionErrorfilter)r	   dataZolsoutr   r   r   test_read_block   s     
r"   c                  C   s   t d} t| dd |  dks&tdD ],}| d t| d|d |  dks*tq*t d	} d
D ],}| d t| d|d |  dksftqft d} | d t| dd |  dkstd S )Nr   r   r   r   )r   r   r   r   )	blocksizer   s   123abc456abc789)r   r   r
   r   r   r   
   s   abcr   s   123
456   )r   r   r   tellr   seek)r   bsr   r   r   test_seek_delimiter_endline#   s     





r)   c               	   C   sp  t d} | ddkst| ddks,t| r4tt dd dksHtt dd dks\tt d} | ddksvt| ddkst| rtt dd dkstt d	d d	kstt d
d d
kstt dd dkstt dddid} | ddkst| ddkst| ddks,t| ddks@t| ddksTt| ddksht| ddks|t| ddkst| ddkst| rtt d} | ddkst| ddkstd }t |d!|d"kstd#D ]$}t d$| }|d d%kstqtt t d&dd'i W 5 Q R X tt t d(dd'i W 5 Q R X d S ))Nz/mnt/datasets/test.csvprotocolfilepathz
./test.csvz../test.csvzC:\test.csvzd:\test.csvz	\test.csvz
.\test.csvztest.csvz<hdfs://username:pwd@Node:123/mnt/datasets/test.csv?q=1#fragmextravalue)Zinherit_storage_optionsZhdfsusernamepasswordpwdhostNodeport{   z/mnt/datasets/test.csv#fragmZ	url_queryzq=1Zurl_fragmentZfragmz4hdfs://User-name@Node-name.com/mnt/datasets/test.csvz	User-namezNode-name.comzhttp://127.0.0.1:8080/test.csvhttp)r*   r,   )Zs3ZgcsZgsz%s://Bucket-name.com/test.csvzBucket-name.com/test.csvzfile:///bucket/file.csvZcollidezhdfs:///bucket/file.csv)r   popr   pytestZraisesKeyError)sour*   optionsr   r   r   test_infer_storage_options>   sP    
r=   zurlpath, expected_path))
c:\foo\barr>   )C:\\foo\barr?   )
c:/foo/barr@   )zfile:///c|\foo\barr>   )zfile:///C|/foo/bar
C:/foo/bar)zfile:///C:/foo/barrA   c                 C   s,   t | }|d dkst|d |ks(td S )Nr*   r+   r,   )r   r   )ZurlpathZexpected_pathr:   r   r   r   test_infer_storage_options_cu   s    rB   c                  C   sh   t jddd} t| }t|| ks*tG dd d}|| }t|| ksPtd}t||ksdtd S )Nr,   tozfile.txtc                   @   s    e Zd ZdZdd Zdd ZdS )z)test_stringify_path.<locals>.CustomFSPathz%For testing fspath on unknown objectsc                 S   s
   || _ d S Nr,   )selfr,   r   r   r   __init__   s    z2test_stringify_path.<locals>.CustomFSPath.__init__c                 S   s   | j S rD   rE   )rF   r   r   r   
__fspath__   s    z4test_stringify_path.<locals>.CustomFSPath.__fspath__N)__name__
__module____qualname____doc__rG   rH   r   r   r   r   CustomFSPath   s   rM   )r   r   r
   )osr,   r   pathlibPathr   r   )Ztest_filepathr,   rM   r   r   r   test_stringify_path   s    
	rQ   )r   rN   rO   r8   Zfsspec.utilsr   r   r   r   r"   r)   r=   markZparametrizerB   rQ   r   r   r   r   <module>   s   7
