o
    «Þh5  ã                   @   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
m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„ ZdS )é    N)Úapp)Úreform_flatmap_query_result)Úcreate_dataset_flatmap_queryc                   C   s   dt jd< t  ¡ S )NTÚTESTING)r   ÚconfigÚtest_client© r   r   ú=/home/cmiss/Jenkins/workspace/SPARC-API/tests/test_flatmap.pyÚclient
   s   
r
   c                 C   sV  d}d}| j d||dœ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  } }}dddddœg}	|j
}|	|k}|s¥t d|fd|	|f¡dt ¡ v syt |	¡r~t |	¡ndd	t ¡ v sŠt |¡rt |¡nd	t |¡dœ }
dd|
i }tt 	|¡ƒ‚d  }}d S )Núsub-f006ú$2a3d01c0-39d3-464a-8746-54c9d67ebe0fú/flatmap/find©ÚsubjectÚdataset©Úquery_stringéÈ   ©ú==©z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sÚr©Úpy0Úpy2Úpy5úassert %(py7)sÚpy7z.N:dataset:031598b5-88eb-44eb-ba70-67ad1c2fe36az$0ea45841-ce99-5b86-8d16-2d12689566f6z$238599e8-fd25-533e-9f88-68fad90c1bf2)r   ÚleftÚrightr   ©z,%(py0)s == %(py4)s
{%(py4)s = %(py2)s.json
}Úexpected_result©r   r   Úpy4úassert %(py6)sÚpy6©ÚgetÚstatus_codeÚ
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚjson©r
   Útarget_subjectÚtarget_datasetr   Ú@py_assert1Ú@py_assert4Ú@py_assert3Ú@py_format6Ú@py_format8r!   Ú@py_format5Ú@py_format7r   r   r	   Útest_find_flatmap_uuid   s   Š r<   c                 C   ó\  d}d}| j d||dœ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  } }}dd|› d|› di}	|j
}|	|k}|s¨t d|fd|	|f¡dt ¡ v s|t |	¡rt |	¡ndd	t ¡ v st |¡r’t |¡nd	t |¡dœ }
dd|
i }tt 	|¡ƒ‚d  }}d S )Nzsub-f999r   r   r   r   é”  r   r   r   r   r   r   Úerrorú'404 Not Found: No results for subject 'ú' in dataset 'ú'.r    r!   r"   r$   r%   r&   r2   r   r   r	   Ú"test_find_flatmap_uuid_bad_subject   ó   Š rC   c                 C   r=   )Nr   ú$2b3d01c0-39d3-464a-8746-54c9d67ebe0fr   r   r   r>   r   r   r   r   r   r   r?   r@   rA   rB   r    r!   r"   r$   r%   r&   r2   r   r   r	   Ú"test_find_flatmap_uuid_bad_dataset#   rD   rF   c              	   C   sd  d}| j dd|i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
}|j}	d}
|	|
ƒ}||v }|s¤t d|fd||f¡t |¡dt ¡ v s}t |¡r‚t |¡ndt |¡t |	¡t |
¡t |¡dœ }dd|i }tt 	|¡ƒ‚d  } } } }	 }
}d S )NrE   r   r   r   i  r   r   r   r   r   r   zQuery arguments are not validzutf-8)Úin)zh%(py1)s in %(py11)s
{%(py11)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.data
}.decode
}(%(py9)s)
})Úpy1Úpy3r   r   Úpy9Úpy11zassert %(py13)sÚpy13)r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   ÚdataÚdecode)r
   r4   r   r5   r6   r7   r8   r9   Ú@py_assert0Ú@py_assert6Ú@py_assert8Ú@py_assert10Ú@py_assert2Ú@py_format12Ú@py_format14r   r   r	   Ú%test_find_flatmap_uuid_missing_params,   s   ŠÄrV   c                  C   s‚   t dƒ} | d d d d }d}||k}|s9t d|fd||f¡t |¡t |¡dœ }dd	|i }tt |¡ƒ‚d  } }}d S )
Nú12345-6789-123-456ÚqueryÚmatchúitem.identifierr   ©z%(py1)s == %(py4)s©rH   r#   r$   r%   ©r   r)   r*   r.   r/   r0   ©rX   rO   r7   rS   r:   r;   r   r   r	   Útest_flatmap_query3   s   zr_   c                  C   s\  t dddd} | d }d}||k}|s6t d|fd||f¡t |¡t |¡dœ }d	d
|i }tt |¡ƒ‚d  } }}| d }d}||k}|skt d|fd||f¡t |¡t |¡dœ }d	d
|i }tt |¡ƒ‚d  } }}| d d d d }d}||k}|s¦t d|fd||f¡t |¡t |¡dœ }d	d
|i }tt |¡ƒ‚d  } }}d S )NrW   é   é   )ÚsizeÚfrom_rb   r   r[   r\   r$   r%   ÚfromrX   rY   rZ   r]   r^   r   r   r	   Ú#test_flatmap_query_named_parameters8   s   jjzre   c                  C   sˆ   t d ddƒ} i }| |k}|s>t d|fd| |f¡dt ¡ v s#t | ¡r(t | ¡ndt |¡dœ }dd|i }tt |¡ƒ‚d  }}d S ©	Núsub-f005ú12345-6789-123-45r   ©z%(py0)s == %(py3)sÚoutput©r   rI   úassert %(py5)sr   ©	r   r)   r*   r+   r,   r-   r.   r/   r0   ©rj   rS   r5   Ú@py_format4r8   r   r   r	   Ú*test_reform_flatmap_query_result_bad_input?   ó   |rp   c                  C   sˆ   t i ddƒ} i }| |k}|s>t d|fd| |f¡dt ¡ v s#t | ¡r(t | ¡ndt |¡dœ }dd|i }tt |¡ƒ‚d  }}d S rf   rm   rn   r   r   r	   Ú,test_reform_flatmap_query_result_empty_inputD   rq   rr   c                  C   sŒ   t di iddƒ} i }| |k}|s@t d|fd| |f¡dt ¡ v s%t | ¡r*t | ¡ndt |¡dœ }dd	|i }tt |¡ƒ‚d  }}d S )
NÚhitsrg   rh   r   ri   rj   rk   rl   r   rm   rn   r   r   r	   Ú.test_reform_flatmap_query_result_no_hits_inputI   s   |rt   c                  C   s¶   ddddddiddidœgiigii} t | d	d
ƒ}d
d	ddœ}||k}|sUt d|fd||f¡dt ¡ v s:t |¡r?t |¡ndt |¡dœ }dd|i }tt |¡ƒ‚d  }}d S )Nrs   Ú_sourceÚobjectsÚ
identifierz54321-6789-123-45Úpathz/home/sub-f005/L/here)Úassociated_flatmapr   rg   rh   )r   r   r   r   ri   rj   rk   rl   r   rm   )Úsci_crunch_datarj   rS   r5   ro   r8   r   r   r	   Ú,test_reform_flatmap_query_result_valid_inputN   s   þÿÿÿÿÿÿ„r{   )Úbuiltinsr+   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter)   Úpytestr   Úapp.scicrunch_process_resultsr   Úapp.scicrunch_requestsr   Úfixturer
   r<   rC   rF   rV   r_   re   rp   rr   rt   r{   r   r   r   r	   Ú<module>   s    " 
			