ó
¨œž[c           @` sé  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
 m Z d  d l m Z m Z m Z m Z d  d l m Z m Z m Z m Z m Z d  d l m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z y d  d l Z Wn e k
 rd Z n Xe j! d	 „  ƒ Z" d
 e f d „  ƒ  YZ# d e f d „  ƒ  YZ$ d e j% f d „  ƒ  YZ& d e j% f d „  ƒ  YZ' d 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_function(   t   gent   ioloop(   t   app_log(   t   SimpleAsyncHTTPClientt   HTTPTimeoutError(   t   unittestt   skipBefore35t	   exec_testt   ignore_deprecation(   t   AsyncHTTPTestCaset   AsyncTestCaset   bind_unused_portt   gen_testt	   ExpectLog(   t   ApplicationNc         c` sV   t  j j |  ƒ } | t  j |  <z	 d  VWd  | d  k rD t  j |  =n | t  j |  <Xd  S(   N(   t   ost   environt   gett   None(   t   namet   valuet	   old_value(    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   set_environ   s    	t   AsyncTestCaseTestc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c      	   C` sV   t  ƒ  G |  j j d „  ƒ y |  j ƒ  |  j d ƒ Wn t k
 rK n XWd  QXd  S(   Nc           S` s   d d S(   Ni   i    (    (    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   <lambda>&   s    s   did not get expected exception(   R   t   io_loopt   add_callbackt   waitt   failt   ZeroDivisionError(   t   self(    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_exception_in_callback$   s    

c      
   C` sÓ   |  j  j } |  j  j | ƒ  d |  j ƒ |  j ƒ  |  j  j | ƒ  d |  j ƒ |  j |  j ƒ  |  j d d ƒ Wd  QX|  j  j | ƒ  d |  j ƒ t d d ƒ ( |  j |  j ƒ  |  j ƒ  Wd  QXWd  QXd  S(   Ng{®Gáz„?i   t   timeoutt   ASYNC_TEST_TIMEOUTs   0.01(   R   t   timet   add_timeoutt   stopR   t   assertRaisest   failureExceptionR   (   R!   R%   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_wait_timeout-   s    
c         C` sj   |  j  j |  j  j ƒ  d |  j ƒ |  j d d ƒ |  j  j |  j  j ƒ  d |  j ƒ |  j d d ƒ d S(   se   
        This test makes sure that a second call to wait()
        clears the first timeout.
        g        R#   g{®Gáz”?g¸…ëQ¸ž?g333333Ã?N(   R   R&   R%   R'   R   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_subsequent_wait_calls?   s    ##c         ` s    t  ƒ  ‘ d „  ‰  |  j j ‡  f d †  ƒ |  j j ‡  f d †  ƒ t t d ƒ ' |  j t ƒ  } |  j ƒ  Wd  QXWd  QX|  j t	 | j
 ƒ d ƒ Wd  QXd  S(   Nc         S` s   t  |  ƒ ‚ d  S(   N(   t	   Exception(   t   message(    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyR   K   s    c           ` s
   ˆ  d ƒ S(   Ns	   error one(    (    (   R   (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyR   M   s    c           ` s
   ˆ  d ƒ S(   Ns	   error two(    (    (   R   (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyR   N   s    s   multiple unhandled exceptionss	   error one(   R   R   R   R   R   R(   R,   R   t   assertEqualt   strt	   exception(   R!   t   cm(    (   R   s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_multiple_errorsI   s    
	(   t   __name__t
   __module__R"   R*   R+   R2   (    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyR   #   s   				
t   AsyncHTTPTestCaseTestc           B` sV   e  Z e d  „  ƒ Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 RS(   c         C` s,   t  t |  ƒ j ƒ  t ƒ  \ |  _ |  _ d  S(   N(   t   superR5   t
   setUpClassR   t   external_sockt   external_port(   t   cls(    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyR7   W   s    c         C` s   t  ƒ  S(   N(   R   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   get_app^   s    c         C` s8   d } |  j  | ƒ } |  j | j j |  j | ƒ ƒ d  S(   Ns   /path(   t   fetchR.   t   requestt   urlt   get_url(   R!   t   patht   response(    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_fetch_segmenta   s    c         c` s€   d |  j  } t j t d t ƒ ƒ 9 } |  j t ƒ ! } | j | d d d t ƒVWd  QXWd  QX|  j | j	 j
 j j | ƒ d  S(   Ns   http://localhost:%d/patht   force_instancet   request_timeoutgš™™™™™¹?t   raise_error(   R9   t
   contextlibt   closingR   t   TrueR(   R   R<   R.   R0   RA   R=   R>   (   R!   R@   t   clientR1   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_fetch_full_http_urlf   s
    &c         c` s€   d |  j  } t j t d t ƒ ƒ 9 } |  j t ƒ ! } | j | d d d t ƒVWd  QXWd  QX|  j | j	 j
 j j | ƒ d  S(   Ns   https://localhost:%d/pathRC   RD   gš™™™™™¹?RE   (   R9   RF   RG   R   RH   R(   R   R<   R.   R0   RA   R=   R>   (   R!   R@   RI   R1   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_fetch_full_https_urlo   s
    &c         C` s$   |  j  j ƒ  t t |  ƒ j ƒ  d  S(   N(   R8   t   closeR6   R5   t   tearDownClass(   R:   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRM   x   s    (
   R3   R4   t   classmethodR7   R;   RB   R   RJ   RK   RM   (    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyR5   V   s   				t   AsyncTestCaseWrapperTestc           B` sP   e  Z d  „  Z e e j e j ƒ  d k d ƒ d „  ƒ ƒ Z d „  Z	 d „  Z
 RS(   c         C` ss   d t  f d „  ƒ  Y} | d ƒ } t j ƒ  } | j | ƒ |  j t | j ƒ d ƒ |  j d | j d d ƒ d  S(   Nt   Testc           B` s   e  Z d  „  Z RS(   c         s` s	   d  Vd  S(   N(    (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_gen   s    (   R3   R4   RQ   (    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRP   €   s   RQ   i   s   should be decoratedi    (   R   R   t
   TestResultt   runR.   t   lent   errorst   assertIn(   R!   RP   t   testt   result(    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_undecorated_generator   s    t   PyPys+   pypy destructor warnings cannot be silencedc         C` sŸ   t  t ƒ  t ƒ  d ƒ } | d } | d ƒ } t j ƒ  } t j ƒ   t j d ƒ | j | ƒ Wd  QX|  j	 t
 | j ƒ d ƒ |  j d | j d d ƒ d  S(   Nsh   
        class Test(AsyncTestCase):
            async def test_coro(self):
                pass
        RP   t	   test_corot   ignorei   s   should be decoratedi    (   R
   t   globalst   localsR   RR   t   warningst   catch_warningst   simplefilterRS   R.   RT   RU   RV   (   R!   t	   namespacet
   test_classRW   RX   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_undecorated_coroutine‰   s    	
c         C` sq   d t  f d „  ƒ  Y} | d ƒ } t j ƒ  } | j | ƒ |  j t | j ƒ d ƒ |  j t | j ƒ d ƒ d  S(   NRP   c           B` s    e  Z e j d  ƒ d „  ƒ Z RS(   s   don't run thisc         s` s	   d  Vd  S(   N(    (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRQ   ¡   s    (   R3   R4   R   t   skipRQ   (    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRP       s   RQ   i    i   (   R   R   RR   RS   R.   RT   RU   t   skipped(   R!   RP   RW   RX   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt$   test_undecorated_generator_with_skipŸ   s    c         C` ss   d t  f d „  ƒ  Y} | d ƒ } t j ƒ  } | j | ƒ |  j t | j ƒ d ƒ |  j d | j d d ƒ d  S(   NRP   c           B` s   e  Z d  „  Z RS(   c         S` s   d S(   Ni*   (    (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_other_return¬   s    (   R3   R4   Rh   (    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRP   «   s   Rh   i   s%   Return value from test method ignoredi    (   R   R   RR   RS   R.   RT   RU   RV   (   R!   RP   RW   RX   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRh   ª   s    (   R3   R4   RY   R	   R   t   skipIft   platformt   python_implementationRd   Rg   Rh   (    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRO   ~   s   	
	t   SetUpTearDownTestc           B` s   e  Z d  „  Z RS(   c         ` s†   g  ‰  t  j ƒ  } d t  j f ‡  f d †  ƒ  Y} d t | f ‡  f d †  ƒ  Y} | d ƒ j | ƒ d d d g } |  j | ˆ  ƒ d S(	   s  
        This test makes sure that AsyncTestCase calls super methods for
        setUp and tearDown.

        InheritBoth is a subclass of both AsyncTestCase and
        SetUpTearDown, with the ordering so that the super of
        AsyncTestCase will be SetUpTearDown.
        t   SetUpTearDownc           ` s&   e  Z ‡  f d  †  Z ‡  f d †  Z RS(   c         ` s   ˆ  j  d ƒ d  S(   Nt   setUp(   t   append(   R!   (   t   events(    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRn   Ã   s    c         ` s   ˆ  j  d ƒ d  S(   Nt   tearDown(   Ro   (   R!   (   Rp   (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRq   Æ   s    (   R3   R4   Rn   Rq   (    (   Rp   (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRm   Â   s   t   InheritBothc           ` s   e  Z ‡  f d  †  Z RS(   c         ` s   ˆ  j  d ƒ d  S(   NRW   (   Ro   (   R!   (   Rp   (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRW   Ê   s    (   R3   R4   RW   (    (   Rp   (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRr   É   s   RW   Rn   Rq   N(   R   RR   t   TestCaseR   RS   R.   (   R!   RX   Rm   Rr   t   expected(    (   Rp   s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_set_up_tear_down¶   s    	(   R3   R4   Ru   (    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRl   µ   s   t   GenTestc           B` sŒ   e  Z d  „  Z d „  Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z e d
 „  ƒ Z e d „  ƒ Z RS(   c         C` s    t  t |  ƒ j ƒ  t |  _ d  S(   N(   R6   Rv   Rn   t   Falset   finished(   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRn   Ó   s    c         C` s'   |  j  |  j ƒ t t |  ƒ j ƒ  d  S(   N(   t
   assertTrueRx   R6   Rv   Rq   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRq   ×   s    c         C` s   t  |  _ d  S(   N(   RH   Rx   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt	   test_syncÛ   s    c         c` s   t  j Vt |  _ d  S(   N(   R   t   momentRH   Rx   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt
   test_asyncß   s    c         C` sm   t  d d ƒ d „  ƒ } y | |  ƒ |  j d ƒ Wn* t j k
 r_ |  j d t j ƒ  ƒ n Xt |  _ d  S(   NR#   gš™™™™™¹?c         s` s   t  j d ƒ Vd  S(   Ni   (   R   t   sleep(   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRW   æ   s    s   did not get expected exceptions   gen.sleep(1)(	   R   R   R   t   TimeoutErrorRV   t	   tracebackt
   format_excRH   Rx   (   R!   RW   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_timeoutä   s    
c         C` s/   t  d d ƒ d „  ƒ } | |  ƒ t |  _ d  S(   NR#   i   c         s` s   t  j d ƒ Vd  S(   Ngš™™™™™¹?(   R   R}   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRW   ú   s    (   R   RH   Rx   (   R!   RW   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_no_timeoutø   s    
c         C` sE   t  d d ƒ d „  ƒ } t d d ƒ  | |  ƒ Wd  QXt |  _ d  S(   NR#   g      à?c         s` s   t  j d ƒ Vd  S(   Ng      Ð?(   R   R}   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_long_timeout  s    R$   s   0.1(   R   R   RH   Rx   (   R!   Rƒ   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt!   test_timeout_environment_variable  s    c      
   C` s^   t  d d ƒ d „  ƒ } t d d ƒ ( |  j t j ƒ  | |  ƒ Wd  QXWd  QXt |  _ d  S(   NR#   g{®Gáz„?c         s` s   t  j d ƒ Vd  S(   Ni   (   R   R}   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_short_timeout  s    R$   s   0.1(   R   R   R(   R   R~   RH   Rx   (   R!   R…   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt$   test_no_timeout_environment_variable  s
    c         C` s)   t  d „  ƒ } | |  d ƒ t |  _ d  S(   Nc         w` s   |  j  | d ƒ t j Vd  S(   NRW   (   RW   (   R.   R   R{   (   R!   t   args(    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_with_args  s    RW   (   R   RH   Rx   (   R!   Rˆ   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_with_method_args  s    c         C` s,   t  d „  ƒ } | |  d d ƒt |  _ d  S(   Nc         {` s#   |  j  | i d d 6ƒ t j Vd  S(   NRW   (   t   assertDictEqualR   R{   (   R!   t   kwargs(    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_with_kwargs"  s    RW   (   R   RH   Rx   (   R!   RŒ   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_with_method_kwargs!  s    c         C` s*   t  t ƒ  t ƒ  d ƒ } | d |  ƒ d  S(   NsZ   
        @gen_test
        async def test(self):
            self.finished = True
        RW   (   R
   R]   R^   (   R!   Rb   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_native_coroutine*  s    	c         C` s[   t  t ƒ  t ƒ  d ƒ } y | d |  ƒ |  j d ƒ Wn t j k
 rV t |  _ n Xd  S(   Nse   
        @gen_test(timeout=0.1)
        async def test(self):
            await gen.sleep(1)
        RW   s   did not get expected exception(   R
   R]   R^   R   R   R~   RH   Rx   (   R!   Rb   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   test_native_coroutine_timeout4  s    	(   R3   R4   Rn   Rq   R   Rz   R|   R   R‚   R„   R†   R‰   R   R	   RŽ   R   (    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRv   Ò   s   											
s   asyncio module not presentt   GetNewIOLoopTestc           B` s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C` s   t  j j ƒ  S(   N(   R   t   IOLoopt   current(   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   get_new_ioloopF  s    c         C` sE   t  j ƒ  |  _ t  j ƒ  |  _ t  j |  j ƒ t t |  ƒ j ƒ  d  S(   N(	   t   asynciot   get_event_loopt	   orig_loopt   new_event_loopt   new_loopt   set_event_loopR6   R   Rn   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRn   J  s    c         C` sM   t  t |  ƒ j ƒ  |  j t j ƒ  j ƒ  ƒ t j |  j ƒ |  j	 j
 ƒ  d  S(   N(   R6   R   Rq   t   assertFalseR”   R•   t	   is_closedR™   R–   R˜   RL   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyRq   R  s    c         C` s   |  j  |  j j |  j ƒ d  S(   N(   t   assertIsR   t   asyncio_loopR˜   (   R!   (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt	   test_loopY  s    (   R3   R4   R“   Rn   Rq   Rž   (    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyR   D  s   			t   __main__(-   t
   __future__R    R   R   t   tornadoR   R   t   tornado.logR   t   tornado.simple_httpclientR   R   t   tornado.test.utilR   R	   R
   R   t   tornado.testingR   R   R   R   R   t   tornado.webR   RF   R   Rj   R   R_   R”   t   ImportErrorR   t   contextmanagerR   R   R5   Rs   RO   Rl   Rv   Ri   R   R3   t   main(    (    (    s8   lib/python2.7/site-packages/tornado/test/testing_test.pyt   <module>   s2   "(
3(7r