o
    tPf                     @   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 ZG dd dej	Z
e ZG dd deZd	d
 ZedkrCe  dS dS )    )print_functionNc                  O   s   d S N )_args_kwargsr   r   \/var/www/html/humari/django-venv/lib/python3.10/site-packages/gevent/tests/test__doctests.py
myfunction   s   r   c                   @   s    e Zd ZdZdd Zdd ZdS )RENormalizingOutputCheckerzS
    Pattern-normalizing output checker. Inspired by one used in zope.testing.
    c                 C   s   dd |D | _ d S )Nc                 S   s   g | ]\}}t |j|qS r   )	functoolspartialsub).0rereplacementr   r   r   
<listcomp>   s    z7RENormalizingOutputChecker.__init__.<locals>.<listcomp>)transformers)selfpatternsr   r   r   __init__   s   z#RENormalizingOutputChecker.__init__c                 C   s:   ||krdS | j D ]
}||}||}q	tj| |||S )NT)r   doctestOutputCheckercheck_output)r   wantgotoptionflagstransformerr   r   r   r      s   

z'RENormalizingOutputChecker.check_outputN)__name__
__module____qualname____doc__r   r   r   r   r   r   r	      s    r	   c                   @   s0   e Zd Zdd Zdd Zdd ZeZdd Zd	S )
Modulesc                 C   s>   ddl m} || _t | _|ddD ]
\}}| || qd S )Nr   )walk_modulesT)	recursive)gevent.testingr!   allowed_modulessetmodules
add_module)r   r$   r!   pathmoduler   r   r   r   *   s   zModules.__init__c                 C   s4   | j r
|| j vr
d S |tv rd S | j||f d S r   )r$   FORBIDDEN_MODULESr&   add)r   namer(   r   r   r   r'   3   s
   zModules.add_modulec                 C   
   t | jS r   )boolr&   r   r   r   r   __bool__:      
zModules.__bool__c                 C   r-   r   )iterr&   r/   r   r   r   __iter__?   r1   zModules.__iter__N)r   r   r   r   r'   r0   __nonzero__r3   r   r   r   r   r    (   s    	r    c               	   C   s  t  } dt jd< dd l}ddlm} ddlm} ddlm} |jr(t	
dh ztjdd  }tjd	 t||d
}t|}|sLtdd|  t }ttddftddftddff}	d}
d}t|D ]G\}}t|d}| }W d    n1 sw   Y  td|tjrtj|||	d}t|j }|!d||| |"| |d7 }|
|7 }
qn|!d|
| tj#dd}|$| W t %|  d S t %|  w )N1PURE_PYTHONr   )socket)util)sysinfozgevent.subprocess   .)r   geventr7   zNo modules found matching %s z@ls: cannot access 'non_existent_file': No such file or directoryz0ls: non_existent_file: No such file or directoryzb(".*?")z\1zb('.*?')rbs   ^\s*>>> )
extraglobscheckerz%s (from %s): %s testszTotal: %s tests in %s modules   )	verbosity)&osgetcwdenvironr<   r7   r#   r8   r9   WINr*   updatesysargvr(   appendr   r    exitjoinunittest	TestSuiter	   r   compilesortedopenreadsearchMr   DocTestSuitelen_testslogaddTestTextTestRunnerrunchdir)cwdr<   r7   r8   r9   r$   globsr&   suiter@   tests_countmodules_countmr(   fcontentss
test_countrunnerr   r   r   mainC   s`   



rh   __main__)
__future__r   r   r
   rC   r   rH   rM   r   r   r	   r%   r*   objectr    rh   r   r   r   r   r   <module>   s    A
