o
    )ZhN                     @   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mZ g dZdd	 Zd
d ZG dd dejZG dd dejZdd Zedkrqe  dS dS )    )reduceN)AsyncHTTPClient)
HTTPServer)Resolver)defineadd_parse_callbackoptions)$ztornado.httputil.doctestsztornado.iostream.doctestsztornado.util.doctestsztornado.test.asyncio_testztornado.test.auth_testztornado.test.autoreload_testztornado.test.circlerefs_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.wsgi_testc                   C   s   t jtS N)unittestZdefaultTestLoaderZloadTestsFromNamesTEST_MODULES r   r   L/var/www/html/lang_env/lib/python3.10/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|i | d S )Nstream)super__init__selfargskwargs)	__class__stderrr   r   r   @   s   z;test_runner_factory.<locals>.TornadoTextTestRunner.__init__c              	      sV   t  |}|jr)tdd |jD }| jtddt	|  | jd |S )Nc                 s   s    | ]\}}|V  qd S r	   r   ).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textwrapfilljoinsorted)r   r   resultZskip_reasonsr   r   r   r   D   s   z6test_runner_factory.<locals>.TornadoTextTestRunner.run)__name__
__module____qualname__r   r   __classcell__r   r   r%   r   TornadoTextTestRunner?   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  j|i | d | _ | _| _d S Nr   )r   r   
info_countwarning_counterror_countr   r%   r   r   r   W   s   zLogCounter.__init__c                 C   sZ   |j tjkr|  jd7  _dS |j tjkr|  jd7  _dS |j tjkr+|  jd7  _dS )N   T)levelnologgingERRORr1   WARNINGr0   INFOr/   )r   recordr   r   r   filter[   s   zLogCounter.filter)r&   r'   r(   __doc__r   r9   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 r.   )real
byte_count)r   r<   r   r   r   r   f   s   
zCountingStderr.__init__c                 C   s   |  j t|7  _ | j|S r	   )r=   lenr<   r   )r   datar   r   r   r   j   s   zCountingStderr.writec                 C   s
   | j  S r	   )r<   flush)r   r   r   r   r@   n   s   
zCountingStderr.flushN)r&   r'   r(   r   r   r@   r   r   r   r   r;   e   s    r;   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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 t	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< z9|jjdi | W  jdks jdks jdks|jdkrtd j j j|j tjrtd d S d S d S  jdks jdks jdks|jdkrtd j j j|j tjrtd w w w ) Nerrorignore)categoryztornado\..*)rC   modulez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
httpserver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 r	   )getattrgc)r   vr   r   r   r      s    z)main.<locals>.<lambda>.<locals>.<genexpr>)rO   Z	set_debugr   operatoror_)valuesr   r   r   rI      s    )rJ   ZmultiplehelprL   zfail-if-logszTIf true, fail the tests if any log output is produced (unless captured by ExpectLog))rK   rT   c                 S   s   t t j|  d S r	   )locale	setlocaleLC_ALL)xr   r   r   
set_locale   s   zmain.<locals>.set_localerU   c                      s   t  jd  S r.   )r4   	getLoggerhandlers	addFilterr   Zlog_counterr   r   rI      s    r   FwarningsZ
testRunnerz?logged %d infos, %d warnings, %d errors, and %d bytes to stderrr2   r   )r^   filterwarningsImportWarningDeprecationWarningPendingDeprecationWarningr4   rZ   setLevelCRITICALr   strr   rF   r   r-   r   sysr   r;   Ztornado.testingr,   Ztestingmainr/   r0   r1   r=   rA   r   Zfail_if_logsexit)rY   Zorig_stderrZcounting_stderrtornador   r   r]   r   rg   r   s   









rg   __main__)	functoolsr   rO   iorU   r4   rQ   r    rf   r
   r^   Ztornado.httpclientr   Ztornado.httpserverr   Ztornado.netutilr   Ztornado.optionsr   r   r   r   r   r,   Filterr-   IOBaser;   rg   r&   r   r   r   r   <module>   s.    (`
