U
    /e                     @   s   d dl Z d dlZd dlZd dlmZ edZdd edD Z	dddd	d
dddddgdZ
dd Zdd Zdd Zdd Zejddddgdd Zdd ZdS )     Nfastavroc                 C   s,   g | ]$}t d dddgt dddqS )ZfredZwilmaZbarneyZbettyr   d   )namenumber)randomchoicerandint).0_ r   </tmp/pip-unpacked-wheel-dbjnr7gq/dask/bag/tests/test_avro.py
<listcomp>
   s   
r     ZDescrRandomtestrecordr   stringr   typer   int)docr   	namespacer   fieldsc              	   C   sl   t | } tj| d}t|d}tj|ttd W 5 Q R X t	j
|d d}|jdksXt| tkshtd S )None.avrowbrecordsschema	blocksize   strospathjoinopenr   writerexpectedr   db	read_avronpartitionsAssertionErrorcompute)tmpdirfnfbr   r   r   test_onefile_oneblock   s    r2   c              	   C   s   t | } tj| d}tj| d}t|d}tj|td d td W 5 Q R X t|d}tj|tdd  td W 5 Q R X t	j
tj| dd d}|jdkst| tkstd S )	Nr   two.avror     r   *.avror      r!   r.   Zfn1Zfn2r0   r1   r   r   r   test_twofile_oneblock$   s    ""r8   c              	   C   s   t | } tj| d}tj| d}t|d }tj|td d tdd W 5 Q R X t|d }tj|tdd  tdd W 5 Q R X t	j
tj| dd d}|jd	kst| tkstt	j
tj| dd
d}|jd	kst| tkstd S )Nr   r3   r   r4   r   )r   r   Zsync_intervalr5   r   r6   r   r!   r7   r   r   r   test_twofile_multiblock1   s    $$r9   c                 C   s   ddl m} t| } tj| d}tjdd dD dd}d	d
dddgd}|j||dd}t	|d |spt
|||}t|dkst
t|}| | kst
d S )Nr   )Delayed	out*.avroc                 S   s   g | ]}d |iqS )ar   )r	   ir   r   r   r   G   s     z)test_roundtrip_simple.<locals>.<listcomp>)r    r6            r6   r+   ZTestr   r<   r   r   r   r   r   F)r-   )Zdask.delayedr:   r"   r#   r$   r%   r)   from_sequenceto_avro
isinstancer,   lenr*   r-   )r.   r:   r/   r1   r   outb2r   r   r   test_roundtrip_simpleB   s    

rI   codecnulldeflatesnappyc                 C   sh   t | } |dkrtd tj| d}tjtdd}|j	|t
|d t|}| | ksdtd S )NrM   r;   r>   rA   )r   rJ   )r"   pytestimportorskipr#   r$   r%   r)   rC   r(   rD   r   r*   r-   r,   )r.   rJ   r/   r1   rH   r   r   r   test_roundtripU   s    

rP   c              	   C   sp  t | } tjtdd}tj| d}tt	 |j
|g d W 5 Q R X tt	 |j
|i d W 5 Q R X tt	 |j
|ddid W 5 Q R X tt	 |j
|ddid W 5 Q R X tt	 |j
|dd	d
d W 5 Q R X tt	 |j
|ddd
d W 5 Q R X tt	 |j
|ddd
d W 5 Q R X tt	" |j
|ddddigdd W 5 Q R X d S )Nr>   rA   r;   )r   r   unknownr   r   Zwrongr   r   r<   rB   )r"   r)   rC   r(   r#   r$   r%   rN   Zraisesr,   rD   )r.   r1   r/   r   r   r   test_invalid_schemaa   s,     rR   )r#   r   rN   Zdask.bagZbagr)   rO   r   ranger(   r   r2   r8   r9   rI   markZparametrizerP   rR   r   r   r   r   <module>   s(   
	

