o
    «ÞhÓD  ã                   @   sü  d dl Zd dlm  mZ d dlZd dlmZ d dlm	Z	 d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZ e	jZe	jZe	jZe	jZe	j Z dNdd	„Z!d
d„ Z"ej#dd„ ƒZ$ej#dd„ ƒZ%ej#dd„ ƒZ&dd„ Z'dd„ Z(dd„ Z)dd„ Z*dd„ Z+dd„ Z,dd„ Z-d d!„ Z.d"d#„ Z/d$d%„ Z0d&d'„ Z1d(d)„ Z2d*d+„ Z3d,d-„ Z4d.d/„ Z5d0d1„ Z6d2d3„ Z7d4d5„ Z8d6d7„ Z9d8d9„ Z:d:d;„ Z;d<d=„ Z<d>d?„ Z=d@dA„ Z>dBdC„ Z?dDdE„ Z@dFdG„ ZAdHdI„ ZBdJdK„ ZCdLdM„ ZDdS )Oé    N)Úapp)ÚConfig)ÚServiceAccountCredentials)Úbuild)Ú	HttpErroré   c                 C   s   d  tjtjtj | d¡S )NÚ )Úk)ÚjoinÚrandomÚchoicesÚstringÚascii_lettersÚdigits)Ún© r   ú9/home/cmiss/Jenkins/workspace/SPARC-API/tests/test_api.pyÚ
random_str   s   r   c                 C   sL   |   ¡ jtdd ¡ }|d D ]}|d }|d dkr!|d   S qtdƒ‚)	z(Lookup the sheetId for the 'Events' tab.z!sheets(properties(sheetId,title)))ÚspreadsheetIdÚfieldsÚsheetsÚ
propertiesÚtitleÚEventsÚsheetIdzEvents sheet not found)ÚspreadsheetsÚgetÚEVENTS_SPREADS_IDÚexecuteÚ
ValueError)ZsvcÚmetaÚsÚpropsr   r   r   Úget_events_sheet_id   s   þýÿr#   c                   C   s   dt jd< t  ¡ S )NTZTESTING)r   ÚconfigZtest_clientr   r   r   r   Úclient'   s   
r%   c                  C   ó   t  tt¡} tdd| dS )Nr   Zv4©Zcredentials)r   Úfrom_json_keyfile_nameÚKEY_PATHÚSPREADS_SCOPEr   ©Zcredsr   r   r   Úsheets_service-   ó
   þr,   c                  C   r&   )NÚdriveÚv3r'   )r   r(   r)   ÚDRIVE_SCOPEr   r+   r   r   r   Údrive_service5   r-   r1   c           
      C   ó.  d}|   d|› d¡}|j}d}||k}|sJt d|fd||f¡dt ¡ v s+t |¡r0t |¡ndt |¡t |¡dœ }d	d
|i }tt 	|¡ƒ‚d  } }}d}|j
}||v }	|	st d|	fd||f¡t |¡dt ¡ v stt |¡ryt |¡ndt |¡dœ }d	d
|i }tt 	|¡ƒ‚d  } }	}d S )Nz0217/files/derivative/brainstem_pig_metadata.jsonú/s3-resource/ú'?s3BucketName=prd-sparc-discover50-use1éÈ   ©ú==©z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sÚr©Úpy0Úpy2Úpy5úassert %(py7)sÚpy7s   medulla©Úin©z,%(py1)s in %(py5)s
{%(py5)s = %(py3)s.data
}©Úpy1Úpy3r=   ©r   Ústatus_codeÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚdata©
r%   Zsmall_s3_filer9   Ú@py_assert1Ú@py_assert4Ú@py_assert3Ú@py_format6Ú@py_format8Ú@py_assert0Ú@py_assert2r   r   r   Ú#test_direct_download_url_small_file>   ó   ŠŽrY   c           
      C   r2   )Nz3307%2Ffiles%2Fderivative%2Fhuman_body_metadata.jsonr3   r4   r5   r6   r8   r9   r:   r>   r?   s   colonr@   rB   rC   rF   )
r%   Znew_s3_filer9   rR   rS   rT   rU   rV   rW   rX   r   r   r   Ú(test_direct_download_url_new_bucket_fileE   rZ   r[   c           
      C   r2   )Nz795/files/derivative%2FcolonHuman_Layout1_thumbnail.jpegr3   r4   r5   r6   r8   r9   r:   r>   r?   s   ÿØÿr@   rB   rC   rF   rQ   r   r   r   Ú"test_direct_download_url_thumbnailM   rZ   r\   c                 C   s¤   d}|   d|› d¡}|j}d}||k}|sJt d|fd||f¡dt ¡ v s+t |¡r0t |¡ndt |¡t |¡dœ }d	d
|i }tt 	|¡ƒ‚d  } }}d S )Nz95/files/?encodeBase64=truer3   r4   r5   )ú!=)z3%(py2)s
{%(py2)s = %(py0)s.status_code
} != %(py5)sr9   r:   r>   r?   ©
r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   )r%   Zincorrect_pathr9   rR   rS   rT   rU   rV   r   r   r   Ú#test_direct_download_incorrect_pathT   s   Žr_   c                 C   ó˜   |   d¡}|j}d}||k}|sDt d|fd||f¡dt ¡ v s%t |¡r*t |¡ndt |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}d S )	Nr3   é”  r6   r8   r9   r:   r>   r?   r^   ©r%   r9   rR   rS   rT   rU   rV   r   r   r   Útest_direct_download_empty_pathZ   s   
Žrc   c              	   C   sb  d}|   d|› ¡}|j}d}||k}|sIt d|fd||f¡dt ¡ v s*t |¡r/t |¡ndt |¡t |¡dœ }dd	|i }tt 	|¡ƒ‚d  } }}d
}|j
}|ƒ }	|	j}
|
ƒ }||v }|s£t d|fd||f¡t |¡dt ¡ v s|t |¡rt |¡ndt |¡t |	¡t |
¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } } } }	 }
}d S )NzW61%2Ffiles%2Fprimary%2Fsub-44%2Fsam-1%2Fmicroscopy%2Fsub-44sam-1C44-1Slide2p2MT_10x.nd2r3   i  r6   r8   r9   r:   r>   r?   zFile too big to downloadr@   )z|%(py1)s in %(py11)s
{%(py11)s = %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.get_data
}()
}.decode
}()
})rD   rE   r=   r?   Úpy9Zpy11zassert %(py13)sZpy13)r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   Úget_dataÚdecode)r%   Zlarge_s3_filer9   rR   rS   rT   rU   rV   rW   Ú@py_assert6Z@py_assert8Z@py_assert10rX   Z@py_format12Z@py_format14r   r   r   Ú#test_direct_download_url_large_file`   s   ŠÄrh   c                 C   sÀ  d}d}|   d|› ¡}|j}d}||k}|sKt d|fd||f¡dt ¡ v s,t |¡r1t |¡ndt |¡t |¡dœ }d	d
|i }tt 	|¡ƒ‚d  } }}| 
¡ d }	|	|k}
|
st d|
fd|	|f¡t |	¡dt ¡ v svt |¡r{t |¡nddœ }dd|i }tt 	|¡ƒ‚d  }	}
|   dd› ¡}|j}d}||k}|sØt d|fd||f¡dt ¡ v s¹t |¡r¾t |¡ndt |¡t |¡dœ }d	d
|i }tt 	|¡ƒ‚d  } }}d S )NiÙ  znih-data-portal@blackfynn.comz/get_owner_email/r5   r6   r8   r9   r:   r>   r?   Úemail)z%(py1)s == %(py3)sÚportal_user_email©rD   rE   úassert %(py5)sr=   é?B ra   ©r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   Úget_json)r%   Zportal_user_idrj   r9   rR   rS   rT   rU   rV   rW   rX   Ú@py_format4r   r   r   Útest_get_owner_emailh   s   Š€Žrq   c                 C   s<  d}|   dd› ¡}|j}d}||k}|sIt d|fd||f¡dt ¡ v s*t |¡r/t |¡ndt |¡t |¡dœ }d	d
|i }tt 	|¡ƒ‚d  } }}|   d|› ¡}|j}d}||k}|s–t d|fd||f¡dt ¡ v swt |¡r|t |¡ndt |¡t |¡dœ }d	d
|i }tt 	|¡ƒ‚d  } }}d S )NZOT2OD025340z	/project/rm   ra   r6   r8   r9   r:   r>   r?   r5   r^   )r%   Zportal_project_idr9   rR   rS   rT   rU   rV   r   r   r   Útest_get_datasets_by_projectu   s
   ŠŽrr   c                 C   sn  ddddidgdddd	d
dœdd	d
dœg dœdddddœddgddggddœddd	d
dœidœdœdddig ddœddddœg d¢g d ¢gd!dœd"œdd#d$œgi}| j d%i d&}|j}d'}||k}|s—t d(|fd)||f¡d*t ¡ v sxt |¡r}t |¡nd*t |¡t |¡d+œ }d,d-|i }tt 	|¡ƒ‚d  } }}| j d%|d&}|j}d.}||k}|sãt d(|fd)||f¡d*t ¡ v sÄt |¡rÉt |¡nd*t |¡t |¡d+œ }d,d-|i }tt 	|¡ƒ‚d  } }}d/}|j
}|ƒ }	||	v }
|
s2t d0|
fd1||	f¡t |¡d*t ¡ v st |¡rt |¡nd*t |¡t |	¡d2œ }d3d4|i }tt 	|¡ƒ‚d  } }
 }}	| j d5| 
¡ d&}|j}d.}||k}|s…t d(|fd)||f¡d*t ¡ v sft |¡rkt |¡nd*t |¡t |¡d+œ }d,d-|i }tt 	|¡ƒ‚d  } }}| 
¡ }d}||v }
|
sÊt d0|
fd6||f¡t |¡d7t ¡ v s³t |¡r¸t |¡nd7d8œ }d9d:|i }tt 	|¡ƒ‚d  }}
|d }t|ƒ}d;}	||	k}|st d(|fd<||	f¡d=t ¡ v söt t¡rût t¡nd=t |¡t |¡t |	¡d>œ }d3d4|i }tt 	|¡ƒ‚d  } } }}	|d d? d@ }d}||k}
|
sUt d(|
fdA||f¡t |¡t |¡dBœ }dCdD|i }tt 	|¡ƒ‚d  } }
}|d dE d@ }d}||k}
|
st d(|
fdA||f¡t |¡t |¡dBœ }dCdD|i }tt 	|¡ƒ‚d  } }
}| j dFd/dGid&}|j}d'}||k}|sàt d(|fd)||f¡d*t ¡ v sÁt |¡rÆt |¡nd*t |¡t |¡d+œ }d,d-|i }tt 	|¡ƒ‚d  } }}| j dFi d&}|j}d'}||k}|s/t d(|fd)||f¡d*t ¡ v st |¡rt |¡nd*t |¡t |¡d+œ }d,d-|i }tt 	|¡ƒ‚d  } }}d S )HNÚstateZplaceholder1ÚidZ123zhttps://doi.org/caxddZasdacZconnectivityzbody properiê  zUBERON:0013702)Úlabelrt   Zmodels)ÚevidenceÚcommentÚtypeÚsourceÚtargetZintermediatesZsafsfaZFeatureTzDrawn annotation)Zdrawnru   gàØ¡mL(ÀgèFóøu)ÀgÈ:^M6Àgà_À;·ÀZ
LineString)Zcoordinatesrx   z 1002)rt   rx   r   ÚgeometryZ
connection)ÚresourceÚitemÚbodyÚfeatureZplaceholder2z__annotation/LineStringZCreate)rv   rw   )g   €hÔ%@g   àÿÜ
@g    I@)g    ²!"@g   À`Æ*@g   `™8ÀZMultiLineString)rt   r   r{   Z__annotation)r|   r}   r~   r   ÚgroupZregionz/annotation/getshareid©Újsoné  r6   r8   r9   r:   r>   r?   r5   Úuuidr@   ©zG%(py1)s in %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.get_json
}()
}©rD   rE   r=   r?   úassert %(py9)srd   z/annotation/getstate©z%(py1)s in %(py3)sÚreturned_datark   rl   r=   é   )z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py7)sÚlen)r;   r<   Úpy4r?   r   r|   ©z%(py1)s == %(py4)s©rD   rŒ   úassert %(py6)sÚpy6é   ú/map/getstateÚ1234567)ÚpostrG   rH   rI   rJ   rK   rL   rM   rN   rO   ro   r‹   )r%   Ú	test_datar9   rR   rS   rT   rU   rV   rW   rg   rX   Ú@py_format10r‰   rp   Ú@py_assert5Ú@py_format5Ú@py_format7r   r   r   Ú&test_annotation_get_share_id_and_state€   sb   

ûþû÷÷þûþ
óë&ŠŠ¢~¦tt”rš   c                 C   ó&  ddddœi}| j di d}|j}d}||k}|sMt d|fd	||f¡d
t ¡ v s.t |¡r3t |¡nd
t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}| j d|d}|j}d}||k}|s™t d|fd	||f¡d
t ¡ v szt |¡rt |¡nd
t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}d}|j
}|ƒ }	||	v }
|
såt d|
fd||	f¡t |¡d
t ¡ v sÆt |¡rËt |¡nd
t |¡t |	¡dœ }dd|i }tt 	|¡ƒ‚d  } }
 }}	| j d| 
¡ d}|j}d}||k}|s8t d|fd	||f¡d
t ¡ v st |¡rt |¡nd
t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}| 
¡ }d}||v }
|
s}t d|
fd||f¡t |¡dt ¡ v sft |¡rkt |¡nddœ }dd|i }tt 	|¡ƒ‚d  }}
|d d }d}||k}
|
s³t d|
fd||f¡t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }
}|d d  }d}||k}
|
sët d|
fd||f¡t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }
}| j ddd!id}|j}d}||k}|s<t d|fd	||f¡d
t ¡ v st |¡r"t |¡nd
t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}| j di d}|j}d}||k}|s‹t d|fd	||f¡d
t ¡ v slt |¡rqt |¡nd
t |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}d S )"Nrs   ZscaffoldiÒ  )rx   Úvaluez/map/getshareidr   rƒ   r6   r8   r9   r:   r>   r?   r5   r„   r@   r…   r†   r‡   rd   r’   rˆ   r‰   rk   rl   r=   rx   r   rŽ   r   r   rœ   r“   ©r”   rG   rH   rI   rJ   rK   rL   rM   rN   rO   ro   )r%   r•   r9   rR   rS   rT   rU   rV   rW   rg   rX   r–   r‰   rp   r˜   r™   r   r   r   Útest_map_get_share_id_and_state¾   ó    ŠŠœ~pp”rž   c                 C   r›   )"Nrs   g¤p=
×£(@gq=
×£pÍ?)ÚfarÚnearz/scaffold/getshareidr   rƒ   r6   r8   r9   r:   r>   r?   r5   r„   r@   r…   r†   r‡   rd   z/scaffold/getstaterˆ   r‰   rk   rl   r=   r    r   rŽ   r   r   r¡   r“   r   )r%   ZtestDatar9   rR   rS   rT   rU   rV   rW   rg   rX   r–   r‰   rp   r˜   r™   r   r   r   Ú$test_scaffold_get_share_id_and_state×   rŸ   r¢   c                 C   r`   )	Nz9/hubspot_contact_properties/hubspot_webhook_test@test.comr5   r6   r8   r9   r:   r>   r?   r^   rb   r   r   r   Útest_get_hubspot_contactï   ó   
Žr£   c                    s’  dt ƒ › ‰ dt dƒ› }ˆ › d}d}t |¡|f}| jdˆ ||dœd}|j}d	}	||	k}
|
set d
|
fd||	f¡dt ¡ v sFt 	|¡rKt 
|¡ndt 
|¡t 
|	¡dœ }dd|i }tt |¡ƒ‚d  } }
}	| ¡ }|d ry|d d nd‰| ¡  ¡ jtdd ¡ }| dg ¡}|s²t d¡d ddt ¡ v s¢t 	|¡r§t 
|¡ndi }tt |¡ƒ‚t‡ fdd„t|ddD ƒd ƒ}d }||u}|st d|fd||f¡dt ¡ v sàt 	|¡råt 
|¡ndt 
|¡d œ }t d!ˆ › d"¡d# d$|i }tt |¡ƒ‚d  }}t|ƒ}d%d&d'|d(|d |d)œiigi}| ¡ jt|d* ¡  ˆrÅd+t› d,ˆ› d-}| ¡ j|d.d/d/d0 ¡ }| d1g ¡}‡fd2d3„|D ƒ}|szt d4ˆ› d5¡d dd6t ¡ v sjt 	|¡rot 
|¡nd6i }tt |¡ƒ‚|D ]J}z| ¡ j|d7 d/d8d/id9 ¡  W q| tyÄ } z&d:}|s·t d;|› ¡d< d=t 
|¡i }tt |¡ƒ‚d }W Y d }~q|d }~ww d S d S )>Nztest-zdesc-é   z.txts"   Test file content for Drive uploadz/tasks)r   ÚdescriptionÚ
attachment©rP   éÉ   r6   r8   Úrespr:   r>   r?   Zattachment_filenamer   r   )r   ÚrangeÚvalueszNo rows found in Events sheetz
>assert %(py0)sr;   Úrowsc                 3   s$    | ]\}}|d  ˆ kr|V  qdS )r   Nr   )Ú.0ÚiÚrow)r   r   r   Ú	<genexpr>  s   €" z%test_tasks_appends.<locals>.<genexpr>r‘   )Ústart©úis not©z%(py0)s is not %(py3)sÚ	row_index©r;   rE   zTest row with title 'z' not foundz
>assert %(py5)sr=   ÚrequestsZdeleteDimensionr«   ZROWS)r   Z	dimensionZ
startIndexZendIndex)r   r~   ú'z' in parents and name='z' and trashed = falsezfiles(id, name, driveId)T)Úqr   ÚsupportsAllDrivesZincludeItemsFromAllDrivesÚfilesc                    s   g | ]
}|d  ˆ kr|‘qS )Únamer   )r®   Úf)Úuploaded_filenamer   r   Ú
<listcomp>4  s    z&test_tasks_appends.<locals>.<listcomp>zNo file named 'z' found in Drive folderÚmatched_filesrt   Ztrashed)ZfileIdr»   r~   Fz Failed to delete uploaded file: z
>assert %(py1)srD   )r   ÚioÚBytesIOr”   rG   rH   rI   rJ   rK   rL   rM   rN   rO   ro   r   r¬   r   r   r   Ú_format_assertmsgÚnextÚ	enumerater#   ZbatchUpdateÚEVENTS_ATTACHMENTS_FOLDERr¼   ÚlistÚupdater   )r%   r,   r1   r¦   ÚfilenameZfile_contentsZ	fake_filerª   rR   rS   rT   rU   rV   Z	json_respZget_respr­   Z@py_format1r¶   rX   rp   Zsheet_idZdelete_requestÚqueryZ
files_respr¼   rÁ   r¾   ÚerW   Z@py_format2r   )r   r¿   r   Útest_tasks_appendsó   sŽ   

ýŠþýHþŒüÿÿÿÿþüûVýL€ÿìrÍ   c                 C   sÆ   d}d}d}|› |› }ddddœ}| j ||dd	id
}|j}d}||k}	|	s[t d|	fd||f¡dt ¡ v s<t |¡rAt |¡ndt |¡t |¡dœ }
dd|
i }tt 	|¡ƒ‚d  } }	}d S )NÚPOSTz/subscribe_to_newsletterúhttp://localhostzhubspot_webhook_test@test.comzTest Hubspot WebhookzDo Not Delete)Zemail_addressZ
first_nameÚ	last_nameúContent-Typeúapplication/json)r‚   Úheadersr5   r6   r8   Úresponser:   r>   r?   )
r”   rG   rH   rI   rJ   rK   rL   rM   rN   rO   )r%   Úhttp_methodÚendpointÚbase_urlÚfull_urlÚ	mock_bodyrÔ   rR   rS   rT   rU   rV   r   r   r   Útest_subscribe_to_newsletterA  s   ÿýŽrÚ   c                 C   s0  d}d}d}|› |› }dddœg}t t ¡ ƒ}tj|dd}|› |› |› |› }tjtj d	¡| d	¡t	j
d
 ¡ }	t |	¡ ¡ }
| j||dd|
t|ƒdœd}|j}d}||k}|st d|fd||f¡dt ¡ v sqt |¡rvt |¡ndt |¡t |¡dœ }dd|i }tt |¡ƒ‚d  } }}d S )NrÎ   z/hubspot_webhookrÏ   zcontact.propertyChangeZ83944215465)ZsubscriptionTypeZobjectId)ú,ú:)Ú
separatorszutf-8)ÚkeyÚmsgZ	digestmodrÒ   r/   )rÑ   zX-HubSpot-Signature-VersionzX-Hubspot-Signature-v3zX-HubSpot-Request-Timestamp)rP   rÓ   r5   r6   r8   rÔ   r:   r>   r?   )ÚintÚtimer‚   ÚdumpsÚhmacÚnewr   ZHUBSPOT_CLIENT_SECRETÚencodeÚhashlibZsha256ÚdigestÚbase64Ú	b64encoderf   r”   ÚstrrG   rH   rI   rJ   rK   rL   rM   rN   rO   )r%   rÕ   rÖ   r×   rØ   rÙ   Zvalid_timestampZraw_jsonZdata_to_signÚ	signatureZmock_signaturerÔ   rR   rS   rT   rU   rV   r   r   r   Útest_hubspot_webhookP  s4   
ýüüýŽrì   c                 C   ó  |   d¡}|j}d}||k}|sDt d|fd||f¡dt ¡ v s%t |¡r*t |¡ndt |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}| 
¡ }d	}||v }	|	s†t d
|	fd||f¡t |¡dt ¡ v sot |¡rtt |¡nddœ }
dd|
i }tt 	|¡ƒ‚d  }}	d S )Nz/get_osparc_datar5   r6   r8   r9   r:   r>   r?   Zfile_viewersr@   rˆ   Úosparc_datark   rl   r=   rn   )r%   r9   rR   rS   rT   rU   rV   rî   rW   rX   rp   r   r   r   Útest_osparc_viewerst  ó   
Š|rï   c                 C   r`   )	Nz/sim/dataset/0ra   r6   r8   r9   r:   r>   r?   r^   rb   r   r   r   Útest_sim_dataset{  r¤   rñ   c                 C   s  | j dddid}|j}d}||k}|sHt d|fd||f¡dt ¡ v s)t |¡r.t |¡ndt |¡t |¡d	œ }d
d|i }tt 	|¡ƒ‚d  } }}| 
¡ }|d }d}||k}	|	st d|	fd||f¡t |¡t |¡dœ }
dd|
i }tt 	|¡ƒ‚d  } }	}d S )Nz/onto_term_lookupÚtermz-http://purl.obolibrary.org/obo/NCBITaxon_9606)Zquery_stringr5   r6   r8   r9   r:   r>   r?   ru   ZHumanr   rŽ   r   r   rn   )r%   r9   rR   rS   rT   rU   rV   Z	json_datarW   rX   r˜   r™   r   r   r   Útest_onto_term_lookup€  s   Šnró   c                 C   r`   )	Nz/simulation_ui_file/137ra   r6   r8   r9   r:   r>   r?   r^   rb   r   r   r   Ú$test_non_existing_simulation_ui_file‡  r¤   rô   c                 C   ó  |   d¡}|j}d}||k}|sDt d|fd||f¡dt ¡ v s%t |¡r*t |¡ndt |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}| 
¡ d	 d
 d d }d}||k}|st d|fd||f¡t |¡t |¡dœ }	dd|	i }
tt 	|
¡ƒ‚d  } }}d S )Nz/simulation_ui_file/135r5   r6   r8   r9   r:   r>   r?   Ú
simulationÚsolversr   r½   zsimcore/services/comp/opencorr   rŽ   r   r   rn   ©r%   r9   rR   rS   rT   rU   rV   rW   rX   r˜   r™   r   r   r   Ú%test_simulation_ui_file_old_s3_bucketŒ  ó   
Š~rù   c                 C   rõ   )Nz/simulation_ui_file/308r5   r6   r8   r9   r:   r>   r?   rö   r÷   r   r½   z*simcore/services/comp/kember-cardiac-modelr   rŽ   r   r   rn   rø   r   r   r   Ú%test_simulation_ui_file_new_s3_bucket’  rú   rû   c                 C   óÊ  |   d¡}|j}d}||k}|sDt d|fd||f¡dt ¡ v s%t |¡r*t |¡ndt |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}| 
¡ }d	}||v }	|	s†t d
|	fd||f¡t |¡dt ¡ v sot |¡rtt |¡nddœ }
dd|
i }tt 	|¡ƒ‚d  }}	|d	 }t|ƒ}|tk}|sÝt d|fd|tf¡dt ¡ v s­t t¡r²t t¡ndt |¡t |¡dt ¡ v sÆt t¡rËt t¡nddœ }dd|i }tt 	|¡ƒ‚d  } }}d S )Nz"/get_featured_datasets_identifiersr5   r6   r8   r9   r:   r>   r?   Zidentifiersr@   rˆ   r‚   rk   rl   r=   ©z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} == %(py6)srx   rÈ   ©r;   r<   rŒ   r   úassert %(py8)sÚpy8©r   rG   rH   rI   rJ   rK   rL   rM   rN   rO   ro   rx   rÈ   ©r%   r9   rR   rS   rT   rU   rV   r‚   rW   rX   rp   r—   r™   Ú@py_format9r   r   r   Útest_get_featured_datasets˜  ó
   
Šx¶r  c                 C   s  |   d¡}|j}d}||v }|sDt d|fd||f¡dt ¡ v s%t |¡r*t |¡ndt |¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } }}| 
¡ }d	}||v }	|	s†t d|	fd
||f¡t |¡dt ¡ v sot |¡rtt |¡nddœ }
dd|
i }tt 	|¡ƒ‚d  }}	d S )Nz/total_protocol_views)r5   éÊ   r@   )z3%(py2)s
{%(py2)s = %(py0)s.status_code
} in %(py5)sr9   r:   r>   r?   Ztotal_viewsrˆ   r‚   rk   rl   r=   rn   ©r%   r9   rR   rS   rT   rU   rV   r‚   rW   rX   rp   r   r   r   Útest_get_protocol_viewsŸ  rð   r  c                 C   rí   )Nz/total_dataset_citationsr5   r6   r8   r9   r:   r>   r?   Ztotal_citationsr@   rˆ   r‚   rk   rl   r=   rn   r  r   r   r   Ú test_get_total_dataset_citations¥  rð   r	  c                 C   rü   )Nz/reva/subject-idsr5   r6   r8   r9   r:   r>   r?   Úidsr@   rˆ   r‚   rk   rl   r=   rý   rx   rÈ   rþ   rÿ   r   r  r  r   r   r   Útest_get_reva_subject_ids«  r  r  c                 C   rü   )Nz/reva/tracing-files/sub-SR005r5   r6   r8   r9   r:   r>   r?   r¼   r@   rˆ   r‚   rk   rl   r=   rý   rx   rÈ   rþ   rÿ   r   r  r  r   r   r   Útest_get_reva_tracing_files²  r  r  c                 C   rü   )Nz/reva/micro-ct-files/sub-SR005r5   r6   r8   r9   r:   r>   r?   r¼   r@   rˆ   r‚   rk   rl   r=   rý   rx   rÈ   rþ   rÿ   r   r  r  r   r   r   Útest_get_reva_micro_ct_files¹  r  r  c                 C   rü   )Nz*/reva/anatomical-landmarks-files/sub-SR005r5   r6   r8   r9   r:   r>   r?   Zfoldersr@   rˆ   r‚   rk   rl   r=   rý   rx   rÈ   rþ   rÿ   r   r  r  r   r   r   Útest_get_reva_landmarks_filesÀ  r  r  c                 C   sJ  | j dddddœd}| ¡ }|j}d}||k}|sNt d|fd	||f¡d
t ¡ v s/t |¡r4t |¡nd
t |¡t |¡dœ }dd|i }t	t 
|¡ƒ‚d  } }}|d }d}||k}	|	sƒt d|	fd||f¡t |¡t |¡dœ }
dd|
i }t	t 
|¡ƒ‚d  } }	}|d }d }	||	u}|sÅt d|fd||	f¡dt ¡ v sªt |¡r¯t |¡ndt |	¡dœ }dd|i }t	t 
|¡ƒ‚d  }}	dtj› ddœ}tj||ddid}|j}d }||k}|st d|fd	||f¡d!t ¡ v sþt |¡rt |¡nd!t |¡t |¡dœ }dd|i }t	t 
|¡ƒ‚d  } }}d S )"Nz/create_issueztest-sparc-api-issue-creationz†This is a test generated from the sparc-api test suite. This ticket should be automatically closed, but if it is not then please do soÚtest)r   r~   rx   r¨   r©   r6   r8   Úcreate_responser:   r>   r?   ÚstatusÚsuccessr   rŽ   r   r   Úissue_api_urlr³   rµ   r·   rl   r=   ztoken zapplication/vnd.github+json)ÚAuthorizationZAcceptrs   Úclosed)rÓ   r‚   r5   Úclose_response)r”   ro   rG   rH   rI   rJ   rK   rL   rM   rN   rO   r   ZSPARC_TECH_LEADS_GITHUB_TOKENr¸   Úpatch)r%   r  Zcreate_response_jsonrR   rS   rT   rU   rV   rW   rX   r˜   r™   r  rp   rÓ   r  r   r   r   Útest_create_issueÇ  s&   
ýŠjx
þý’r  c              	   C   sÌ  | j ddddddddœd	}| ¡ }d
}|j}||k}d}||k }|r%|s_t d||fd|||f¡t |¡dt ¡ v s@t |¡rEt |¡ndt |¡t |¡dœ }dd|i }	t	t 
|	¡ƒ‚d  } } } }}dD ]j}
|j}||
ƒ}d }||u}|sÍt d|fd||f¡dt ¡ v s‘t |¡r–t |¡ndt |¡dt ¡ v s¦t |
¡r«t |
¡ndt |¡t |¡dœ }t |
› d¡d d|i }	t	t 
|	¡ƒ‚d  } } }}qk|d }|d }ddtj dœ}tj› d|› }tj||d }|j}|s#t d!¡d" d#t ¡ v st |¡rt |¡nd#t |¡d$œ }t	t 
|¡ƒ‚d }tj› d%|› }tj||d }|j}|sbt d&¡d" d't ¡ v sMt |¡rRt |¡nd't |¡d$œ }t	t 
|¡ƒ‚d }d S )(Nz/submit_data_inquiryztest-sparc-api-deal-creationzŠThis is a test generated from the sparc-api test suite. This deal/note should be automatically deleted, but if it is not then please do soZresearchÚTestZUserz test-api-email@do-not-delete.com)r   r~   rx   Z	firstnameZlastnameri   r¨   r5   i,  )ú<=ú<)z3%(py1)s <= %(py6)s
{%(py6)s = %(py4)s.status_code
}z2%(py6)s
{%(py6)s = %(py4)s.status_code
} < %(py8)sÚrequest_response)rD   rŒ   r   r   zassert %(py10)sZpy10)Z
contact_idÚdeal_idÚnote_idr³   )zM%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.get
}(%(py3)s)
} is not %(py8)sÚrequest_response_jsonrÞ   )r;   r<   rE   r=   r   z is missing or Nonez
>assert %(py10)sr  r  rÒ   zBearer )rÑ   r  z/objects/deals/)rÓ   zFailed to delete test dealz(
>assert %(py2)s
{%(py2)s = %(py0)s.ok
}Údelete_deal_response)r;   r<   z/objects/notes/zFailed to delete test noteÚdelete_note_response)r”   ro   rG   rH   rI   rM   rJ   rK   rL   rN   rO   r   rÄ   r   ZHUBSPOT_API_TOKENZHUBSPOT_V3_APIr¸   ÚdeleteÚok)r%   r  r  rW   r—   rX   Z@py_assert7rT   r  Z@py_format11rÞ   rR   rS   rg   r  r  rÓ   Zdelete_deal_urlr   Ú@py_format3Zdelete_note_urlr!  r   r   r   Útest_submit_data_inquiryã  s.   
ú	®Òþ`dr%  )r   )EÚbuiltinsrJ   Ú_pytest.assertion.rewriteÚ	assertionÚrewriterH   Úpytestr   Z
app.configr   rÂ   r¸   r   r   rá   rã   ræ   rè   r‚   Zoauth2client.service_accountr   Zgoogleapiclient.discoveryr   Zgoogleapiclient.errorsr   ZGOOGLE_API_SPREADS_SCOPEr*   ZGOOGLE_API_DRIVE_SCOPEr0   ZGOOGLE_API_GA_KEY_PATHr)   r   rÇ   r   r#   Úfixturer%   r,   r1   rY   r[   r\   r_   rc   rh   rq   rr   rš   rž   r¢   r£   rÍ   rÚ   rì   rï   rñ   ró   rô   rù   rû   r  r  r	  r  r  r  r  r  r%  r   r   r   r   Ú<module>   sv   " 



>N$