U
    qh1                     @  s   d dl mZ d dlZd dlZd dlZd dlmZ d dlZd dlm	Z	m
Z
 ejjdejkpbejd  ddG dd	 d	ejZed
kre  dS )    )annotationsN)join)
ModelProtohubZTEST_HUBzConserving Git LFS quota)reasonc                   @  s   e Zd ZddddZddddZddddZddd	d
ZddddZddddZddddZ	ddddZ
ddddZddddZddddZddddZdS )TestModelHubNone)returnc                 C  s   d| _ d| _d| _d S )NZMNISTzonnx/models:main   )namerepoopsetself r   6/tmp/pip-unpacked-wheel-xnis5xre/onnx/test/hub_test.pysetUp   s    zTestModelHub.setUpc                 C  sR   t j| j| jdd}| |t ttjtt 	 dddd}| 
t|d d S )NT)Zforce_reload***.onnx	recursive   r   loadr   r   assertIsInstancer   listglobr   get_dirassertGreaterEquallenr   modelcached_filesr   r   r   test_force_reload   s    zTestModelHub.test_force_reloadc                 C  sn   t j| jddgd}t j| jdgd}t | j}| t|d | t|t| | t|t| d S )NmnistZvision)r!   tags)r%   r   )r   Zlist_modelsr   ZassertGreaterr   )r   Zmodel_info_list_1Zmodel_info_list_2Zmodel_info_list_3r   r   r   test_listing_models#   s    z TestModelHub.test_listing_modelsc                 C  sN   t | j| j}| |t ttjtt 	 dddd}| 
t|d d S )Nr   r   Tr   r   r   r    r   r   r   test_basic_usage,   s    zTestModelHub.test_basic_usagec                 C  sp   t  }t|d}t | t | j| j}| |t t	t
j
t|dddd}| t|d t | d S )NZcustomr   r   Tr   r   )r   r   r   Zset_dirr   r   r   r   r   r   r   r   r   )r   Z	old_cacheZ	new_cacher!   r"   r   r   r   test_custom_cache5   s    

zTestModelHub.test_custom_cachec                 C  s$   t j| j| jdd}| |t d S )N   r   )r   r   r   r   r   r   r   r!   r   r   r   test_download_with_opsetB   s    z%TestModelHub.test_download_with_opsetc                   s     t fdd d S )Nc                     s   t j j jddS )Nr*   )r   r   r   r   r   r   r   r   <lambda>H       z/TestModelHub.test_opset_error.<locals>.<lambda>assertRaisesAssertionErrorr   r   r   r   test_opset_errorF   s     
zTestModelHub.test_opset_errorc                   s     t fdd d S )Nc                     s   t j jdddS )Nonnx/models:unknownT)Zsilent)r   r   r   r   r   r   r   r.   N   r/   z6TestModelHub.test_manifest_not_found.<locals>.<lambda>r0   r   r   r   r   test_manifest_not_foundK   s    
z$TestModelHub.test_manifest_not_foundc                 C  sB   t d}| | t d}| | t | j}| | d S )Nzmhamilton723/modelsr4   )r   Z_verify_repo_refZassertFalser   
assertTrue)r   Zverifiedr   r   r   test_verify_repo_refQ   s    



z!TestModelHub.test_verify_repo_refc                   s8   t jd jdd t d j  t fdd d S )Nr$   r)   r*   c                     s   t jd jddS )Nr$   r-   r*   )r   get_model_infor   r   r   r   r   r.   b   r/   z2TestModelHub.test_get_model_info.<locals>.<lambda>)r   r8   r   r1   r2   r   r   r   r   test_get_model_info^   s     
z TestModelHub.test_get_model_infoc                 C  sD   t d}t|}| |t | jd|dd | jd|dd d S )Nr$   z
model.onnxzOnnx model not found)member	containermsgZtest_data_set_0zTest data not found)r   Zdownload_model_with_test_dataoslistdirr   strZassertIn)r   	directoryfilesr   r   r   "test_download_model_with_test_datae   s    

  z/TestModelHub.test_download_model_with_test_datac                 C  s   t jddd}| |t d S )NzResNet50-fp32zResNet-preproc)Zpreprocessing_model)r   Zload_composite_modelr   r   r+   r   r   r   test_model_with_preprocessingn   s
     z*TestModelHub.test_model_with_preprocessingN)__name__
__module____qualname__r   r#   r&   r'   r(   r,   r3   r5   r7   r9   rB   rC   r   r   r   r   r      s   				r   __main__)
__future__r   r   r=   Zunittestos.pathr   ZpytestZonnxr   r   markZskipifenvironZTestCaser   rD   mainr   r   r   r   <module>   s   a