B
    !DX                 @   sv   d dl Z d dlZd dlmZmZmZmZmZ d dlmZ d dl	m	Z	 dgZ
edd Zdd	 Ze	d
d Zdd ZdS )    N)curryidentity	keyfilter	valfilter
merge_with)raises)dev_skip_testget_inc             C   s*   t |ddpd}|| p(dtt|kS )N
__module__ ztoolz.functoolz.curry)getattr
startswithstrtype)modnamefuncmod r   <lib/python3.7/site-packages/cytoolz/tests/test_docstrings.py	isfrommod   s    r   c             C   sP   t | dr| j} | dd} | dd} | dd} | dd	} | d
d} | S )z- Convert docstring from `toolz` to `cytoolz`.__doc__toolzcytoolzZdictcytoolzZ	dicttoolzZfunccytoolzZ	functoolzZitercytoolzZ	itertoolzzcytoolz.readthedocsztoolz.readthedocs)hasattrr   replace)docr   r   r   
convertdoc   s    
r   c        
         s8  dd l } t }ttd| jttdtj tdd t fddtfdd  tt	 }x|
 D ]\\}}t|}|j}||krxt|| | }t|}x |r|d dr|d qW x|r|d	 dr|  qW fd
d}	tt|	|rxdsxtdd|f qxW d S )Nr   r   r   c             S   s   t | ddS )Nr   r   )r   )xr   r   r   <lambda>+   s    z*test_docstrings_uptodate.<locals>.<lambda>c                s   |  kS )Nr   )r   )cytoolz_dictr   r   r   .   s    c                s   |  kS )Nr   )r   )
toolz_dictr   r   r   /   s    +c                s   |  dod| ko tk S )Nr!   z# doctest: +SKIP)r   skipped_doctests)line)keyr   r   checkbadA   s    
z*test_docstrings_uptodate.<locals>.checkbadFz*Error: cytoolz.%s has a bad docstring:
%s

)r   difflibZDifferr   r   __dict__r   r   r   r   itemsr   r   listZcompare
splitlinesr   popanymapAssertionErrorjoin)
r   ZdifferdZ
toolz_funcZcytoolz_funcZ	toolz_docZcytoolz_docZdiffZfulldiffr&   r   )r   r%   r    r   test_docstrings_uptodate!   s.    r3   c               C   s   t tdd  d S )Nc               S   s   t jdgi ddS )NyT)Z
no_default)r   r	   r   r   r   r   r   U   s    z%test_get_in_doctest.<locals>.<lambda>)r   KeyErrorr   r   r   r   test_get_in_doctestK   s    
r6   )r(   r   r   r   r   r   r   Zcytoolz.utilsr   r   r#   r   r   r3   r6   r   r   r   r   <module>   s   *