B
    \7              $   @   s$  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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mZ 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+d, Zd-d. ZG d/d0 d0ejZG d1d2 d2ejZd3d4 Zed5kr e  dS )6    )reduceN)AsyncHTTPClient)
HTTPServer)Resolver)defineadd_parse_callbackztornado.httputil.doctestsztornado.iostream.doctestsztornado.util.doctestsztornado.test.asyncio_testztornado.test.auth_testztornado.test.autoreload_testztornado.test.concurrent_testz!tornado.test.curl_httpclient_testztornado.test.escape_testztornado.test.gen_testz!tornado.test.http1connection_testztornado.test.httpclient_testztornado.test.httpserver_testztornado.test.httputil_testztornado.test.import_testztornado.test.ioloop_testztornado.test.iostream_testztornado.test.locale_testztornado.test.locks_testztornado.test.netutil_testztornado.test.log_testztornado.test.options_testztornado.test.process_testztornado.test.queues_testztornado.test.routing_testz#tornado.test.simple_httpclient_testztornado.test.tcpclient_testztornado.test.tcpserver_testztornado.test.template_testztornado.test.testing_testztornado.test.twisted_testztornado.test.util_testztornado.test.web_testztornado.test.websocket_testztornado.test.windows_testztornado.test.wsgi_testc               C   s   t jtS )N)unittestZdefaultTestLoaderZloadTestsFromNamesTEST_MODULES r
   r
   4lib/python3.7/site-packages/tornado/test/runtests.pyall:   s    r   c                s   G  fdddt j  S )Nc                   s.   e Zd Z fddZ fddZ  ZS )z2test_runner_factory.<locals>.TornadoTextTestRunnerc                s   |d< t  | j|| d S )Nstream)super__init__)selfargskwargs)TornadoTextTestRunner	__class__stderrr
   r   r   @   s    z;test_runner_factory.<locals>.TornadoTextTestRunner.__init__c          	      sZ   t  | |}|jrVtdd |jD }| jtddt	|  | jd |S )Nc             s   s   | ]\}}|V  qd S )Nr
   ).0testreasonr
   r
   r   	<genexpr>G   s    zItest_runner_factory.<locals>.TornadoTextTestRunner.run.<locals>.<genexpr>z#Some tests were skipped because: %sz, 
)
r   runZskippedsetr   writetextwrapZfilljoinsorted)r   r   resultZskip_reasons)r   r   r
   r   r   D   s    z6test_runner_factory.<locals>.TornadoTextTestRunner.run)__name__
__module____qualname__r   r   __classcell__r
   )r   r   )r   r   r   ?   s   r   )r   ZTextTestRunner)r   r
   )r   r   r   test_runner_factory>   s    r&   c                   s(   e Zd ZdZ fddZdd Z  ZS )
LogCounterz3Counts the number of WARNING or higher log records.c                s(   t t| j|| d | _ | _| _d S )Nr   )r   r'   r   
info_countwarning_counterror_count)r   r   r   )r   r
   r   r   W   s    zLogCounter.__init__c             C   sV   |j tjkr|  jd7  _n6|j tjkr8|  jd7  _n|j tjkrR|  jd7  _dS )N   T)ZlevelnologgingZERRORr*   ZWARNINGr)   INFOr(   )r   recordr
   r
   r   filter[   s    zLogCounter.filter)r"   r#   r$   __doc__r   r/   r%   r
   r
   )r   r   r'   T   s   r'   c               @   s$   e Zd Zdd Zdd Zdd ZdS )CountingStderrc             C   s   || _ d| _d S )Nr   )real
byte_count)r   r2   r
   r
   r   r   f   s    zCountingStderr.__init__c             C   s   |  j t|7  _ | j|S )N)r3   lenr2   r   )r   datar
   r
   r   r   j   s    zCountingStderr.writec             C   s
   | j  S )N)r2   flush)r   r
   r
   r   r6   n   s    zCountingStderr.flushN)r"   r#   r$   r   r   r6   r
   r
   r
   r   r1   e   s   r1   c                 s  t d t jdtd t jdtd t jdtdd t jdtd t jdtdd t jdtdd t jdtdd t jdtdd d	tj  k rd
k rn nt jdtdd t	
dt	j tdtd dd d tdtd tjd tdtd tjd tdtdddd d dd } tdtd | d t  t fdd tj}t|}|t_dd l}i }d|d< t||d< z|jjf | W d  jdks jdks jdks|jdkrt	d  j j j|j td! X d S )"Nerrorignore)categoryztornado\..*)r9   modulezPlease use assert.* instead)r9   messageztwisted\..*)   )r<      zasyncio\..*ztornado.accessZ
httpclientc             S   s   t j| tdddS )NF)Z
allow_ipv6)defaults)r   	configuredict)sr
   r
   r   <lambda>   s   zmain.<locals>.<lambda>)typedefaultcallbackZ
httpserverZresolverZdebug_gcTzhA comma-separated list of gc module debug constants, e.g. DEBUG_STATS or DEBUG_COLLECTABLE,DEBUG_OBJECTSc             S   s   t ttjdd | D S )Nc             s   s   | ]}t t|V  qd S )N)getattrgc)r   vr
   r
   r   r      s    z)main.<locals>.<lambda>.<locals>.<genexpr>)rG   Z	set_debugr   operatoror_)valuesr
   r
   r   rB      s   )rC   ZmultiplehelprE   c             S   s   t t j|  d S )N)locale	setlocaleLC_ALL)xr
   r
   r   
set_locale   s    zmain.<locals>.set_localerM   c                  s   t  jd  S )Nr   )r,   	getLoggerZhandlersZ	addFilterr
   )log_counterr
   r   rB      s    r   FwarningsZ
testRunnerz?logged %d infos, %d warnings, %d errors, and %d bytes to stderrr+   ) rT   filterwarningsImportWarningDeprecationWarningPendingDeprecationWarningBytesWarningsysversion_infoResourceWarningr,   rR   ZsetLevelZCRITICALr   strr   r?   r   r'   r   r   r1   Ztornado.testingr&   Ztestingmainr(   r)   r*   r3   r7   exit)rQ   Zorig_stderrZcounting_stderrZtornador   r
   )rS   r   r^   r   sn    
r^   __main__)	functoolsr   rG   iorM   r,   rI   r   rZ   r   rT   Ztornado.httpclientr   Ztornado.httpserverr   Ztornado.netutilr   Ztornado.optionsr   r   r	   r   r&   ZFilterr'   IOBaser1   r^   r"   r
   r
   r
   r   <module>   sp   o
