3
XdS                 @   s   d dl Z d dlmZ d dlmZ ddlmZmZmZm	Z	 ddlm
Z
mZmZmZmZmZmZmZ dd	 Zd
d Ze jje pee edk dddd Ze jje dddd Ze jje dddd Zedkre  e  e  e  dS )    N)Version)
namedtuple   )traitsFileTraitedSpecBaseInterfaceInputSpec   )convert_to_traits_typecreate_interface_specsdipy_to_nipype_interfaceDipyBaseInterfaceno_dipyget_dipy_workflowsget_default_argsdipy_versionc              C   s  t dd} t dd}| dd| dd| dd| d	d| d
d| dd| dd| dd| dd| dd| dd| dd| dd| dd| dd| dd| dd| dd| dd| dd| dd| ddg}|tjd|tjd|tjd|tjd|tjd|tjd|tjd|tjd|tjd|tjd|tjd|tjd|t	d|tj
d|tjd|tjd|tjd|tjd|t	d|tj
d|tjd|tjdg}xJt||D ]<\}}t|j|j\}}||jkst||jkstqW tjt td W d Q R X d S )NParamsztraits_type is_fileResztraits_type is_mandatoryzvariable stringFzvariable intzvariable floatzvariable boolzvariable complexzvariable int, optionalzvariable string, optionalzvariable float, optionalzvariable bool, optionalzvariable complex, optionalstringintTfloatboolcomplexzstring, optionalzint, optionalzfloat, optionalzbool, optionalzcomplex, optionalzfile, optional)r   r   ZListStrZListIntZ	ListFloatZListBoolZListComplexStrZIntr   ZFloatZBoolComplexzipr
   traits_typeis_fileAssertionErroris_mandatorypytestraisesIOError)r   r   Z	l_entriesZ
l_expectedentryresr   r    r%   X/var/www/html/virt/lib/python3.6/site-packages/nipype/interfaces/dipy/tests/test_base.pytest_convert_to_traits_type   sj    




















r'   c              C   sZ  t d} | jtkstt|  ts&t| jdks4t|  j  sDtt dtd} | jtks^tt|  tsnt| jdks|t|  j  stdddgfdddgfdd	d
gfdddgfg}t d|td} | jtkstt|  tst| jdkst|  j }t|dkstd|j	 ks td|j	 ks2td|j	 ksDtd|j	 ksVtd S )NZMyInterface)	BaseClassZparams1r   zmy descriptionZparams2_fileszmy description @Zparams3zint, optionalzuseful optionZ
out_paramszmy out description)paramsr(      )
r   __base__r   r   
isinstance__name__getr   lenkeys)Znew_interfacer)   Zcurrent_paramsr%   r%   r&   test_create_interface_specsP   s4    




r1   z1.4zDIPY >=1.4 required)reasonc              C   s   ddl m}  ddd}| dd dd	d
dddd}| ddgd dd
dddd}| ddgd dd	d
dddd}ddd}x$||||gD ]}t||kstqW d S )Nr   )deprecated_params   r   c             S   s   | |fS )Nr%   )dummyxr%   r%   r&   test|   s    z#test_get_default_args.<locals>.testr6   z0.3z0.5ztest2.y)alternativec             S   s   | |fS )Nr%   )r5   r6   r%   r%   r&   test2   s    z$test_get_default_args.<locals>.test2r5   c             S   s   | |fS )Nr%   )r5   r6   r%   r%   r&   test3   s    z$test_get_default_args.<locals>.test3c             S   s   | |fS )Nr%   )r5   r6   r%   r%   r&   test4   s    z$test_get_default_args.<locals>.test4)r5   r6   )r4   r   )r4   r   )r4   r   )r4   r   )Zdipy.utils.deprecatorr3   r   r   )r3   r7   r9   r:   r;   Zexpected_resfuncr%   r%   r&   test_get_default_argsv   s    

r=   zDIPY is not installedc           	   C   s@  ddl m}  G dd d| }td|}|jtks4tt| tsDt|jdksRtt|ds`t| j	jt
ksrtt|dst| jjtkstt|dstt|d	st| jj }| j j }t|d
kstd|j kstd|j kstd|j ks
td|j ksttjt | j  W d Q R X d S )Nr   )Workflowc               @   s"   e Zd Zedd Zd	ddZdS )
z4test_dipy_to_nipype_interface.<locals>.DummyWorkflowc             S   s   dS )NZdwf1r%   )clsr%   r%   r&   get_short_name   s    zCtest_dipy_to_nipype_interface.<locals>.DummyWorkflow.get_short_name    out1.txtc             S   s   |S )a  Workflow used to test basic workflows.

            Parameters
            ----------
            in_files : string
                fake input string param
            param1 : int, optional
                fake positional param (default 1)
            out_dir : string, optional
                fake output directory (default '')
            out_ref : string, optional
                fake out file (default out1.txt)

            References
            -----------
            dummy references

            r%   )selfin_filesparam1out_dirout_refr%   r%   r&   run   s    z8test_dipy_to_nipype_interface.<locals>.DummyWorkflow.runN)rA   rB   rC   )r-   
__module____qualname__classmethodr@   rI   r%   r%   r%   r&   DummyWorkflow   s   rM   ZMyModelSpec
input_specoutput_specZ_run_interfaceZ_list_outputsr*   rE   rF   rG   rH   )Zdipy.workflows.workflowr>   r   r+   r   r   r,   r-   hasattrrN   r   rO   r   inputsr.   Z_outputsr/   r0   r    r!   
ValueErrorrI   )r>   rM   Z	new_specsZ	params_inZ
params_outr%   r%   r&   test_dipy_to_nipype_interface   s*    
rS   c              C   sH   ddl m}  t| }x.|D ]&\}}|jds0tt|| jstqW d S )Nr   )alignZFlow)Zdipy.workflowsrT   r   endswithr   
issubclassr>   )rT   Zl_wkflwnameobjr%   r%   r&   test_get_dipy_workflows   s
    rY   __main__)r    Zpackaging.versionr   collectionsr   baser   r   r   r   r
   r   r   r   r   r   r   r   r'   r1   markZskipifr=   rS   rY   r-   r%   r%   r%   r&   <module>   s   (?&&4
