σ
¨[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 d  d l m Z d  d l m Z d  d l m Z d  d l m Z m Z m Z d  d l m Z y e Wn! e k
 rd  d	 l m Z n Xd
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. g% Z d/   Z d0   Z d1 e j f d2     YZ  d3 e j! f d4     YZ" d5   Z# e$ d6 k rΰe#   n  d S(7   i    (   t   absolute_importt   divisiont   print_functionN(   t   AsyncHTTPClient(   t
   HTTPServer(   t   IOLoop(   t   Resolver(   t   definet   optionst   add_parse_callback(   t   unittest(   t   reduces   tornado.httputil.doctestss   tornado.iostream.doctestss   tornado.util.doctestss   tornado.test.asyncio_tests   tornado.test.auth_tests   tornado.test.autoreload_tests   tornado.test.concurrent_tests!   tornado.test.curl_httpclient_tests   tornado.test.escape_tests   tornado.test.gen_tests!   tornado.test.http1connection_tests   tornado.test.httpclient_tests   tornado.test.httpserver_tests   tornado.test.httputil_tests   tornado.test.import_tests   tornado.test.ioloop_tests   tornado.test.iostream_tests   tornado.test.locale_tests   tornado.test.locks_tests   tornado.test.netutil_tests   tornado.test.log_tests   tornado.test.options_tests   tornado.test.process_tests   tornado.test.queues_tests   tornado.test.routing_tests#   tornado.test.simple_httpclient_tests   tornado.test.stack_context_tests   tornado.test.tcpclient_tests   tornado.test.tcpserver_tests   tornado.test.template_tests   tornado.test.testing_tests   tornado.test.twisted_tests   tornado.test.util_tests   tornado.test.web_tests   tornado.test.websocket_tests   tornado.test.windows_tests   tornado.test.wsgi_testc           C` s   t  j j t  S(   N(   R
   t   defaultTestLoadert   loadTestsFromNamest   TEST_MODULES(    (    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyt   all@   s    c         ` s&   d t  j f    f d     Y    S(   Nt   TornadoTextTestRunnerc           ` s)   e  Z    f d    Z   f d   Z RS(   c         ` s#   t    |   j d  | |  d  S(   Nt   stream(   t   supert   __init__(   t   selft   argst   kwargs(   R   t   stderr(    s4   lib/python2.7/site-packages/tornado/test/runtests.pyR   F   s    c         ` s}   t    |   j |  } | j ry t d   | j D  } |  j j t j d d j t	 |     |  j j d  n  | S(   Nc         s` s   |  ] \ } } | Vq d  S(   N(    (   t   .0t   testt   reason(    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pys	   <genexpr>L   s    s#   Some tests were skipped because: %ss   , s   
(
   R   t   runt   skippedt   setR   t   writet   textwrapt   fillt   joint   sorted(   R   R   t   resultt   skip_reasons(   R   (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyR   I   s    	(   t   __name__t
   __module__R   R   (    (   R   R   (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyR   E   s   (   R
   t   TextTestRunner(   R   (    (   R   R   s4   lib/python2.7/site-packages/tornado/test/runtests.pyt   test_runner_factoryD   s    "t
   LogCounterc           B` s    e  Z d  Z d   Z d   Z RS(   s3   Counts the number of WARNING or higher log records.c         O` s1   t  j j |  | |  d |  _ |  _ |  _ d  S(   Ni    (   t   loggingt   FilterR   t
   info_countt   warning_countt   error_count(   R   R   R   (    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyR   W   s    c         C` sp   | j  t j k r$ |  j d 7_ nH | j  t j k rH |  j d 7_ n$ | j  t j k rl |  j d 7_ n  t S(   Ni   (	   t   levelnoR*   t   ERRORR.   t   WARNINGR-   t   INFOR,   t   True(   R   t   record(    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyt   filter\   s    (   R%   R&   t   __doc__R   R5   (    (    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyR)   U   s   	t   CountingStderrc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s   | |  _  d |  _ d  S(   Ni    (   t   realt
   byte_count(   R   R8   (    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyR   g   s    	c         C` s%   |  j  t |  7_  |  j j |  S(   N(   R9   t   lenR8   R   (   R   t   data(    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyR   k   s    c         C` s   |  j  j   S(   N(   R8   t   flush(   R   (    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyR<   o   s    (   R%   R&   R   R   R<   (    (    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyR7   f   s   		c       
   ` s  d d  l  }  |  j d  |  j d d t |  j d d t |  j d d t d d |  j d d t |  j d d t d d |  j d d t d d |  j d d t d d |  j d d t d d	 d% t j k  oι d& k  n r
|  j d d t d d n  t	 j
 d  j t	 j  t d d t d d  d d   t d d t d d  d t j t d d t d d  t d d t t d d t d d  d t j t d d t d t d d d d   t d d t d d  d d   d   } t |  t     t   f d    t j } t |  t _ d d  l } i  } t j d' k r_t | d! <n  t |  | d" <z | j j |   Wd    j d k sΕ  j d k sΕ  j d k sΕt j j  d k rύt	 j! d#   j   j   j t j j   t j" d$  n  Xd  S((   Ni    t   errort   ignoret   categoryt   modules   tornado\..*t   messages   Please use assert.* insteads   twisted\..*i   i   s   asyncio\..*s   tornado.accesst
   httpclientt   typet   defaultt   callbackc         S` s   t  j |  d t d t  S(   Nt   defaultst
   allow_ipv6(   R   t	   configuret   dictt   False(   t   s(    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyt   <lambda>   s   t
   httpservert   ioloopt   ioloop_time_monotonict   resolvert   debug_gct   multiplet   helpsh   A comma-separated list of gc module debug constants, e.g. DEBUG_STATS or DEBUG_COLLECTABLE,DEBUG_OBJECTSc         S` s#   t  j t t j d   |  D   S(   Nc         s` s   |  ] } t  t |  Vq d  S(   N(   t   getattrt   gc(   R   t   v(    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pys	   <genexpr>¨   s    (   RU   t	   set_debugR   t   operatort   or_(   t   values(    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyRL   §   s   t   localec         S` s   t  j t  j |   S(   N(   R[   t	   setlocalet   LC_ALL(   t   x(    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyRL   ͺ   s    c          S` sp   i  }  t  j rG d d l m } | d  k r: t d   n  | |  d <n  t  j sV |  rl t j t  j |   n  d  S(   Ni    (   t   monotonic_times   monotonic clock not foundt	   time_func(	   R   RO   t   tornado.platform.autoR_   t   Nonet   RuntimeErrorRN   R   RH   (   R   R_   (    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyt   configure_ioloop¬   s    	c           ` s   t  j   j d j    S(   Ni    (   R*   t	   getLoggert   handlerst	   addFilter(    (   t   log_counter(    s4   lib/python2.7/site-packages/tornado/test/runtests.pyRL   Ή   s    i   t   warningst
   testRunners?   logged %d infos, %d warnings, %d errors, and %d bytes to stderri   (   i   (   i   i   (   i   i   (#   Ri   t   filterwarningst   ImportWarningt   DeprecationWarningt   PendingDeprecationWarningt   BytesWarningt   syst   version_infot   ResourceWarningR*   Re   t   setLevelt   CRITICALR   t   strRb   R   RH   RJ   R   R3   R	   R)   R   R7   t   tornado.testingR(   t   testingt   mainR,   R-   R.   R9   R=   t   exit(   Ri   Rd   t   orig_stderrt   tornadoR   (    (   Rh   s4   lib/python2.7/site-packages/tornado/test/runtests.pyRx   s   sl    





		
			t   __main__(%   t
   __future__R    R   R   RU   t   ioR[   R*   RX   R   Rp   t   tornado.httpclientR   t   tornado.httpserverR   t   tornado.ioloopR   t   tornado.netutilR   t   tornado.optionsR   R   R	   t   tornado.test.utilR
   R   t	   NameErrort	   functoolsR   R   R(   R+   R)   t   IOBaseR7   Rx   R%   (    (    (    s4   lib/python2.7/site-packages/tornado/test/runtests.pyt   <module>   sz   				g