ó
¨œž[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 Z d  d l	 Z	 d  d l
 Z
 d  d l m Z m Z 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 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( y d  d l) m* Z* Wn e+ k
 rd Z* n Xd e  f d „  ƒ  YZ- d e  f d „  ƒ  YZ. d e f d „  ƒ  YZ/ d e0 f d „  ƒ  YZ1 d e2 f d „  ƒ  YZ3 d e3 f d „  ƒ  YZ4 d e3 f d „  ƒ  YZ5 d e3 f d „  ƒ  YZ6 d e2 f d „  ƒ  YZ7 d  e7 e  f d! „  ƒ  YZ8 d" e7 e  f d# „  ƒ  YZ9 d$ e7 e  f d% „  ƒ  YZ: e% j; e* d k d& ƒ d' e  f d( „  ƒ  Yƒ Z< e= d) k rØe% j> ƒ  n  d S(*   i    (   t   absolute_importt   divisiont   print_functionN(   t   Futuret   return_futuret   ReturnValueIgnoredErrort   run_on_executort"   future_set_result_unless_cancelled(   t   utf8t
   to_unicode(   t   gen(   t   IOLoop(   t   IOStream(   t   app_log(   t   stack_context(   t	   TCPServer(   t   AsyncTestCaset	   ExpectLogt   bind_unused_portt   gen_test(   t   unittestt   skipBefore35t	   exec_testt   ignore_deprecation(   t   futurest   MiscFutureTestc           B` s   e  Z d  „  Z RS(   c         C` s¤   t  ƒ  } t | d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  ƒ t  ƒ  } | j ƒ  | j ƒ  } t | d ƒ |  j | j ƒ  | ƒ | s  |  j | j ƒ  d ƒ n  d  S(   Ni*   (   R   R   t   assertEqualt   resultt   assertFalset	   cancelledt   cancel(   t   selft   futt   is_cancelled(    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt'   test_future_set_result_unless_cancelled.   s    		
(   t   __name__t
   __module__R"   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR   ,   s   t   ReturnFutureTestc           B` s#  e  Z e ƒ  _ e d  „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 Wd QXd „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z RS(   c         C` s   | d ƒ d  S(   Ni*   (    (   R   t   callback(    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   sync_future?   s    c         C` s   |  j  j | d ƒ d  S(   Ni*   (   t   io_loopt   add_callback(   R   R&   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   async_futureC   s    c         C` s   d d d  S(   Ni   i    (    (   R   R&   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   immediate_failureG   s    c         C` s   |  j  j d „  ƒ d  S(   Nc           S` s   d d S(   Ni   i    (    (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   <lambda>M   s    (   R(   R)   (   R   R&   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   delayed_failureK   s    c         C` s   d S(   Ni*   (    (   R   R&   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   return_valueO   s    c         C` s   | ƒ  d  S(   N(    (   R   R&   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   no_result_futureV   s    Nc         C` sl   |  j  t ƒ  |  j d |  j ƒ Wd  QX|  j j |  j j ƒ  d |  j ƒ |  j ƒ  } |  j | d  ƒ d  S(   NR&   gš™™™™™©?(
   t   assertRaisest   ZeroDivisionErrorR+   t   stopR(   t   add_timeoutt   timet   waitt   assertIst   None(   R   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_immediate_failureZ   s
    #c         C` s-   |  j  t ƒ  |  j d |  j ƒ Wd  QXd  S(   NR&   (   R0   R   R.   R2   (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_return_valuec   s    c         C` s[   t  ƒ   |  j d |  j ƒ } Wd  QX|  j ƒ  } |  j | d ƒ |  j | j ƒ  d ƒ d  S(   NR&   i*   (   R   R'   R2   R5   R   R   (   R   t   futureR   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_callback_kwg   s
    
c         C` sX   t  ƒ   |  j |  j ƒ } Wd  QX|  j ƒ  } |  j | d ƒ |  j | j ƒ  d ƒ d  S(   Ni*   (   R   R'   R2   R5   R   R   (   R   R:   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_callback_positionaln   s
    
c         C` s&   |  j  ƒ  } |  j | j ƒ  d ƒ d  S(   Ni*   (   R'   R   R   (   R   R:   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_no_callbackw   s    c         C` s,   |  j  d d  ƒ } |  j | j ƒ  d ƒ d  S(   NR&   i*   (   R'   R7   R   R   (   R   R:   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_none_callback_kw{   s    c         C` s)   |  j  d  ƒ } |  j | j ƒ  d ƒ d  S(   Ni*   (   R'   R7   R   R   (   R   R:   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_none_callback_pos€   s    c         C` sk   |  j  ƒ  } |  j | j ƒ  ƒ |  j j | |  j ƒ |  j ƒ  } |  j | | ƒ |  j | j	 ƒ  d ƒ d  S(   Ni*   (
   R*   R   t   doneR(   t
   add_futureR2   R5   R6   R   R   (   R   R:   t   future2(    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_async_future„   s    c         c` s!   |  j  ƒ  V} |  j | d ƒ d  S(   Ni*   (   R*   R   (   R   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_async_future_genŒ   s    c         C` sr   |  j  ƒ  } t ƒ  ' |  j j | |  j ƒ |  j ƒ  } Wd  QX|  j | | ƒ |  j t ƒ  | j	 ƒ  Wd  QXd  S(   N(
   R-   R   R(   RA   R2   R5   R6   R0   R1   R   (   R   R:   RB   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_delayed_failure‘   s    
c         C` sB   t  ƒ   t d „  ƒ } Wd  QX| ƒ  } |  j | j ƒ  d ƒ d  S(   Nc          [` s   |  d d ƒ d  S(   NR&   i*   (    (   t   kwargs(    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   fœ   s    i*   (   R   R   R   R   (   R   RG   R:   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_kw_only_callbackš   s    
	c         C` s:   t  ƒ   |  j d d „  ƒ Wd  QX|  j t |  j ƒ d  S(   NR&   c         S` s   d d S(   Ni   i    (    (   R:   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR,   ¤   s    (   R   R'   R0   R1   R5   (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_error_in_callback¢   s    
c         C` sL   t  ƒ   |  j |  j ƒ } Wd  QX|  j ƒ  } |  j | d  ƒ | j ƒ  d  S(   N(   R   R/   R2   R5   R6   R7   R   (   R   R:   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_no_result_future©   s
    
c         ` sU   t  ƒ    ˆ  j d ‡  f d †  ƒ } Wd  QXˆ  j ƒ  } ˆ  j | d  ƒ | j ƒ  d  S(   NR&   c           ` s
   ˆ  j  ƒ  S(   N(   R2   (    (   R   (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR,   ³   s    (   R   R/   R5   R6   R7   R   (   R   R:   R   (    (   R   s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_no_result_future_callback±   s
    
!c      	   #` s‹   t  ƒ  | t t j ‡  f d †  ƒ ƒ } y | ƒ  Vˆ  j d ƒ Wn= t k
 r€ t j t j	 ƒ  d ƒ } ˆ  j
 ˆ  j | ƒ n XWd  QXd  S(   Nc         3` sa   t  j ˆ  j j ƒ Vy d d Wn: t k
 r\ t j t j ƒ  d d d ƒd ˆ  _	 ‚  n Xd  S(   Ni   i    i   t   limit(
   R
   t   TaskR(   R)   R1   t	   tracebackt
   extract_tbt   syst   exc_infot   expected_frame(   R&   (   R   (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRG   »   s     s   didn't get expected exceptioni   (   R   R   R
   t   enginet   failR1   RN   RO   RP   RQ   t   assertInRR   (   R   RG   t   tb(    (   R   s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_future_traceback_legacy¸   s    
	c         #` su   t  j ‡  f d †  ƒ } y | ƒ  Vˆ  j d ƒ Wn= t k
 rp t j t j ƒ  d ƒ } ˆ  j ˆ  j	 | ƒ n Xd  S(   Nc           3` sU   t  j Vy d d Wn: t k
 rP t j t j ƒ  d d d ƒd ˆ  _ ‚  n Xd  S(   Ni   i    i   RL   (   R
   t   momentR1   RN   RO   RP   RQ   RR   (    (   R   (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRG   Î   s     s   didn't get expected exceptioni   (
   R
   t	   coroutineRT   R1   RN   RO   RP   RQ   RU   RR   (   R   RG   RV   (    (   R   s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_future_tracebackÌ   s    	c         c` s‘   t  j ƒ  j j d ƒ r7 d „  } |  j j j | ƒ n  t j d „  ƒ } | ƒ  } t	 t
 d ƒ * t j Vt j Vt j V~ t j ƒ  Wd  QXd  S(   Nt   AsyncIOLoopc         S` s*   t  j d | d t | j d ƒ ƒ ƒ d  S(   Ns   %s: %st   messaget	   exception(   R   t   errort   typet   get(   t   loopt   context(    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   exc_handlerã   s    c           s` s   t  j Vd d d  S(   Ni   i    (   R
   RX   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRG   è   s    s>   (?s)Future.* exception was never retrieved:.*ZeroDivisionError(   R   t   configured_classR#   t   endswithR(   t   asyncio_loopt   set_exception_handlerR
   RY   R   R   RX   t   gct   collect(   R   Rc   RG   t   g(    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_uncaught_exception_logÞ   s    		
(   R#   R$   R   R   R'   R*   R+   R-   R.   R/   R8   R9   R;   R<   R=   R>   R?   RC   R   RD   RE   RH   RI   RJ   RK   RW   RZ   Rk   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR%   =   s0   
																t	   CapServerc           B` s   e  Z e j d  „  ƒ Z RS(   c         c` si   | j  d ƒ V} t | ƒ } | | j ƒ  k r> | j d ƒ n | j t d | j ƒ  ƒ ƒ | j ƒ  d  S(   Ns   
s   error	already capitalized
s   ok	%s(   t
   read_untilR	   t   uppert   writeR   t   close(   R   t   streamt   addresst   data(    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   handle_stream   s    (   R#   R$   R
   RY   Rt   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRl   ÿ   s   t   CapErrorc           B` s   e  Z RS(    (   R#   R$   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRu     s   t   BaseCapClientc           B` s   e  Z d  „  Z d „  Z RS(   c         C` s   | |  _  d  S(   N(   t   port(   R   Rw   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   __init__  s    c         C` sD   t  j d t | ƒ ƒ j ƒ  \ } } | d k r4 | St | ƒ ‚ d  S(   Ns
   (.*)	(.*)
t   ok(   t   ret   matchR	   t   groupsRu   (   R   Rs   t   statusR\   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   process_response  s    $(   R#   R$   Rx   R~   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRv     s   	t   ManualCapClientc           B` s&   e  Z d d  „ Z d „  Z d „  Z RS(   c         ` s‘   t  j d ƒ | |  _ t t j ƒ  ƒ |  _ |  j j d |  j f d |  j ƒt	 ƒ  |  _
 ˆ  d  k	 rŠ |  j
 j t j ‡  f d †  ƒ ƒ n  |  j
 S(   Nt
   capitalizes	   127.0.0.1R&   c         ` s   ˆ  |  j  ƒ  ƒ S(   N(   R   (   R:   (   R&   (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR,   &  s    (   t   loggingt   debugt   request_dataR   t   socketRq   t   connectRw   t   handle_connectR   R:   R7   t   add_done_callbackR   t   wrap(   R   Rƒ   R&   (    (   R&   s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR€     s    	
	c         C` sG   t  j d ƒ |  j j t |  j d ƒ ƒ |  j j d d |  j ƒd  S(   NR†   s   
R&   (   R   R‚   Rq   Ro   R   Rƒ   Rm   t   handle_read(   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR†   )  s    c         C` sa   t  j d ƒ |  j j ƒ  y |  j j |  j | ƒ ƒ Wn# t k
 r\ } |  j j | ƒ n Xd  S(   NR‰   (	   R   R‚   Rq   Rp   R:   t
   set_resultR~   Ru   t   set_exception(   R   Rs   t   e(    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR‰   .  s    N(   R#   R$   R7   R€   R†   R‰   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR     s   	t   DecoratorCapClientc           B` s9   e  Z e ƒ   e d  „  ƒ Z Wd QXd „  Z d „  Z RS(   c         C` sZ   t  j d ƒ | |  _ t t j ƒ  ƒ |  _ |  j j d |  j f d |  j ƒ| |  _	 d  S(   NR€   s	   127.0.0.1R&   (
   R   R‚   Rƒ   R   R„   Rq   R…   Rw   R†   R&   (   R   Rƒ   R&   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR€   9  s    	
Nc         C` sG   t  j d ƒ |  j j t |  j d ƒ ƒ |  j j d d |  j ƒd  S(   NR†   s   
R&   (   R   R‚   Rq   Ro   R   Rƒ   Rm   R‰   (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR†   B  s    c         C` s4   t  j d ƒ |  j j ƒ  |  j |  j | ƒ ƒ d  S(   NR‰   (   R   R‚   Rq   Rp   R&   R~   (   R   Rs   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR‰   G  s    (   R#   R$   R   R   R€   R†   R‰   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR   7  s   
		t   GeneratorCapClientc           B` s   e  Z e j d  „  ƒ Z RS(   c         c` sª   t  j d ƒ t t j ƒ  ƒ } t  j d ƒ | j d |  j f ƒ V| j t | d ƒ ƒ t  j d ƒ | j d ƒ V} t  j d ƒ | j	 ƒ  t
 j |  j | ƒ ƒ ‚ d  S(   NR€   t
   connectings	   127.0.0.1s   
t   readingt	   returning(   R   R‚   R   R„   R…   Rw   Ro   R   Rm   Rp   R
   t   ReturnR~   (   R   Rƒ   Rq   Rs   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR€   N  s    
(   R#   R$   R
   RY   R€   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRŽ   M  s   t   ClientTestMixinc           B` sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C` sZ   t  t |  ƒ j ƒ  t ƒ  |  _ t ƒ  \ } } |  j j | g ƒ |  j d | ƒ |  _ d  S(   NRw   (	   t   superR“   t   setUpRl   t   serverR   t   add_socketst   client_classt   client(   R   t   sockRw   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR•   ]  s
    c         C` s$   |  j  j ƒ  t t |  ƒ j ƒ  d  S(   N(   R–   R2   R”   R“   t   tearDown(   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR›   d  s    c         C` sI   t  ƒ   |  j j d d |  j ƒWd  QX|  j ƒ  } |  j | d ƒ d  S(   Nt   helloR&   t   HELLO(   R   R™   R€   R2   R5   R   (   R   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_callbackh  s    
c         C` sC   t  ƒ  4 |  j j d d |  j ƒ|  j t d |  j ƒ Wd  QXd  S(   NR   R&   s   already capitalized(   R   R™   R€   R2   t   assertRaisesRegexpRu   R5   (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_callback_errorn  s    
c         C` sL   |  j  j d ƒ } |  j j | |  j ƒ |  j ƒ  |  j | j ƒ  d ƒ d  S(   NRœ   R   (   R™   R€   R(   RA   R2   R5   R   R   (   R   R:   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_futures  s    
c         C` sL   |  j  j d ƒ } |  j j | |  j ƒ |  j ƒ  |  j t d | j ƒ d  S(   NR   s   already capitalized(	   R™   R€   R(   RA   R2   R5   RŸ   Ru   R   (   R   R:   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_future_errory  s    
c         ` s,   t  j ‡  f d †  ƒ } ˆ  j j | ƒ d  S(   Nc          3` s'   ˆ  j  j d ƒ V}  ˆ  j |  d ƒ d  S(   NRœ   R   (   R™   R€   R   (   R   (   R   (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRG   €  s    (   R
   RY   R(   t   run_sync(   R   RG   (    (   R   s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_generator  s    c         ` s,   t  j ‡  f d †  ƒ } ˆ  j j | ƒ d  S(   Nc           3` s.   ˆ  j  t d ƒ  ˆ  j j d ƒ VWd  QXd  S(   Ns   already capitalizedR   (   RŸ   Ru   R™   R€   (    (   R   (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRG   ‡  s    (   R
   RY   R(   R£   (   R   RG   (    (   R   s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_generator_error†  s    (
   R#   R$   R•   R›   Rž   R    R¡   R¢   R¤   R¥   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR“   \  s   							t   ManualClientTestc           B` s    e  Z e Z d  „  Z d „  Z RS(   c         C` sC   t  j ƒ  |  _ |  j j ƒ  t  j d t ƒ t t |  ƒ j ƒ  d  S(   Nt   ignore(	   t   warningst   catch_warningst   warning_catchert	   __enter__t   simplefiltert   DeprecationWarningR”   R¦   R•   (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR•   ‘  s    c         C` s-   t  t |  ƒ j ƒ  |  j j d  d  d  ƒ d  S(   N(   R”   R¦   R›   Rª   t   __exit__R7   (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR›   —  s    (   R#   R$   R   R˜   R•   R›   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR¦   Ž  s   	t   DecoratorClientTestc           B` s    e  Z e Z d  „  Z d „  Z RS(   c         C` sC   t  j ƒ  |  _ |  j j ƒ  t  j d t ƒ t t |  ƒ j ƒ  d  S(   NR§   (	   R¨   R©   Rª   R«   R¬   R­   R”   R¯   R•   (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR•   Ÿ  s    c         C` s-   t  t |  ƒ j ƒ  |  j j d  d  d  ƒ d  S(   N(   R”   R¯   R›   Rª   R®   R7   (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR›   ¥  s    (   R#   R$   R   R˜   R•   R›   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR¯   œ  s   	t   GeneratorClientTestc           B` s   e  Z e Z RS(    (   R#   R$   RŽ   R˜   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR°   ª  s   s%   concurrent.futures module not presentt   RunOnExecutorTestc           B` sJ   e  Z e d  „  ƒ Z e d „  ƒ Z e d „  ƒ Z e e d „  ƒ ƒ Z RS(   c         c` s@   d t  f d „  ƒ  Y} | ƒ  } | j ƒ  V} |  j | d ƒ d  S(   Nt   Objectc           B` s    e  Z d  „  Z e d „  ƒ Z RS(   c         S` s   t  j j d ƒ |  _ d  S(   Ni   (   R   t   threadt   ThreadPoolExecutort   executor(   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRx   ³  s    c         S` s   d S(   Ni*   (    (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRG   ¶  s    (   R#   R$   Rx   R   RG   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR²   ²  s   	i*   (   t   objectRG   R   (   R   R²   t   ot   answer(    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_no_calling°  s    	c         c` s@   d t  f d „  ƒ  Y} | ƒ  } | j ƒ  V} |  j | d ƒ d  S(   NR²   c           B` s#   e  Z d  „  Z e ƒ  d „  ƒ Z RS(   c         S` s   t  j j d ƒ |  _ d  S(   Ni   (   R   R³   R´   Rµ   (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRx   Á  s    c         S` s   d S(   Ni*   (    (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRG   Ä  s    (   R#   R$   Rx   R   RG   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR²   À  s   	i*   (   R¶   RG   R   (   R   R²   R·   R¸   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_call_with_no_args¾  s    	c         c` s@   d t  f d „  ƒ  Y} | ƒ  } | j ƒ  V} |  j | d ƒ d  S(   NR²   c           B` s)   e  Z d  „  Z e d d ƒ d „  ƒ Z RS(   c         S` s   t  j j d ƒ |  _ d  S(   Ni   (   R   R³   R´   t   _Object__executor(   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRx   Ï  s    Rµ   R»   c         S` s   d S(   Ni*   (    (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRG   Ò  s    (   R#   R$   Rx   R   RG   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR²   Î  s   	i*   (   R¶   RG   R   (   R   R²   R·   R¸   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_call_with_executorÌ  s    	c         c` sY   d t  f d „  ƒ  Y} | ƒ  } t t ƒ  t ƒ  d ƒ } | d ƒ  V} |  j | d ƒ d  S(   NR²   c           B` s#   e  Z d  „  Z e ƒ  d „  ƒ Z RS(   c         S` s   t  j j d ƒ |  _ d  S(   Ni   (   R   R³   R´   Rµ   (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRx   Þ  s    c         S` s   d S(   Ni*   (    (   R   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyRG   á  s    (   R#   R$   Rx   R   RG   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR²   Ý  s   	s[   
        async def f():
            answer = await o.f()
            return answer
        RG   i*   (   R¶   R   t   globalst   localsR   (   R   R²   R·   t	   namespaceR   (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   test_async_awaitÚ  s    		(   R#   R$   R   R¹   Rº   R¼   R   RÀ   (    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyR±   ®  s
   t   __main__(?   t
   __future__R    R   R   Rh   R   Rz   R„   RP   RN   R¨   t   tornado.concurrentR   R   R   R   R   t   tornado.escapeR   R	   t   tornadoR
   t   tornado.ioloopR   t   tornado.iostreamR   t   tornado.logR   R   t   tornado.tcpserverR   t   tornado.testingR   R   R   R   t   tornado.test.utilR   R   R   R   t
   concurrentR   t   ImportErrorR7   R   R%   Rl   t	   ExceptionRu   R¶   Rv   R   R   RŽ   R“   R¦   R¯   R°   t   skipIfR±   R#   t   main(    (    (    s;   lib/python2.7/site-packages/tornado/test/concurrent_test.pyt   <module>   sJ   (""
Â2@