3
rd,  ใ               @   s  d dl Z d dlmZ d dlmZ d dljZd dlZd dl	m
Z
 ddlmZ d dlmZ d dlmZ ejejeZe
ejejejed	d
Zde_e je je je je jdZe je je je je jdZejjdjed Zejed Z e j!ed Z"e j#ed Z$e j%ed Z&edd Z'edd Z(edd Z)edd Z*edd Z+edd Z,edd  Z-ed!d" Z.ed#d$ Z/ed%d& Z0ed'd( Z1ed)d* Z2ed+d, Z3ed-d. Z4ed/d0 Z5d1d2 Z6d3d4 Z7ed5d6 Z8ed7d8 Z9ed9d: Z:ed;d< Z;ed=d> Z<ed?d@ Z=edAdB Z>edCdD Z?edEdF Z@edGdH ZAedIdJ ZBedKdL ZCdS )M้    N)ฺuuid1)ฺstring_types)ฺ	Interface้   )ฺskip_if_no_network)ฺSkipTest)ฺ
interfaceszcentral.cfg)ฺconfigT)ฺsidฺeidฺaidฺcidฺridฺ
nosetests5r
   r   r   r   r   c               C   s&   t j  stt j  t j s"td S )N)ฺsubj_1ฺexistsฺAssertionErrorฺcreateฉ r   r   ๚=/tmp/pip-build-7vycvbft/pyxnat/pyxnat/tests/resources_test.pyฺtest_01_subject_create(   s    r   c               C   s6   t j  stt j  t j s"tt jdddd d S )NTF)Z	fix_typesZ	pipelinesZscan_headers)ฺexpe_1r   r   r   Ztriggerr   r   r   r   ฺtest_02_experiment_create/   s    r   c               C   s&   t j  stt j  t j s"td S )N)ฺasse_1r   r   r   r   r   r   r   ฺtest_03_assessor_create7   s    r   c               C   s&   t j  stt j  t j s"td S )N)ฺscan_1r   r   r   r   r   r   r   ฺtest_04_scan_create>   s    r   c               C   s&   t j  stt j  t j s"td S )N)ฺreco_1r   r   r   r   r   r   r   ฺtest_05_reconstruction_createE   s    r   c              C   s   t jdt } t jdt }| j  s*t| jddd | j sDt| j dksTt|j dksdtt jdt j }|j dkstd S )NzK/projects/nosetests5/subjects/%(sid)s/experiments/%(eid)s/assessors/%(aid)sz9/projects/nosetests5/subjects/%(sid)s/experiments/%(eid)szxnat:petSessionDatazxnat:petAssessorData)ฺexperimentsZ	assessorszG/projects/nosetests5/subjects/%(sid)s/experiments/%(eid)s/scans/%(cid)szxnat:mrScanData)ฺcentralฺselectฺ_id_set2r   r   r   ฺdatatype)Zasse_2Zexpe_2Zscan_2r   r   r   ฺtest_06_multi_createP   s    r$   c              C   sp   t jtd} tjdjd}tjdjdj|  tjdj| g |j sPtt	|j
 tj| jksltd S )Nzhello_xnat.txtฺtestz	hello.txt)ฺopฺjoinฺ_modulepathr   ฺresourceฺfileฺputr   r   ฺintฺsizeฺosฺstatฺst_size)ฺ
local_pathฺfr   r   r   ฺtest_07_put_fileh   s    r3   c              C   sส   t jdjd} | j }tj|s&ttdt|dj	 g y(t|dj	 t
dtj ddksbtW n tk
rx   Y nX tjtj t j}| j| tj|sฒtd||f tj| tj| d S )	Nr%   z	hello.txtZtoto3ฺrbzHello XNAT!%sฺutf8)ฺencodingzfpath: %s custom: %s)r   r)   r*   ฺgetr&   r   r   ฺprintฺopenฺreadฺbytesr.   ฺlinesepฺ	TypeErrorr'   ฺtempfileฺ
gettempdirr   ฺhexฺremove)ฺfhฺfpathฺcustomr   r   r   ฺtest_08_get_filer   s    

rE   c              C   sf   t jtd} tjdjdj|  tjdjdj s:tt	tjdjdj
 tj| jksbtd S )Nzhello_again.txtr%   zdir/hello.txt)r&   r'   r(   r   r)   r*   r+   r   r   r,   r-   r.   r/   r0   )r1   r   r   r   ฺtest_09_put_dir_file   s
    rF   c              C   sด   t jdjd} | j }tj|s&ty(t|dj t	dt
j ddksLtW n tk
rb   Y nX tjtj t j}| j| tj|std||f t
j| t
j| d S )Nr%   zdir/hello.txtr4   zHello again!%sr5   )r6   zfpath: %s custom: %s)r   r)   r*   r7   r&   r   r   r9   r:   r;   r.   r<   r=   r'   r>   r?   r   r@   rA   )rB   rC   rD   r   r   r   ฺtest_10_get_dir_file   s    

rG   c              C   s   t jtj t j} tjdjdj	| } t j
| s8tt| d}y"|j tdtj ddksbtW n tk
rx   Y nX |j  tj|  d S )Nr%   z	hello.txtr4   zHello XNAT!%sr5   )r6   )r&   r'   r>   r?   r   r@   r   r)   r*   Zget_copyr   r   r9   r:   r;   r.   r<   r=   ฺcloserA   )rC   ฺfdr   r   r   ฺtest_11_get_copy_fileค   s    
rJ   c              C   sp   t jdjd} t| j ts"tt| j dks6t| j  | j	  sLtt jd}|j  |j	  sltd S )Nr%   z	hello.txtr   )
r   r)   r*   ฺ
isinstanceฺlast_modifiedr   r   ฺlenฺdeleter   )r2   ฺrr   r   r   ฺtest_12_file_last_modifiedณ   s    
rP   c              C   s^   t j } tjdj |  }t jjdd t jjddks<ttjdj |  }||ksZtd S )Nz/project/nosetests5ZageZ26)	r   ฺidr    r!   rL   ฺattrsฺsetr7   r   )r
   ฺt1ฺt2r   r   r   ฺtest_13_last_modifiedฟ   s    rV   c              C   sV   t jj } | j j | d j ks&t| j }t| t|j | d j ksRtd S )Nr   r   )r    r!   ฺprojectsฺfirstrQ   r   ฺ__iter__ฺnext)rW   ฺpiterr   r   r   ฺtest_14_getitem_keyห   s
    
r\   c              C   s   t jj } | j j t| d d j ks.t| j }t| t| t| x,| dd D ]}t|j |j ks\tq\W d S )Nr   ้   ้   )r    r!   rW   rX   rQ   rZ   r   rY   )rW   r[   Zpobjr   r   r   ฺtest_15_getitem_sliceิ   s    
$r_   c              C   s$   t jjd} tj j| jks td S )Nr   )r    r!   ฺprojectr   ฺparentZ_urir   )r`   r   r   r   ฺtest_subject1_parentเ   s    rb   c              C   s   t jjd} | j  std S )Nr   )r    r!   r`   ra   r   )r`   r   r   r   ฺtest_project_parentๅ   s    rc   c              C   s๘   t jd} t j }ddlm} y,| j dks0t| j dksHt| j W n, |k
rv   |d dkrrd}t|Y nX |d dkrยy| j	 dkstW n( |k
rภ   d	|d  }t
| Y nX d
| j ksาtd
| j ksโt| jd
dks๔td S )Nz/project/nosetests5r   )ฺDatabaseError้   ฺversionz1.7.5.2-SNAPSHOTzWVersion 1.7.5.2-SNAPSHOT gives trouble on some machines.                    Skipping its   arc001z5Check if current_arc is supported in XNAT version %s.ฺ	nosetestsฺowner)r    r!   rf   Zpyxnat.core.errorsrd   Zquarantine_coder   Zprearchive_coder   Zcurrent_arcr8   ZusersZownersZ	user_role)r`   rf   rd   ฺmsgr   r   r   ฺtest_16_project_configuration๊   s(    

rj   c              C   s   t jtd} t j| sttjd}|j| dd |j s>t|jdj sPt|jdj sbttjd}|j| dd |j st|jdj std S )	Nzhello_dir.zipฺtest_zip_extractT)ฺextractzhello_dir/hello_xnat_dir.txtz(hello_dir/hello_dir2/hello_xnat_dir2.txtZtest_zip_no_extractF)	r&   r'   r(   r   r   r   r)   Zput_zipr*   )r1   Zr1Zr2r   r   r   ฺtest_17_put_zip  s    

rm   c                 sข   t jd} tjtd| j   ddddg} fdd|D }tj sPtj  | j	 d	d
 x|D ]}tj|sdt
qdW | j	 dd
 tjtj dst
d S )Nrk   Ztest_zip_downloadztest_zip_extract/hello_dirz-test_zip_extract/hello_dir/hello_xnat_dir.txtz%test_zip_extract/hello_dir/hello_dir2z9test_zip_extract/hello_dir/hello_dir2/hello_xnat_dir2.txtc                s   g | ]}t j |qS r   )r&   r'   )ฺ.0ฺe)ฺ	local_dirr   r   ๚
<listcomp>!  s    z#test_18_get_zip.<locals>.<listcomp>T)rl   Fztest_zip_extract.zip)r   r)   r&   r'   r(   rQ   r   r.   ฺmkdirr7   r   ฺisfile)rO   ฺ	file_listr2   r   )rp   r   ฺtest_18_get_zip  s    



ru   c              C   s    t jd} | j dgkstd S )Nz/project/nosetests5Znosetests52)r    r!   ฺaliasesr   )r`   r   r   r   ฺtest_19_project_aliases-  s    
rw   c              C   s*   t jjd} | j  | j  | jd d S )Nr   ฺnose)r    r!   r`   r#   r   ฺ
experiment)r`   r   r   r   ฺtest_20_project3  s    rz   c              C   s$   t jjd} | j }|dks td S )Nr   rg   )r    r!   r`   ฺdescriptionr   )r`   ฺdescr   r   r   ฺtest_21_project_description;  s    r}   c              C   s~   t jjd} | jtd }|j  s(ttj j	 dgks>ttj
d | jtd }|j sbttj j	 ddgksztd S )Nฺmetabase_nosetestsr
   r   )r    r!   r`   ฺsubjectฺ_id_set1r   r   r   ฺsharesr7   ฺshare)ฺtarget_projectฺshared_subj_1r   r   r   ฺtest_22_share_subjectB  s    
r   c              C   s~   t jjd} | jtd }|j s&ttj j	 ddgks>ttj
d | jtd }|j  sdttj j	 dgksztd S )Nr~   r
   r   )r    r!   r`   r   r   r   r   r   r   r7   ฺunshare)r   r   r   r   r   ฺtest_23_unshare_subjectP  s    
r   c              C   s~   t jjd} | jtd }|j  s(ttj j	 dgks>ttj
d | jtd }|j sbttj j	 ddgksztd S )Nr~   r   r   )r    r!   r`   ry   r   r   r   r   r   r7   r   )r   ฺshared_expe_1r   r   r   ฺtest_24_share_experiment^  s    
r   c              C   s~   t jjd} | jtd }|j s&ttj j	 ddgks>ttj
d | jtd }|j  sdttj j	 dgksztd S )Nr~   r   r   )r    r!   r`   ry   r   r   r   r   r   r7   r   )r   r   r   r   r   ฺtest_25_unshare_experimentl  s    
r   c               C   s&   t j stt j  t j  s"td S )N)r   r   r   rN   r   r   r   r   ฺtest_26_subject1_deletez  s    r   c              C   s4   t jdt } | j st| j  | j  s0td S )Nz%/projects/nosetests5/subjects/%(sid)s)r    r!   r"   r   r   rN   )Zsubj_2r   r   r   ฺtest_27_subject2_delete  s    r   )Dr>   ฺuuidr   ฺsixr   ฺos.pathฺpathr&   r.   Zpyxnatr   ฺ r   rx   r   Zpyxnat.corer   ฺdirnameฺabspathฺ__file__r(   r'   r    ZSTUBBORNr@   r   r"   r!   r`   r   r   ry   r   Zassessorr   ฺscanr   Zreconstructionr   r   r   r   r   r   r$   r3   rE   rF   rG   rJ   rP   rV   r\   r_   rb   rc   rj   rm   ru   rw   rz   r}   r   r   r   r   r   r   r   r   r   r   ฺ<module>   sp   


		