o
    e                     @   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   KD:\Projects\ConvertPro\env\Lib\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   ZwantgotZoptionflagsZ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__?   r.   zModules.__iter__N)r   r   r   r   r$   r-   __nonzero__r0   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1ZPURE_PYTHONr   )socket)util)sysinfozgevent.subprocess   .)r   geventr3   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*>>> )Z
extraglobscheckerz%s (from %s): %s testszTotal: %s tests in %s modules   )	verbosity)&osgetcwdenvironr8   r3   r    r4   r5   ZWINr'   updatesysargvr%   appendr   r   exitjoinunittestZ	TestSuiter	   r   compilesortedopenreadsearchMr   ZDocTestSuitelenZ_testslogZaddTestZTextTestRunnerrunchdir)cwdr8   r3   r4   r5   r!   Zglobsr#   Zsuiter;   Ztests_countZmodules_countmr%   fcontentssZ
test_countrunnerr   r   r   mainC   s`   



rX   __main__)
__future__r   r   r
   r>   r   rB   rG   r   r   r	   r"   r'   objectr   rX   r   r   r   r   r   <module>   s    A
