
[c           @` s	  d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l Z d d l Z d d l	 Z	 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 l m Z d d l m Z m Z d d	 l m Z d d
 l m Z d d l m Z d d l m Z m  Z  d d l! m" Z" m# Z# y d d l$ Z$ d d l% m& Z& m' Z' m( Z( d d l) m* Z* m+ Z+ d d l, m- Z- d d l. m/ Z/ d d l0 m1 Z1 m2 Z2 d d l3 m4 Z4 e5 Z6 Wn e7 k
 re8 Z6 n XyI d d l9 m: Z: m; Z; d d l< m= Z= d d l> m? Z? e	 j@ dY k  ZA Wn e7 k
 r>e8 ZA n Xe  rTd d lB ZC n d d lC ZC d ZE y d d lF ZF Wn e7 k
 rd ZF n Xe jG e6 d  ZH d   ZI d   ZJ d e jK f d     YZL eH d eL f d     Y ZM eH d eL f d      Y ZN eH d! eL f d"     Y ZO eH d# eL f d$     Y ZP eH d% eL f d&     Y ZQ e6 re4 e*  d' eR f d(     Y ZS e4 e+  d) eR f d*     Y ZT n  eH d+ eL f d,     Y ZU eH e jV eA d-  d. e jK f d/     Y  ZW eH d0 e jK f d1     Y ZX e6 ri g  d2 6d3 d4 g d5 6d6 g d7 6d8 d9 d: g d; 6d< g d= 6d> d? d@ dA g dB 6g  dC 6g  dD 6g  dE 6g  dF 6g  dG 6g  dH 6dI dJ dK dL dM dN g dO 6dJ g dP 6g  dQ 6ZY e	 j@ dZ k reY d; =n  x eY jZ   D] \ Z[ Z\ y e e[  Z] Wn e7 e^ f k
 rqn Xx3 e\ D]+ Z_ e` e] e_  r$ea e] e_ dR    q$q$WdS   Zb eb e]  Zc ed   je ec jf    qWe/ jg jh   y d dT li mj Zj Wn e7 k
 rqXej jk g  dU e8 n  e6 rdV e2 f dW     YZl n  em dX k re jn   n  d S([   s)   
Unittest for the twisted-style reactor.
i    (   t   absolute_importt   divisiont   print_functionN(   t   utf8(   t   gen(   t   AsyncHTTPClient(   t
   HTTPServer(   t   IOLoopt
   PollIOLoop(   t   set_close_exec(   t   bind_unused_port(   t   unittest(   t   import_objectt   PY3(   t   RequestHandlert   Application(   t   Deferredt   inlineCallbackst   returnValue(   t   IReadDescriptort   IWriteDescriptor(   t   Protocol(   t   log(   t   TornadoReactort   TwistedIOLoop(   t   implementer(   t   Agentt   readBody(   t   Resource(   t   Sitei   s   twisted module not presentc          C` sy   i  }  x3 t  j t  j t  j g D] } t  j |  |  | <q Wd t |   k ru t t j   t	  su t
 d   qu n  |  S(   Nt   twisteds)   twisted signal handlers already installed(   t   signalt   SIGINTt   SIGTERMt   SIGCHLDt	   getsignalt   reprt
   issubclassR   t   configured_classR   t	   Exception(   t   savedt   sig(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   save_signal_handlersQ   s    c         C` s1   x* |  j    D] \ } } t j | |  q Wd  S(   N(   t   itemsR   (   R(   R)   t   handler(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   restore_signal_handlers^   s    t   ReactorTestCasec           B` s   e  Z d    Z d   Z RS(   c         C` sB   t    |  _ t j   t d t  |  _ t   |  _ t j   d  S(   Nt   make_current(   R*   t   _saved_signalsR   t   clear_currentt   Truet   _io_loopR   t   _reactor(   t   self(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   setUpd   s
    
c         C` s$   |  j  j d t  t |  j  d  S(   Nt   all_fds(   R3   t   closeR2   R-   R0   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   tearDownk   s    (   t   __name__t
   __module__R6   R9   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR.   c   s   	t   ReactorWhenRunningTestc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` sV   t  |  _ t  |  _ |  j j |  j  |  j j   |  j |  j  |  j |  j  d  S(   N(   t   Falset   _whenRunningCalledt   _anotherWhenRunningCalledR4   t   callWhenRunningt   whenRunningCallbackt   runt
   assertTrue(   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   test_whenRunningr   s    		c         C` s-   t  |  _ |  j j |  j  |  j j   d  S(   N(   R2   R>   R4   R@   t   anotherWhenRunningCallbackt   stop(   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRA   z   s    	c         C` s   t  |  _ d  S(   N(   R2   R?   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRE      s    (   R:   R;   RD   RA   RE   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR<   p   s   		t   ReactorCallLaterTestc           B` s   e  Z d    Z d   Z RS(   c         C` s   t  |  _ |  j j   |  _ d |  _ |  j j |  j |  j  } |  j |  j j	   | g  |  j j
   |  j |  j  |  j |  j |  j |  j k  |  j |  j j	   g   d  S(   NgMbP?(   R=   t   _laterCalledR4   t   secondst   _nowt   _timeoutt	   callLatert   callLaterCallbackt   assertEqualt   getDelayedCallsRB   RC   t   _called(   R5   t   dc(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   test_callLater   s    		 c         C` s,   t  |  _ |  j j   |  _ |  j j   d  S(   N(   R2   RH   R4   RI   RP   RF   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRM      s    	(   R:   R;   RR   RM   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRG      s   	t   ReactorTwoCallLaterTestc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s3  t  |  _ t  |  _ |  j j   |  _ d |  _ |  j j |  j |  j  } d |  _	 |  j j |  j	 |  j
  } |  j |  j j   | | g k p |  j j   | | g k  |  j j   |  j |  j  |  j |  j  |  j |  j |  j |  j k  |  j |  j |  j |  j	 k  |  j |  j j   g   d  S(   NgMb@?gMbP?(   R=   t   _later1Calledt   _later2CalledR4   RI   RJ   t	   _timeout1RL   t   callLaterCallback1t	   _timeout2t   callLaterCallback2RC   RO   RB   t   _called1t   _called2RN   (   R5   t   dc1t   dc2(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRR      s    				!  c         C` s   t  |  _ |  j j   |  _ d  S(   N(   R2   RT   R4   RI   RZ   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRW      s    	c         C` s,   t  |  _ |  j j   |  _ |  j j   d  S(   N(   R2   RU   R4   RI   R[   RF   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRY      s    	(   R:   R;   RR   RW   RY   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRS      s   		t   ReactorCallFromThreadTestc           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s&   t  t |   j   t j   |  _ d  S(   N(   t   superR^   R6   t   threadt	   get_identt   _mainThread(   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR6      s    c         C` s$   |  j  j   t t |   j   d  S(   N(   t   _threadt   joinR_   R^   R9   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR9      s    c         C` sa   |  j  |  j t j    t |  j d  rJ |  j |  j j t j    n  |  j j	 |  j
  d  S(   Nt   ident(   t   assertNotEqualRb   R`   Ra   t   hasattrRc   RN   Re   R4   t   callFromThreadt   _fnCalledFromThread(   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   _newThreadRun   s    c         C` s*   |  j  |  j t j    |  j j   d  S(   N(   RN   Rb   R`   Ra   R4   RF   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRi      s    c         C` s)   t  j d |  j  |  _ |  j j   d  S(   Nt   target(   t	   threadingt   ThreadRj   Rc   t   start(   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   _whenRunningCallback   s    c         C` s$   |  j  j |  j  |  j  j   d  S(   N(   R4   R@   Ro   RB   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   testCallFromThread   s    (   R:   R;   R6   R9   Rj   Ri   Ro   Rp   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR^      s   					t   ReactorCallInThreadc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` s&   t  t |   j   t j   |  _ d  S(   N(   R_   Rq   R6   R`   Ra   Rb   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR6      s    c         ` s6     j  t j     j    j j   f d    d  S(   Nc           ` s     j  j   S(   N(   R4   RF   (    (   R5   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   <lambda>   s    (   Rf   R`   Ra   Rb   R4   Rh   (   R5   t   argst   kwargs(    (   R5   s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   _fnCalledInThread   s    c         C` s   |  j  j |  j  d  S(   N(   R4   t   callInThreadRu   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRo      s    c         C` s$   |  j  j |  j  |  j  j   d  S(   N(   R4   R@   Ro   RB   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   testCallInThread   s    (   R:   R;   R6   Ru   Ro   Rw   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRq      s   			t   Readerc           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   | |  _  | |  _ d  S(   N(   t   _fdt	   _callback(   R5   t   fdt   callback(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   __init__   s    	c         C` s   d S(   NRx   (    (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt	   logPrefix   s    c         C` s   |  j  j   d  S(   N(   Ry   R8   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR8      s    c         C` s   |  j  j   S(   N(   Ry   t   fileno(   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR      s    c         C` s   |  j    d  S(   N(   R8   (   R5   t   reason(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   readConnectionLost   s    c         C` s   |  j    d  S(   N(   R8   (   R5   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   connectionLost   s    c         C` s   |  j  |  j  d  S(   N(   Rz   Ry   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   doRead   s    (	   R:   R;   R}   R~   R8   R   R   R   R   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRx      s   						t   Writerc           B` s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s   | |  _  | |  _ d  S(   N(   Ry   Rz   (   R5   R{   R|   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR}      s    	c         C` s   d S(   NR   (    (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR~     s    c         C` s   |  j  j   d  S(   N(   Ry   R8   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR8     s    c         C` s   |  j  j   S(   N(   Ry   R   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR     s    c         C` s   |  j    d  S(   N(   R8   (   R5   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR   
  s    c         C` s   |  j  |  j  d  S(   N(   Rz   Ry   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   doWrite  s    (   R:   R;   R}   R~   R8   R   R   R   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR      s   					t   ReactorReaderWriterTestc           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` s6   t  j  | t  j  } t  j  | t  j | t j B d  S(   N(   t   fcntlt   F_GETFLt   F_SETFLt   ost
   O_NONBLOCK(   R5   R{   t   flags(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   _set_nonblocking  s    c         C` s   t  t |   j   t j   \ } } |  j |  |  j |  t |  t |  t j | d d  |  _ t j | d d  |  _	 d  S(   Nt   rbi    t   wb(
   R_   R   R6   R   t   pipeR   R	   t   fdopent   _p1t   _p2(   R5   t   rt   w(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR6     s    

c         C` s1   t  t |   j   |  j j   |  j j   d  S(   N(   R_   R   R9   R   R8   R   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR9   !  s    c         ` s   t    _   f d   }   f d   } t   j |    _ t   j |    _   j j	   j    j j
   j    j j
   j  d S(   s   
        In this test the writer writes an 'x' to its fd. The reader
        reads it, check the value and ends the test.
        c         ` s*     j  |  j d  d    j j   d  S(   Ni   t   x(   t   assertEqualst   readR4   RF   (   R{   (   R5   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   checkReadInput-  s    c         ` s&     j  r" t   _  |  j d  n  d  S(   NR   (   t   shouldWriteR=   t   write(   R{   (   R5   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt	   writeOnce1  s    		N(   R2   R   Rx   R   t   _readerR   R   t   _writerR4   t	   addWritert	   addReader(   R5   R   R   (    (   R5   s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   _testReadWrite&  s    	c         C` s$   |  j  j |  j  |  j  j   d  S(   N(   R4   R@   R   RB   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   testReadWrite?  s    c         ` s     f d   }   f d   } t    j |    _ t   j d      _   j j   j    j j   j    j j	   j    j j
 d |  d S(   se   
        In this test we have no writer. Make sure the reader doesn't
        read anything.
        c         ` s     j  d  d  S(   Ns   Must not be called.(   t   fail(   R{   (   R5   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR   H  s    c           ` s     j  j     j j   d  S(   N(   R   R8   R4   RF   (    (   R5   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   stopTestK  s    c         S` s   |  j  d  S(   NR   (   R   (   R{   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRr   S  s    gMbP?N(   Rx   R   R   R   R   R   R4   R   t   removeWriterR   RL   (   R5   R   R   (    (   R5   s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   _testNoWriterC  s    c         C` s$   |  j  j |  j  |  j  j   d  S(   N(   R4   R@   R   RB   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   testNoWriter`  s    (	   R:   R;   R   R6   R9   R   R   R   R   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR     s   		
				s   twisted web not presentt   CompatibilityTestsc           B` s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z RS(   c         C` s5   t    |  _ t   |  _ |  j j   t   |  _ d  S(   N(   R*   t   saved_signalsR   t   io_loopR/   R   t   reactor(   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR6   k  s    c         C` s>   |  j  j   |  j j   |  j j d t  t |  j  d  S(   NR7   (   R   t   disconnectAllR   R1   R8   R2   R-   R   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR9   q  s    c         C` sV   d t  f d     Y} t |    } |  j j d | d d } | j   j |  _ d  S(   Nt   HelloResourcec           B` s   e  Z e Z d    Z RS(   c         S` s   d S(   Ns   Hello from twisted!(    (   R5   t   request(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt
   render_GET{  s    (   R:   R;   R2   t   isLeafR   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR   x  s   i    t	   interfaces	   127.0.0.1(   R   R   R   t	   listenTCPt   getHostt   portt   twisted_port(   R5   R   t   siteR   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   start_twisted_serverw  s    c         C` sf   d t  f d     Y} t d | f g d d   } t |  } t   \ } |  _ | j | g  d  S(   Nt   HelloHandlerc           B` s   e  Z d    Z RS(   c         S` s   |  j  d  d  S(   Ns   Hello from tornado!(   R   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   get  s    (   R:   R;   R   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR     s   t   /t   log_functionc         S` s   d  S(   N(   t   None(   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRr     s    (   R   R   R   R
   t   tornado_portt   add_sockets(   R5   R   t   appt   servert   sock(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   start_tornado_server  s    c         C` s0   |  j  j |  _ |  j  j   |  j j d  d  S(   Nt   shutdown(   R   RF   t	   stop_loopRn   R   t   fireSystemEvent(   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt
   run_ioloop  s    c         C` s/   |  j  j |  _ |  j  j |  _ |  j  j   d  S(   N(   R   RF   R   RB   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   run_reactor  s    c         ` sg   g    t    }    f d   } | j | d | |    j t    d    d j     d S(   Nc         ` s     j  |    j   d  S(   N(   t   appendR   (   t   response(   t	   responsesR5   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR|     s    R|   i   i    (   R   t   fetchRN   t   lent   rethrow(   R5   t   urlt   runnert   clientR|   (    (   R   R5   s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   tornado_fetch  s    	c         ` s   g   t   j  } | j d t |   } d t f  f d     Y    f d   } | j |   f d   } | j |  |    j   d j   S(   Nt   GETt   Accumulatorc           ` s)   e  Z d    Z   f d   Z d   Z RS(   c         S` s   | |  _  d  S(   N(   t   finished(   R5   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR}     s    c         ` s     j  |  d  S(   N(   R   (   R5   t   data(   t   chunks(    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   dataReceived  s    c         S` s   |  j  j d   d  S(   N(   R   R|   R   (   R5   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR     s    (   R:   R;   R}   R   R   (    (   R   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR     s   	c         ` s    t    } |  j   |   | S(   N(   R   t   deliverBody(   R   R   (   R   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR|     s    	c         ` sZ   t    d  r   j   n: |  d  k	 rV y |  j   WqV t j d d t qV Xn  d  S(   NR   s   exception before starting loopt   exc_info(   Rg   R   R   t   raiseExceptiont   loggingt   errorR2   (   t   failure(   R5   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR     s    t    (	   R   R   R   R   R   t   addCallbackt   addBothRC   Rd   (   R5   R   R   R   t   dR|   R   (    (   R   R   R5   s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   twisted_fetch  s    
c         ` sF   d  g   t j     f d    }  j j |  |     d S(   Nc          3` sm   t   j  }  |  j d t    V} t j   ) t j d d t t |  V  d <Wd  QX j	   d  S(   NR   t   ignoret   categoryi    (
   R   R   R   R   t   warningst   catch_warningst   simplefiltert   DeprecationWarningR   R   (   R   R   (   t   bodyR5   R   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   f  s    i    (   R   R   t	   coroutineR   t   add_callback(   R5   R   R   R   (    (   R   R5   R   s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   twisted_coroutine_fetch  s
    	c         C` s=   |  j    |  j d |  j |  j  } |  j | j d  d  S(   Ns   http://127.0.0.1:%ds   Hello from twisted!(   R   R   R   R   RN   R   (   R5   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt$   testTwistedServerTornadoClientIOLoop  s    
c         C` s=   |  j    |  j d |  j |  j  } |  j | j d  d  S(   Ns   http://127.0.0.1:%ds   Hello from twisted!(   R   R   R   R   RN   R   (   R5   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt%   testTwistedServerTornadoClientReactor  s    
c         C` s:   |  j    |  j d |  j |  j  } |  j | d  d  S(   Ns   http://127.0.0.1:%ds   Hello from tornado!(   R   R   R   R   RN   (   R5   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt$   testTornadoServerTwistedClientIOLoop  s    
c         C` s:   |  j    |  j d |  j |  j  } |  j | d  d  S(   Ns   http://127.0.0.1:%ds   Hello from tornado!(   R   R   R   R   RN   (   R5   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt%   testTornadoServerTwistedClientReactor  s    
c         C` s:   |  j    |  j d |  j |  j  } |  j | d  d  S(   Ns   http://127.0.0.1:%ds   Hello from tornado!(   R   R   R   R   RN   (   R5   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt-   testTornadoServerTwistedCoroutineClientIOLoop  s    
(   R:   R;   R6   R9   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR   h  s   			
	
				&					t   ConvertDeferredTestc           B` s   e  Z d    Z d   Z RS(   c         C` s;   t  d    } t j |    } |  j | j   d  d  S(   Nc           s` s   t  r d  Vn  t d  d  S(   Ni*   (   R=   R   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   fn  s    i*   (   R   R   t   convert_yieldedRN   t   result(   R5   R   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   test_success  s    c         C` sE   t  d    } t j |    } |  j t   | j   Wd  QXd  S(   Nc           s` s   t  r d  Vn  d d d  S(   Ni   i    (   R=   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR   	  s    (   R   R   R   t   assertRaisest   ZeroDivisionErrorR   (   R5   R   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   test_failure  s    (   R:   R;   R   R   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR     s   	s:   twisted.internet.test.test_core.ObjectModelIntegrationTestt   test_iteratet   test_runAfterCrashs7   twisted.internet.test.test_core.SystemEventTestsBuildert   test_lostFileDescriptors9   twisted.internet.test.test_fdset.ReactorFDSetTestsBuildert   test_changeGIDt   test_changeUIDt   test_childConnectionLosts6   twisted.internet.test.test_process.ProcessTestsBuildert   test_badContexts4   twisted.internet.test.test_tcp.TCPClientTestsBuildert$   test_buildProtocolIPv6AddressScopeIDt   test_portGetHostOnIPv6ScopeIDt   test_serverGetHostOnIPv6ScopeIDt   test_serverGetPeerOnIPv6ScopeIDs2   twisted.internet.test.test_tcp.TCPPortTestsBuilders8   twisted.internet.test.test_tcp.TCPConnectionTestsBuilders1   twisted.internet.test.test_tcp.WriteSequenceTestss6   twisted.internet.test.test_tcp.AbortConnectionTestCases5   twisted.internet.test.test_threads.ThreadTestsBuilders0   twisted.internet.test.test_time.TimeTestsBuilders4   twisted.internet.test.test_udp.UDPServerTestsBuildert$   test_connectToLinuxAbstractNamespacet#   test_listenOnLinuxAbstractNamespacet   test_sendFileDescriptort-   test_sendFileDescriptorTriggersPauseProducingt#   test_descriptorDeliveredBeforeBytest    test_avoidLeakingFileDescriptorss0   twisted.internet.test.test_unix.UNIXTestsBuilders8   twisted.internet.test.test_unix.UNIXDatagramTestsBuilders4   twisted.internet.test.test_unix.UNIXPortTestsBuilderc         C` s   d  S(   N(   R   (   R5   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRr   i  s    c         ` s/   d  f    f d     Y   j    _    S(   Nt   TornadoTestc           ` s\   e  Z d  g Z   f d   Z   f d   Z   f d   Z  f d   Z  f d   Z RS(   s%   tornado.platform.twisted._TestReactorc         ` sE   t  j   |  _ t j   |  _ t  j |  j  t   |   j   d  S(   N(	   R   t   getcwdt   _TornadoTest__curdirt   tempfilet   mkdtempt   _TornadoTest__tempdirt   chdirR_   R6   (   R5   (   R  (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR6   o  s    c         ` s7   t    |   j   t j |  j  t j |  j  d  S(   N(   R_   R9   R   R  R  t   shutilt   rmtreeR  (   R5   (   R  (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR9   x  s    c         ` sY   g  } xL t    |   j | |   D]/ } | d t t f k rD q" n  | j |  q" W| S(   NR   (   R_   t   flushWarningst   BytesWarningt   ResourceWarningR   (   R5   Rs   Rt   t   filteredR   (   R  (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR  }  s    
c         ` s   t    |  _   j |   S(   N(   R*   t   _TornadoTest__saved_signalst   buildReactor(   R5   (   t
   test_class(    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR    s    c         ` s4     j  |  |  | j j d t  t |  j  d  S(   NR7   (   t   unbuildReactorR3   R8   R2   R-   R  (   R5   R   (   R  (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR    s    (   R:   R;   t	   _reactorsR6   R9   R  R  R  (    (   R  R  (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR  l  s   		(   R:   (   R  (    (   R  R  s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   make_test_subclassk  s    1(   t   globalLogBeginnert   redirectStandardIOt   LayeredTwistedIOLoopc           B` s,   e  Z d  Z d   Z e d  Z d   Z RS(   sD  Layers a TwistedIOLoop on top of a TornadoReactor on a PollIOLoop.

        This is of course silly, but is useful for testing purposes to make
        sure we're implementing both sides of the various interfaces
        correctly.  In some tests another TornadoReactor is layered on top
        of the whole stack.
        c         K` s]   t  d t  |  _ |  j j t j t   } t t |   j	 d | |  |  j
 |  j  d  S(   NR/   R   (   R   R=   t   real_io_loopt   run_syncR   R   R   R_   R!  t
   initializeR   R/   (   R5   Rt   R   (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR$    s    c         C` sd   t  t |   j d |  x1 |  j j D]# } |  j j |  | j d   q& W|  j j d |  d  S(   NR7   (	   R_   R!  R8   R   t   _internalReaderst   removeReaderR   R   R"  (   R5   R7   t   reader(    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR8     s
    c         ` s#     f d   }   j  j |  d  S(   Nc           ` s!     j  j     j   j  d  S(   N(   R   t   crashR   R/   (    (   R5   (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR     s    (   R   R@   (   R5   R   (    (   R5   s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyRF     s    (   R:   R;   t   __doc__R$  R=   R8   RF   (    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyR!    s   	t   __main__(   i   (   i   (o   R)  t
   __future__R    R   R   R   R   R  R   t   sysR  Rl   R   t   tornado.escapeR   t   tornadoR   t   tornado.httpclientR   t   tornado.httpserverR   t   tornado.ioloopR   R   t   tornado.platform.autoR	   t   tornado.testingR
   t   tornado.test.utilR   t   tornado.utilR   R   t   tornado.webR   R   R   t   twisted.internet.deferR   R   R   t   twisted.internet.interfacesR   R   t   twisted.internet.protocolR   t   twisted.pythonR   t   tornado.platform.twistedR   R   t   zope.interfaceR   R2   t   have_twistedt   ImportErrorR=   t   twisted.web.clientR   R   t   twisted.web.resourceR   t   twisted.web.serverR   t   version_infot   have_twisted_webRc   R`   R   R  t   asynciot
   skipUnlesst   skipIfNoTwistedR*   R-   t   TestCaseR.   R<   RG   RS   R^   Rq   t   objectRx   R   R   t   skipIfR   R   t   twisted_testsR+   t	   test_namet	   blacklistR  t   AttributeErrort	   test_funcRg   t   setattrR  t   test_subclasst   globalst   updatet   makeTestCaseClassest   defaultObserverRF   t   twisted.loggerR  t   beginLoggingToR!  R:   t   main(    (    (    s8   lib/python2.7/site-packages/tornado/test/twisted_test.pyt   <module>   s   



				V	








	4$