3
XédC)  ã               @   sB   d Z ddlmZ ddlmZmZmZ G dd„ dejƒZ	dd„ Z
d	S )
z6Check the resolving/rebasing feature of ``BasePath``s.é   )Úbaseé   )Úrebase_path_traitsÚresolve_path_traitsÚPathc               @   sð   e Zd Zejƒ Zejjejƒ ejƒ ƒZejj	ejƒ ƒZ
ejjejƒ ejjƒ ƒZejejƒ ƒZejejƒZejjejejƒ ƒZejjejejƒZejZejjejejjejejjƒƒZejjejejjejejjƒejjejejƒ ƒƒZejZdS )Ú
_test_specN)Ú__name__Ú
__module__Ú__qualname__ÚnibÚFileÚaZtraitsÚTupleÚbÚListÚcZEitherZFloatÚdZOutputMultiObjectÚeÚStrÚeeÚDictÚfÚgÚhZIntÚiÚjZ
DictStrStrÚk© r   r   úd/var/www/html/virt/lib/python3.6/site-packages/nipype/interfaces/base/tests/test_traits_extension.pyr      s    r   c              C   s”  t ƒ } d}t| jdƒ|dƒ}|tdƒks,t‚t| jdƒ|dƒ|ksFt‚t| jdƒ|dƒ}|t|ƒksht‚t| jdƒ|dƒ|ks‚t‚t| jdƒ|dƒ}|t|ƒks¤t‚t| jdƒ|dƒ|ks¾t‚t| jdƒ|dƒ}|t|ƒksàt‚t| jdƒ|dƒ|ksút‚d/}t| jdƒ|dƒ}|tdƒtdƒfks*t‚t| jdƒ|dƒ|ksFt‚t| jdƒ|dƒ}|t|d	 ƒt|d
 ƒfkszt‚t| jdƒ|dƒ|ks–t‚dddg}t| jdƒ|dƒ}|tdƒtdƒtdƒgksÒt‚t| jdƒ|dƒ|ksît‚t| jdƒ|dƒ}|dd„ |D ƒkst‚t| jdƒ|dƒ|ks4t‚d}t| jdƒ|dƒ}||ksXt‚t| jdƒ|dƒ}||ksxt‚d}t| jdƒ|dƒ}|tdƒks t‚t| jdƒ|dƒ|ks¼t‚t| jdƒ|dƒ}|t|ƒksàt‚t| jdƒ|dƒ|ksüt‚dddg}t| jdƒ|dƒ}|tdƒtdƒtdƒgks8t‚t| jdƒ|dƒ|ksTt‚t| jdƒ|dƒ}|dd„ |D ƒks~t‚t| jdƒ|dƒ|ksšt‚ddgdggg}t| jdƒ|dƒ}|tdƒtdƒgtdƒgggksât‚t| jdƒ|dƒ|ksþt‚t| jdƒ|dƒ}|dd„ |D ƒks(t‚t| jdƒ|dƒ|ksDt‚ddgdggg}t| jdƒ|dƒ}||kstt‚t| jdƒ|dƒ|kst‚t| jdƒddgdgggdƒ}|ddgdgggksÈt‚t| jdƒ|dƒ|ksät‚ddi}t| jdƒ|dƒ}|dtdƒikst‚t| jdƒ|dƒ|ks0t‚t| jdƒ|dƒ}|dd„ |jƒ D ƒks^t‚t| jdƒ|dƒ|kszt‚d}t| jdƒ|dƒ}	|	tdƒks¢t‚t| jdƒ|	dƒ|	ks¾t‚t| jdƒ|	dƒ}	|	t|ƒksât‚t| jdƒ|	dƒ|	ksþt‚t| jdƒ|dƒ}	|	tdƒks"t‚t| jdƒ|	dƒ|	ks>t‚t| jdƒ|	dƒ}	|	t|ƒksbt‚t| jdƒ|	dƒ|	ks~t‚d}t| jdƒ|dƒ}	|	|ks¢t‚t| jdƒ|	dƒ|	ks¾t‚t| jdƒ|	dƒ}	|	|ksÞt‚t| jdƒ|	dƒ|	ksút‚d }t| jdƒ|dƒ}	|	|kst‚t| jdƒ|	dƒ|	ks:t‚t| jdƒ|dƒ}	|	|ksZt‚t| jdƒ|	dƒ|	ksvt‚t| jdƒ|dƒ}	|	|ks–t‚t| jdƒ|	dƒ|	ks²t‚t| jdƒ|	dƒ}	|	|ksÒt‚t| jdƒ|	dƒ|	ksît‚t| jd!ƒ|dƒ}
|
|kst‚t| jd!ƒ|
dƒ|
ks*t‚t| jd!ƒ|
dƒ}
|
|ksJt‚t| jd!ƒ|
dƒ|
ksft‚d"}t| jd#ƒ|dƒ}|td$ƒksŽt‚t| jd#ƒ|dƒ|ksªt‚t| jd#ƒ|dƒ}|t|ƒksÎt‚t| jd#ƒ|dƒ|ksêt‚d0}t| jd#ƒ|dƒ}|td'ƒd&fk	st‚t| jd#ƒ|dƒ|k	s2t‚t| jd#ƒ|dƒ}|t|d	 ƒ|d
 fk	sbt‚t| jd#ƒ|dƒ|k	s~t‚d"}t| jd(ƒ|dƒ}|td$ƒk	s¦t‚t| jd(ƒ|dƒ|k	sÂt‚t| jd(ƒ|dƒ}|t|ƒk	sæt‚t| jd(ƒ|dƒ|k
st‚d1}t| jd(ƒd2dƒ}|td'ƒd&fk
s.t‚t| jd(ƒ|dƒ|k
sJt‚t| jd(ƒ|dƒ}|t|d	 ƒ|d
 fk
szt‚t| jd(ƒ|dƒ|k
s–t‚dd)i}t| jd(ƒ|dƒ}|dtd*ƒik
sÆt‚t| jd(ƒ|dƒ|k
sât‚t| jd(ƒ|dƒ}|d+d„ |jƒ D ƒkst‚t| jd(ƒ|dƒ|ks,t‚d,di}t| jd-ƒ|dƒ}||ksTt‚t| jd-ƒ|dƒ|kspt‚t| jd-ƒ|dƒ}||kst‚d.S )3zACheck rebase_path_traits and resolve_path_traits and idempotence.ú/some/path/f1.txtr   z
/some/pathzf1.txtz/some/other/pathú/some/path/f2.txtr   zf2.txté    é   z/some/path/f3.txtr   zf3.txtc             S   s   g | ]}t |ƒ‘qS r   )r   )Ú.0Úvpr   r   r   ú
<listcomp>M   s    z3test_rebase_resolve_path_traits.<locals>.<listcomp>g       @r   z/some/path/either.txtz
either.txtr   c             S   s   g | ]}t |ƒ‘qS r   )r   )r#   r$   r   r   r   r%   n   s    c             S   s   g | ]}d d„ |D ƒ‘qS )c             S   s,   g | ]$}t |tƒr d d„ |D ƒnt|ƒ‘qS )c             S   s   g | ]}t |ƒ‘qS r   )r   )r#   Zvppr   r   r   r%   }   s    zItest_rebase_resolve_path_traits.<locals>.<listcomp>.<listcomp>.<listcomp>)Ú
isinstanceÚlistr   )r#   r$   r   r   r   r%   }   s   z>test_rebase_resolve_path_traits.<locals>.<listcomp>.<listcomp>r   )r#   Úinnerr   r   r   r%   |   s   r   Ú1r   z/somezpath/f1.txtc             S   s   i | ]\}}t |ƒ|“qS r   )r   )r#   r   Úvalr   r   r   ú
<dictcomp>ž   s    z3test_rebase_resolve_path_traits.<locals>.<dictcomp>r   zpath/either.txtÚstringr   z/some/path/either/file.txtr   zeither/file.txtú /some/path/either/tuple/file.txtr   zeither/tuple/file.txtr   z/some/path/either/dict/file.txtzeither/dict/file.txtc             S   s   i | ]\}}t |ƒ|“qS r   )r   )r#   r   r*   r   r   r   r+   5  s    Úpathr   N)r   r    )r-   r   )r-   r   )r-   r   )r   r   Ztraitr   ÚAssertionErrorr   Úitems)ÚspecÚvr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Útest_rebase_resolve_path_traits   s0   "
 
 &r3   N)Ú__doc__Ú r   r   Ztraits_extensionr   r   r   ZTraitedSpecr   r3   r   r   r   r   Ú<module>   s   