
    kc                         d dl Z d dlZd dlmZ d dlmZ  G d dej
                        Z G d dej
                        Z G d d	ej
                        Z G d
 d      Z	d Z
edk(  r ej                  d       yy)    N)DummySupervisor)DummyRequestc                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
DeferredWebProducerTestsc                     ddl m} |S )Nr   )DeferredWebProducer)supervisor.webr   )selfr   s     ;/usr/lib/python3/dist-packages/supervisor/tests/test_web.py_getTargetClassz(DeferredWebProducerTests._getTargetClass   s    6""    c                 4     | j                         ||      }|S Nr   r
   requestcallbackproducers       r   _makeOnez!DeferredWebProducerTests._makeOne   s    )4'')'8<r   c                 8   t        dg dd      }d }d|_        | j                  ||      }| j                  |j                  |       | j                  |j
                  |       | j                  |j                  d       | j                  |j                  d       y )N/index.html c                       y r    xs    r   <lambda>z4DeferredWebProducerTests.test_ctor.<locals>.<lambda>       r      F)r   delayr   assertEqualr   r   finishedr   s       r   	test_ctorz"DeferredWebProducerTests.test_ctor   s    }b"b9"==(3**H5))73**E2+r   c                     t        dg dd      }ddlm fd}d|_        | j	                  ||      }| j                  |j                                y )Nr   r   r   NOT_DONE_YETc                      S r   r   )r   r&   s    r   r   zADeferredWebProducerTests.test_more_not_done_yet.<locals>.<lambda>   s    l r   r   )r   supervisor.httpr&   r    r   r!   more)r
   r   r   r   r&   s       @r   test_more_not_done_yetz/DeferredWebProducerTests.test_more_not_done_yet   sH    }b"b90*==(3,7r   c                    t        dg dd      }d }d|_        | j                  ||      }| j                  |j	                         d        | j                  |j                         | j                  |j	                         d       y )Nr   r   c                       y)Ndoner   r   s    r   r   z=DeferredWebProducerTests.test_more_finished.<locals>.<lambda>$   r   r   r   )r   r    r   r!   r)   
assertTruer"   r   s       r   test_more_finishedz+DeferredWebProducerTests.test_more_finished"   sl    }b"b9$==(3$/))*"-r   c                    t        dg dd      }d }d|_        | j                  ||      }| j                  |j	                         d        |j
                  j                  j                  j                  }| j                  t        |      d       |d   }| j                  |d   d       | j                  |d   j                  d      |d          | j                  |j                  d       | j                  |j                  d	       y )
Nr   r   c                      t        d      )Nfoo)
ValueErrorargs    r   r   zEDeferredWebProducerTests.test_more_exception_caught.<locals>.callback-   s    U##r   r   r   zWeb interface error	TracebackTi  )r   r    r   r!   r)   channelserverloggerloggedlenr.   
startswithr"   _error)r
   r   r   r   logdatar:   s         r   test_more_exception_caughtz3DeferredWebProducerTests.test_more_exception_caught+   s    }b"b9	$==(3$///((//66Wq)$9:q	,,[96!9E**D1-r   c                 ^   t        dg dd      }d }d|_        | j                  ||      }dddii}|j                  |      }| j	                  |d        | j	                  |j
                  d       | j	                  |j                  d	   d
       | j	                  |j                  d   d       y )Nr   r   c                       y r   r   r4   s    r   r   zEDeferredWebProducerTests.test_sendresponse_redirect.<locals>.<lambda><   r   r   r   headersLocationabci-  Content-Typez
text/plainContent-Lengthr   )r   r    r   sendresponser!   r=   rB   r
   r   r   r   responseresults         r   test_sendresponse_redirectz3DeferredWebProducerTests.test_sendresponse_redirect:   s    }b"b9$==(3
512&&x0&-8,G)9:A>r   c                 f   t        dg dd      }d }d|_        | j                  ||      }dddid}|j                  |      }| j	                  |d        | j	                  |j
                  d   d       | j	                  |j
                  d	   d
       | j	                  |j                  d   d       y )Nr   r   c                       y r   r   r4   s    r   r   zVDeferredWebProducerTests.test_sendresponse_withbody_and_content_type.<locals>.<lambda>H   r   r   r   rD   rE   z	text/html)bodyrB   rF      r   )r   r    r   rG   r!   rB   	producersrH   s         r   +test_sendresponse_withbody_and_content_typezDDeferredWebProducerTests.test_sendresponse_withbody_and_content_typeF   s    }b"b9$==(3!n[-IJ&&x0&8+F)9:A>**1-u5r   N)__name__
__module____qualname__r   r   r#   r*   r/   r?   rK   rQ   r   r   r   r   r      s*    #,8..
?
6r   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	UIHandlerTestsc                     ddl m} |S )Nr   )supervisor_ui_handler)r	   rX   )r
   rX   s     r   r   zUIHandlerTests._getTargetClassS   s    8$$r   c                 F    t               } | j                         |      }|S r   )r   r   )r
   supervisordhandlers      r   r   zUIHandlerTests._makeOneW   s$    %'($&&(5r   c                     t        dg ddddi      }| j                         }|j                  |      }| j                  |d        y )Nz/foo.cssr   	PATH_INFO)r   r   handle_requestr!   )r
   r   r[   datas       r   "test_handle_request_no_view_methodz1UIHandlerTests.test_handle_request_no_view_method\   sD    z2r2J7OP--/%%g.t$r   c                 l   t        dg ddddi      }| j                         }|j                  |      }| j                  |d        | j                  |j                  j
                  j                  |       ddlm} | j                  |j                  j
                  j                  j                  |       y )Nr   r   r]   r   
StatusView)r   r   r^   r!   r7   r   r   r	   rc   r   	__class__)r
   r   r[   r_   rc   s        r   test_handle_request_defaultz*UIHandlerTests.test_handle_request_defaultb   s    }b"b +M:<--/%%g.t$11997C-11::DDZPr   c                 8   t        dg ddddi      }| j                         }|j                  |       ddlm} |j
                  j                  j                  }| j                  |j                  |       | j                  |j                  j                  d       y )Nr   r   r]   r   rb   ui/status.html)r   r   r^   r	   rc   r7   r   r   r!   rd   contexttemplate)r
   r   r[   rc   views        r   test_handle_request_index_htmlz-UIHandlerTests.test_handle_request_index_htmll   s|    }b"b +M:<--/w'-''004..0@Ar   c                 8   t        dg ddddi      }| j                         }|j                  |       ddlm} |j
                  j                  j                  }| j                  |j                  |       | j                  |j                  j                  d       y )N
/tail.htmlr   r]   r   )TailViewzui/tail.html)r   r   r^   r	   rn   r7   r   r   r!   rd   rh   ri   )r
   r   r[   rn   rj   s        r   test_handle_request_tail_htmlz,UIHandlerTests.test_handle_request_tail_htmlv   s{    |RR +L9;--/w'+''002..?r   c                 8   t        dg ddddi      }| j                         }|j                  |       ddlm} |j
                  j                  j                  }| j                  |j                  |       | j                  |j                  j                  d        y )Nrm   r   r]   z/ok.htmlr   )OKView)r   r   r^   r	   rq   r7   r   r   r!   rd   rh   ri   )r
   r   r[   rq   rj   s        r   test_handle_request_ok_htmlz*UIHandlerTests.test_handle_request_ok_html   s{    |RR +J79--/w')''000..5r   N)
rR   rS   rT   r   r   r`   re   rk   ro   rr   r   r   r   rV   rV   R   s(    %
%QB@6r   rV   c                   *    e Zd Zd Zd Zd Zd Zd Zy)StatusViewTestsc                     ddl m} |S )Nr   rb   )r	   rc   )r
   rc   s     r   r   zStatusViewTests._getTargetClass   s    -r   c                 2    | j                         } ||      S r   r   )r
   rh   klasss      r   r   zStatusViewTests._makeOne   s    $$&W~r   c                     t               }t               |_        d|_        i |_        | j                  |      }| j                  t        |j                  dd        y )Nrg   process)	DummyContextr   rZ   ri   formr   assertRaisesr3   make_callback)r
   rh   rj   s      r   test_make_callback_noactionz+StatusViewTests.test_make_callback_noaction   sK    .-/+}}W%*d&8&8)TJr   c                 
   t               }t               |_        d|_        t	        dg dd      |_        i |_        i |_        | j                  |      }|j                         }| j                  |j                  d      |       y )Nrg   z/foor   z<!DOCTYPE html PUBLIC)rz   r   rZ   ri   r   r   r{   rI   r   renderr.   r<   )r
   rh   rj   r_   s       r   test_render_noactionz$StatusViewTests.test_render_noaction   sn    .-/+&vr2r:}}W%{{}(?@$Gr   c                     t               }t               |_        d|_        i |_        ddi|_        | j                  |      }|j                         }ddlm	} | j                  ||u |       y )Nrg   actionrefreshr   r%   )rz   r   rZ   ri   rI   r{   r   r   r(   r&   r.   )r
   rh   rj   r_   r&   s        r   test_render_refreshz#StatusViewTests.test_render_refresh   s_    .-/+ +}}W%{{}0,d3r   N)rR   rS   rT   r   r   r~   r   r   r   r   r   rt   rt      s    K	H	4r   rt   c                       e Zd Zy)rz   N)rR   rS   rT   r   r   r   rz   rz      s    r   rz   c                  V    t        j                  t        j                  t                 S r   )unittestfindTestCasessysmodulesrR   r   r   r   
test_suiter      s    !!#++h"788r   __main__r   )defaultTest)r   r   supervisor.tests.baser   r   TestCaser   rV   rt   rz   r   rR   mainr   r   r   <module>r      sx    
  1 .I6x00 I6V66X&& 66r%4h'' %4N	 	9 zHMMl+ r   