a
    xd                      @   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re  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.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   M/var/www/html/Ranjet/env/lib/python3.9/site-packages/tornado/test/runtests.pyall9   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rRt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>F       zItest_runner_factory.<locals>.TornadoTextTestRunner.run.<locals>.<genexpr>z#Some tests were skipped because: %sz, 
)
r   runskippedsetr   writetextwrapfilljoinsorted)r   r   resultZskip_reasonsr   r   r   r   C   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   V   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)levelnologgingERRORr3   WARNINGr2   INFOr1   )r   recordr   r   r   filterZ   s    zLogCounter.filter)r(   r)   r*   __doc__r   r;   r+   r   r   r'   r   r/   S   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 r0   )real
byte_count)r   r>   r   r   r   r   e   s    zCountingStderr.__init__c                 C   s   |  j t|7  _ | j|S r	   )r?   lenr>   r!   )r   datar   r   r   r!   i   s    zCountingStderr.writec                 C   s
   | j  S r	   )r>   flush)r   r   r   r   rB   m   s    zCountingStderr.flushN)r(   r)   r*   r   r!   rB   r   r   r   r   r=   d   s   r=   c                     sd  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 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#< zr|jjf i | W  jd ksԈ jd ksԈ jd ks|jd kr`t	d$ j j j|j tj r`t!d% n^ jd ks2 jd ks2 jd ks2|jd kr^t	d$ j j j|j tj r^t!d% 0 d S )&Nerrorignore)categoryztornado\..*)rE   modulezPlease use assert.* instead)rE   messageztwisted\..*)   )rH      zasyncio\..*z!PY_SSIZE_T_CLEAN will be requiredz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      r   z)main.<locals>.<lambda>.<locals>.<genexpr>)rT   Z	set_debugr   operatoror_)valuesr   r   r   rN      s   )rO   multiplehelprQ   zfail-if-logszTIf true, fail the tests if any log output is produced (unless captured by ExpectLog))rP   rZ   c                 S   s   t t j|  d S r	   )locale	setlocaleLC_ALL)xr   r   r   
set_locale   s    zmain.<locals>.set_localer[   c                      s   t  jd  S r0   )r6   	getLoggerhandlers	addFilterr   Zlog_counterr   r   rN      r   r   FwarningsZ
testRunnerz?logged %d infos, %d warnings, %d errors, and %d bytes to stderrr4   )"rd   filterwarningsImportWarningDeprecationWarningPendingDeprecationWarningBytesWarningsysversion_infoResourceWarningr6   r`   setLevelCRITICALr   strr   rK   r   r/   r   r   r=   Ztornado.testingr.   Ztestingmainr1   r2   r3   r?   rC   r   Zfail_if_logsexit)r_   orig_stderrZcounting_stderrZtornador   r   rc   r   rp   q   s    

rp   __main__)	functoolsr   rT   ior[   r6   rV   r"   rj   r
   rd   Ztornado.httpclientr   Ztornado.httpserverr   Ztornado.netutilr   Ztornado.optionsr   r   r   r   r   r.   Filterr/   IOBaser=   rp   r(   r   r   r   r   <module>   s*   '