o
    Ͱie                     @   sh   d dl Z d dlmZ d dlmZ G dd de jZG dd de jZG dd	 d	e jZG d
d dZdS )    N)DummySupervisor)DummyRequestc                   @   sL   e Z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 )DeferredWebProducerTestsc                 C      ddl m} |S )Nr   )DeferredWebProducer)supervisor.webr   )selfr    r	   M/home/ubuntu/.local/lib/python3.10/site-packages/supervisor/tests/test_web.py_getTargetClass      z(DeferredWebProducerTests._getTargetClassc                 C   s   |   ||}|S Nr   r   requestcallbackproducerr	   r	   r
   _makeOne   s   z!DeferredWebProducerTests._makeOnec                 C   sd   t dg dd}dd }d|_| ||}| |j| | |j| | |jd | |jd d S )N/index.html c                  W      d S r   r	   xr	   r	   r
   <lambda>       z4DeferredWebProducerTests.test_ctor.<locals>.<lambda>   F)r   delayr   assertEqualr   r   finishedr   r	   r	   r
   	test_ctor   s   z"DeferredWebProducerTests.test_ctorc                    sL   t dg dd}ddlm   fdd}d|_| ||}| |   d S )Nr   r   r   NOT_DONE_YETc                     s    S r   r	   r   r    r	   r
   r      r   zADeferredWebProducerTests.test_more_not_done_yet.<locals>.<lambda>r   )r   supervisor.httpr!   r   r   r   morer   r	   r    r
   test_more_not_done_yet   s   z/DeferredWebProducerTests.test_more_not_done_yetc                 C   sX   t dg dd}dd }d|_| ||}| | d  | |j | | d d S )Nr   r   c                  W   s   dS )Ndoner	   r   r	   r	   r
   r   #   r   z=DeferredWebProducerTests.test_more_finished.<locals>.<lambda>r   )r   r   r   r   r#   
assertTruer   r   r	   r	   r
   test_more_finished!   s   z+DeferredWebProducerTests.test_more_finishedc                 C   s   t dg dd}dd }d|_| ||}| | d  |jjjj}| t	|d |d }| |d d | 
|d d|d  | |jd	 | |jd
 d S )Nr   r   c                  W   s   t d)Nfoo)
ValueErrorargr	   r	   r
   r   ,   s   zEDeferredWebProducerTests.test_more_exception_caught.<locals>.callbackr   r   zWeb interface error	TracebackTi  )r   r   r   r   r#   channelserverloggerloggedlenr&   
startswithr   _error)r   r   r   r   logdatar0   r	   r	   r
   test_more_exception_caught*   s   z3DeferredWebProducerTests.test_more_exception_caughtc                 C   s   t dg dd}dd }d|_| ||}dddii}||}| |d  | |jd	 | |jd
 d | |jd d d S )Nr   r   c                  W   r   r   r	   r*   r	   r	   r
   r   ;   r   zEDeferredWebProducerTests.test_sendresponse_redirect.<locals>.<lambda>r   headersLocationabci-  Content-Typez
text/plainContent-Lengthr   )r   r   r   sendresponser   r3   r6   r   r   r   r   responseresultr	   r	   r
   test_sendresponse_redirect9   s   
z3DeferredWebProducerTests.test_sendresponse_redirectc                 C   s   t dg dd}dd }d|_| ||}dddid	}||}| |d  | |jd d | |jd
 d | |jd d d S )Nr   r   c                  W   r   r   r	   r*   r	   r	   r
   r   G   r   zVDeferredWebProducerTests.test_sendresponse_withbody_and_content_type.<locals>.<lambda>r   r8   r9   z	text/html)bodyr6   r:      r   )r   r   r   r;   r   r6   	producersr<   r	   r	   r
   +test_sendresponse_withbody_and_content_typeE   s   
zDDeferredWebProducerTests.test_sendresponse_withbody_and_content_typeN)__name__
__module____qualname__r   r   r   r$   r'   r5   r?   rC   r	   r	   r	   r
   r      s    
	r   c                   @   sD   e Z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 )UIHandlerTestsc                 C   r   )Nr   )supervisor_ui_handler)r   rH   )r   rH   r	   r	   r
   r   R   r   zUIHandlerTests._getTargetClassc                 C   s   t  }|  |}|S r   )r   r   )r   supervisordhandlerr	   r	   r
   r   V   s   zUIHandlerTests._makeOnec                 C   s6   t dg ddddi}|  }||}| |d  d S )Nz/foo.cssr   	PATH_INFO)r   r   handle_requestr   )r   r   rJ   datar	   r	   r
   "test_handle_request_no_view_method[   s   
z1UIHandlerTests.test_handle_request_no_view_methodc                 C   sh   t dg ddddi}|  }||}| |d  | |jjj| ddlm} | |jjj	j
| d S )Nr   r   rK   r   
StatusView)r   r   rL   r   r-   r   r   r   rP   r   	__class__)r   r   rJ   rM   rP   r	   r	   r
   test_handle_request_defaulta   s   

z*UIHandlerTests.test_handle_request_defaultc                 C   ^   t dg ddddi}|  }|| ddlm} |jjj}| |j	| | |j
jd d S )Nr   r   rK   r   rO   ui/status.html)r   r   rL   r   rP   r-   r   r   r   rQ   contexttemplate)r   r   rJ   rP   viewr	   r	   r
   test_handle_request_index_htmlk      


z-UIHandlerTests.test_handle_request_index_htmlc                 C   rS   )N
/tail.htmlr   rK   r   )TailViewzui/tail.html)r   r   rL   r   r[   r-   r   r   r   rQ   rU   rV   )r   r   rJ   r[   rW   r	   r	   r
   test_handle_request_tail_htmlu   rY   z,UIHandlerTests.test_handle_request_tail_htmlc                 C   s^   t dg ddddi}|  }|| ddlm} |jjj}| |j	| | |j
jd  d S )NrZ   r   rK   z/ok.htmlr   )OKView)r   r   rL   r   r]   r-   r   r   r   rQ   rU   rV   )r   r   rJ   r]   rW   r	   r	   r
   test_handle_request_ok_html   rY   z*UIHandlerTests.test_handle_request_ok_htmlN)
rD   rE   rF   r   r   rN   rR   rX   r\   r^   r	   r	   r	   r
   rG   Q   s    


rG   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )StatusViewTestsc                 C   r   )Nr   rO   )r   rP   )r   rP   r	   r	   r
   r      r   zStatusViewTests._getTargetClassc                 C   s   |   }||S r   r   )r   rU   klassr	   r	   r
   r      s   zStatusViewTests._makeOnec                 C   s:   t  }t |_d|_i |_| |}| t|jdd  d S )NrT   process)	DummyContextr   rI   rV   formr   assertRaisesr)   make_callback)r   rU   rW   r	   r	   r
   test_make_callback_noaction   s   
z+StatusViewTests.test_make_callback_noactionc                 C   sX   t  }t |_d|_tdg dd|_i |_i |_| |}|	 }| 
|d| d S )NrT   z/foor   z<!DOCTYPE html PUBLIC)rb   r   rI   rV   r   r   rc   r=   r   renderr&   r2   )r   rU   rW   rM   r	   r	   r
   test_render_noaction   s   
z$StatusViewTests.test_render_noactionc                 C   sV   t  }t |_d|_i |_ddi|_| |}| }ddlm	} | 
||u | d S )NrT   actionrefreshr   r    )rb   r   rI   rV   r=   rc   r   rg   r"   r!   r&   )r   rU   rW   rM   r!   r	   r	   r
   test_render_refresh   s   

z#StatusViewTests.test_render_refreshN)rD   rE   rF   r   r   rf   rh   rk   r	   r	   r	   r
   r_      s    r_   c                   @   s   e Zd ZdS )rb   N)rD   rE   rF   r	   r	   r	   r
   rb      s    rb   )	unittestsupervisor.tests.baser   r   TestCaser   rG   r_   rb   r	   r	   r	   r
   <module>   s    K9'