๓
จ[c           @` s/  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 m	 Z	 m
 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 d  d	 l m Z m Z m Z m Z d  d
 l m Z m Z m Z m Z d e f d     YZ e d e j  f d     Y Z! d S(   i    (   t   absolute_importt   divisiont   print_functionN(   t   utf8t
   to_unicode(   t   gen(   t   IOStream(   t   app_log(   t   NullContext(   t	   TCPServer(   t   skipBefore35t   skipIfNonUnixt	   exec_testt   unittest(   t   AsyncTestCaset	   ExpectLogt   bind_unused_portt   gen_testt   TCPServerTestc           B` sD   e  Z e d     Z e e d     Z d   Z e d    Z RS(   c         c` s๐   d t  f d     Y} d  } } z t   \ } } t    |   } | j |  Wd  QXt t j    } t t d  : | j	 d | f  V| j
 d  V| j   Vt j VWd  QXWd  | d  k	 rา | j   n  | d  k	 r๋ | j   n  Xd  S(   Nt
   TestServerc           B` s   e  Z e j d     Z RS(   c         s` s*   | j  t d   V| j   d d d  S(   Nt   helloi   i    (   t
   read_bytest   lent   close(   t   selft   streamt   address(    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyt   handle_stream   s    
(   t   __name__t
   __module__R   t	   coroutineR   (    (    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyR      s   s   Exception in callbackt	   localhostR   (   R	   t   NoneR   R   t
   add_socketR   t   socketR   R   t   connectt   writet   read_until_closeR   t   momentt   stopR   (   R   R   t   servert   clientt   sockt   port(    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyt$   test_handle_stream_coroutine_logging   s"    

	c         c` s   t  t   t   d  } t   \ } } | d   } | j |  t t j    } | j d | f  V| j   V} |  j	 | d  | j
   | j   d  S(   Nsฏ   
        class TestServer(TCPServer):
            async def handle_stream(self, stream, address):
                stream.write(b'data')
                stream.close()
        R   R   t   data(   R   t   globalst   localsR   R!   R   R"   R#   R%   t   assertEqualR'   R   (   R   t	   namespaceR*   R+   R(   R)   t   result(    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyt#   test_handle_stream_native_coroutine0   s    	
c         C` s=   t    \ } } t   } | j |  | j   | j   d  S(   N(   R   R	   R!   R'   (   R   R*   R+   R(   (    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyt   test_stop_twiceF   s
    	
c   	      #` s  d t  f  f d     Y} t   \ } } |     j |  d | f  d } g  t |  D] } t t j    ^ q` } g    t j    f d    } g  | D] } | |  ^ qฆ V|  j t	    d d  z& t	    | k r๛ |  j
 d  n  Wd  x   D] } | j   qWXd  S(	   NR   c           ` s    e  Z e j   f d     Z RS(   c         3` s     j    | j   Vd  S(   N(   R'   R%   (   R   R   R   (   R(   (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyR   T   s    
(   R   R   R   R   R   (    (   R(   (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyR   S   s   R   i(   c         3` s7   y |  j    VWn t k
 r% n X  j |   d  S(   N(   R#   t   EnvironmentErrort   append(   t   c(   t   connected_clientst   server_addr(    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyR#   a   s
    i    s   all clients failed connectingsH   at least one client should fail connecting for the test to be meaningful(   R	   R   R!   t   rangeR   R"   R   R   t   assertGreaterR   t   skipTestR   (	   R   R   R*   R+   t   Nt   it   clientsR#   R7   (    (   R8   R(   R9   s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyt   test_stop_in_callbackM   s"    	+	(   R   R   R   R,   R
   R3   R4   R@   (    (    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyR      s
   	t   TestMultiprocessc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` sข   t  j t j d t  j d t  j } | j j t |   | j j   | j	   | j
 j   } | j
 j   | j d k r t d | j | f   n  t |  S(   Nt   stdint   stdouti    s   Process returned %d. stdout=%r(   t
   subprocesst   Popent   syst
   executablet   PIPERB   R$   R   R   t   waitRC   t   readt
   returncodet   RuntimeErrorR   (   R   t   codet   procRC   (    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyt   run_subproc   s    	
c         C` sA   t  j d  } |  j |  } |  j d j t |   d  d  S(   NsF  
            from __future__ import print_function
            from tornado.ioloop import IOLoop
            from tornado.tcpserver import TCPServer

            server = TCPServer()
            server.listen(0, address='127.0.0.1')
            IOLoop.current().run_sync(lambda: None)
            print('012', end='')
        t    t   012(   t   textwrapt   dedentRO   R0   t   joint   sorted(   R   RM   t   out(    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyt   test_single   s    		c         C` sA   t  j d  } |  j |  } |  j d j t |   d  d  S(   Ns  
            from __future__ import print_function
            from tornado.ioloop import IOLoop
            from tornado.process import task_id
            from tornado.tcpserver import TCPServer

            server = TCPServer()
            server.bind(0, address='127.0.0.1')
            server.start(3)
            IOLoop.current().run_sync(lambda: None)
            print(task_id(), end='')
        RP   RQ   (   RR   RS   RO   R0   RT   RU   (   R   RM   RV   (    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyt   test_simple    s    	c         C` sA   t  j d  } |  j |  } |  j d j t |   d  d  S(   Ns<  
            from __future__ import print_function
            from tornado.ioloop import IOLoop
            from tornado.netutil import bind_sockets
            from tornado.process import fork_processes, task_id
            from tornado.ioloop import IOLoop
            from tornado.tcpserver import TCPServer

            sockets = bind_sockets(0, address='127.0.0.1')
            fork_processes(3)
            server = TCPServer()
            server.add_sockets(sockets)
            IOLoop.current().run_sync(lambda: None)
            print(task_id(), end='')
        RP   RQ   (   RR   RS   RO   R0   RT   RU   (   R   RM   RV   (    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyt   test_advancedฐ   s    	(   R   R   RO   RW   RX   RY   (    (    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyRA   {   s   			("   t
   __future__R    R   R   R"   RD   RF   RR   t   tornado.escapeR   R   t   tornadoR   t   tornado.iostreamR   t   tornado.logR   t   tornado.stack_contextR   t   tornado.tcpserverR	   t   tornado.test.utilR
   R   R   R   t   tornado.testingR   R   R   R   R   t   TestCaseRA   (    (    (    s:   lib/python2.7/site-packages/tornado/test/tcpserver_test.pyt   <module>   s   ""i