o
    wi                     @   s   d dl mZmZ d dlZd dlmZ d dlmZ G dd deZej	dd Z
ej	d	d
 Zeddd Zeddd Zeddd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    )	MagicMockpatchN)ITritonDeployableDeployPyTritonc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
	MockModelc                 O   s   ddiS Noutputztest output selfargskwargsr
   r
   ^/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/tests/deploy/test_deploy_pytriton.pytriton_infer_fn   s   zMockModel.triton_infer_fnc                 o   s    ddiV  d S r   r
   r   r
   r
   r   triton_infer_fn_streaming   s   z#MockModel.triton_infer_fn_streamingc                 C      ddddgS )Ninputstringnamedtypeshaper
   r   r
   r
   r   get_triton_input      zMockModel.get_triton_inputc                 C   r   )Nr	   r   r   r   r
   r   r
   r
   r   get_triton_output"   r   zMockModel.get_triton_outputN)__name__
__module____qualname__r   r   r   r   r
   r
   r
   r   r      s
    r   c                   C   s   t  S N)r   r
   r
   r
   r   
mock_model&   s   r#   c                 C   s   t d| dddS )N
test_modeli@  iA  )triton_model_namemodel	http_port	grpc_portr   )r#   r
   r
   r   deploy_pytriton+   s   r)   z"nemo.deploy.deploy_pytriton.Tritonc                 C   s&   |   |jd usJ | jj  d S r"   )deploytritonreturn_valuebindassert_called_oncemock_tritonr)   r
   r
   r   test_deploy_success0   s   r1   c                 C   s6   t dt dd}|  |jd usJ | jj  d S )Nr$   T)r%   r&   	streaming)r   r   r*   r+   r,   r-   r.   )r0   r*   r
   r
   r   test_deploy_streaming_success7   s   r3   c                 C   s$   t d| _|  |jd u sJ d S )NzDeployment failed)	Exceptionside_effectr*   r+   r/   r
   r
   r   test_deploy_failure?   s   
r6   c                 C       t  | _|   | jj  d S r"   )r   r+   server.   r)   r
   r
   r   test_serve_successF      r:   c                 C   B   d | _ tjtdd |   W d    d S 1 sw   Y  d S Nzdeploy should be called first.)match)r+   pytestraisesr4   r8   r9   r
   r
   r   test_serve_failureL      
"rA   c                 C   r7   r"   )r   r+   runr.   r9   r
   r
   r   test_run_successR   r;   rD   c                 C   r<   r=   )r+   r?   r@   r4   rC   r9   r
   r
   r   test_run_failureX   rB   rE   c                 C   r7   r"   )r   r+   stopr.   r9   r
   r
   r   test_stop_success^   r;   rG   c                 C   r<   r=   )r+   r?   r@   r4   rF   r9   r
   r
   r   test_stop_failured   rB   rH   )unittest.mockr   r   r?   nemo.deployr   nemo.deploy.deploy_pytritonr   r   fixturer#   r)   r1   r3   r6   r:   rA   rD   rE   rG   rH   r
   r
   r
   r   <module>   s*   




