a
    [h                  	   @   s   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 d d ddddd	d
diiigddidiidZ	dd Z
G dd dejZedkre  dS )    N)SearchClient)urljoin)ConfigdoiZ	composite  curieZtermsZfieldzitem.curie.aggregate )sizeZsourcesZafter)fromr	   aggregationsc              	   C   s   g }|D ]}d| |vr| | qt|r<t| d |D ].}td|| d  d| d|| d   q@| g || d S )Nzdoi:z: Not found datasets report:z  idz - name)appendlenprintassertEqual)clientZresult1Zresult2name_doi_mapr   Znot_found_doiZtest_doir    r   `/home/cmiss/Jenkins/workspace/SciCrunch Knowledge Testing/tests/nightly_tests/test_comparison.pycheckResult   s    ,r   c                       s,   e Zd Z fddZdd Zdd Z  ZS )ComparisonTestCasec                    s   t  j|i | g | _ddi}dtji}tjd }tjt|dt	||d}| 
d|j | }|d }|d	 d
 }	|	D ]}
| j|
d d  qzd S )Nacceptapplication/jsonZapi_key/Z_search)jsonparamsheaders   r   r   bucketskeyr   )super__init__"_ComparisonTestCase__scicrunch_doir   ZSCICRUNCH_API_KEYZSCICRUNCH_API_HOSTrequestsZpostr   SCICRUNCH_DOI_AGGREGATIONr   status_coder   r   )selfargskwdsr   r   Zscicrunch_hostZscicrunch_response	json_datar   r   Zbucket	__class__r   r   r"   -   s    

zComparisonTestCase.__init__c                 C   s  t jd }| j}ddi}ddd}tjt|d||d}| d	|j tjt|d
t j d|d}|	 }|d }g }	|D ]}
|	
|
d  q||	 }|d }|}d}d}g }i }|dkrr||krd}|}|| }||dd}tjt|d||d}| d	|j |	 }| |t|d  |d D ]<}
|
d |	v r*|
|
d  |
d |
d d||
d < q*|| }qt| |||d d S )Nr   r   r   r   F)limitembargodatasets)r   r   r   zorganizations/z/datasets/metrics)r   r   Z
totalCountd   )r-   offsetr.   r   r   r   r   zPennsieve vs SciCrunch)r   ZPENNSIEVE_API_HOSTr#   r$   getr   r   r&   ZSPARC_PENNSIEVE_ORGANISATION_IDr   r   r   r   )r'   Zpennsieve_hostscicrunch_doir   r   Zfind_total_responseZtest_responser*   r/   Zsparc_dataset_idsZdatasetZtotal_countZremainr1   countZdiscover_doir   Zresponser   r   r   test_doi_information>   sF    



z'ComparisonTestCase.test_doi_informationc           	      C   s   | j }ttjtj}|tj}|dddgg ddd}| 	d|v  | 
d|v  |  g }i }|d D ]>}|d	 d
 ddd}|| |d	 d |d d||< qpt| |||d d S )Nr   z
item.curiez	item.namer   r   )ZattributesToRetrieveZattributesToHighlightlengthr1   statushitsitemr   zDOI:   r   ZobjectIDr2   zAlgolia vs SciCrunch)r#   r   Zcreater   Z
ALGOLIA_IDZALGOLIA_KEYZ
init_indexZALGOLIA_INDEXsearchassertFalse
assertTrueclosereplacer   r   )	r'   r4   r   indexresZalgolia_doir   r:   r   r   r   r   test_aloglia_informationn   s*    

z+ComparisonTestCase.test_aloglia_information)__name__
__module____qualname__r"   r6   rC   __classcell__r   r   r+   r   r   +   s   0r   __main__)r   Zunittestr$   Zalgoliasearch.search_clientr   Zurllib.parser   Ztests.configr   r%   r   TestCaser   rD   mainr   r   r   r   <module>   s,   b