B
    u9a}                @   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 Z	G dd dZ
G dd deZG d	d
 d
Zdd Zdd ZG dd dZG dd dejZdd ZG dd dZdd Zdd Zeedre sdd Zdd Zd d! Zd"d# Zd$d% ZG d&d' d'Zed(d) Zd*d+ Z d,d- Z!d.d/ Z"d0d1 Z#ye$d2 W n e%k
rf   Y n
X d3d4 Z&d5d6 Z'd7d8 Z(d9d: Z)d;d< Z*e+d=krd>ej,kre*d? ne)  dS )@    )supportNc             C   s   | |  S )N )vr   r   "/usr/lib/python3.7/test_doctest.pysample_func   s    	r   c               @   s^   e Zd Zdd Zdd Zdd Zdd ZeeZd	d
 Ze	eZe
eddZG dd dZdS )SampleClassc             C   s
   || _ d S )N)val)selfr   r   r   r   __init__0   s    zSampleClass.__init__c             C   s   t | j| j S )N)r   r   )r	   r   r   r   double7   s    zSampleClass.doublec             C   s   | j S )N)r   )r	   r   r   r   get>   s    zSampleClass.getc             C   s   | d S )N   r   )r   r   r   r   a_staticmethodE   s    zSampleClass.a_staticmethodc             C   s   |d S )N   r   )clsr   r   r   r   a_classmethodM   s    zSampleClass.a_classmethodzB
        >>> print(SampleClass(22).a_property)
        22
        )docc               @   s&   e Zd Zd	ddZdd Zdd ZdS )
zSampleClass.NestedClassr   c             C   s
   || _ d S )N)r   )r	   r   r   r   r   r
   c   s    z SampleClass.NestedClass.__init__c             C   s   t | j| j S )N)r   NestedClassr   )r	   r   r   r   squarei   s    zSampleClass.NestedClass.squarec             C   s   | j S )N)r   )r	   r   r   r   r   k   s    zSampleClass.NestedClass.getN)r   )__name__
__module____qualname__r
   r   r   r   r   r   r   r   \   s   
r   N)r   r   r   r
   r   r   r   staticmethodr   classmethodpropertyZ
a_propertyr   r   r   r   r   r       s   r   c               @   s$   e Zd Zdd Zdd Zdd ZdS )SampleNewStyleClassc             C   s
   || _ d S )N)r   )r	   r   r   r   r   r
   u   s    zSampleNewStyleClass.__init__c             C   s   t | j| j S )N)r   r   )r	   r   r   r   r   |   s    zSampleNewStyleClass.doublec             C   s   | j S )N)r   )r	   r   r   r   r      s    zSampleNewStyleClass.getN)r   r   r   r
   r   r   r   r   r   r   r   n   s   r   c               @   s   e Zd Zdd Zdd ZdS )
_FakeInputc             C   s
   || _ d S )N)lines)r	   r   r   r   r   r
      s    z_FakeInput.__init__c             C   s   | j d}t| |d S )Nr   
)r   popprint)r	   liner   r   r   readline   s    z_FakeInput.readlineN)r   r   r   r
   r"   r   r   r   r   r      s   r   c               C   s   d S )Nr   r   r   r   r   test_Example   s    wr#   c               C   s   d S )Nr   r   r   r   r   test_DocTest  s     r$   c               @   s"   e Zd Zdd Zejrdd ZdS )test_DocTestFinderc               C   s   d S )Nr   r   r   r   r   basics  s     lztest_DocTestFinder.basicsc               C   s   d S )Nr   r   r   r   r   non_Python_modules  s    z%test_DocTestFinder.non_Python_modulesN)r   r   r   r&   int__doc__r'   r   r   r   r   r%     s    nr%   c               @   s   e Zd Zdd ZdS )TestDocTestFinderc          
   C   sf   d}t  P}tj||}t| tj| zt	|}W d t
| tj  X W d Q R X d S )NZdoctest_empty_pkg)tempfileZTemporaryDirectoryospathjoinmkdirsysappend	importlibimport_moduler   Zforgetr   )r	   Zpkg_nameZ
parent_dirZpkg_dirmodr   r   r   test_empty_namespace_package  s    


z.TestDocTestFinder.test_empty_namespace_packageN)r   r   r   r5   r   r   r   r   r*     s   r*   c               C   s   d S )Nr   r   r   r   r   test_DocTestParser  s    5r6   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )test_DocTestRunnerc               C   s   d S )Nr   r   r   r   r   r&     s    <ztest_DocTestRunner.basicsc               C   s   d S )Nr   r   r   r   r   verbose_flag4  s    Bztest_DocTestRunner.verbose_flagc               C   s   d S )Nr   r   r   r   r   
exceptionsw  s     nztest_DocTestRunner.exceptionsc               C   s   d S )Nr   r   r   r   r   displayhooke  s    ztest_DocTestRunner.displayhookc               C   s   d S )Nr   r   r   r   r   optionflags  s       2ztest_DocTestRunner.optionflagsc               C   s   d S )Nr   r   r   r   r   option_directives3  s     Wz$test_DocTestRunner.option_directivesN)	r   r   r   r&   r8   r9   r:   r;   r<   r   r   r   r   r7     s   =C o   4r7   c               C   s   d S )Nr   r   r   r   r   test_testsource  s    &r=   c               C   s   d S )Nr   r   r   r   r   
test_debug3  s    r>   gettracec               C   s   d S )Nr   r   r   r   r   test_pdb_set_traceR  s     r@   c               C   s   d S )Nr   r   r   r   r   test_pdb_set_trace_nested  s    TrA   c               C   s   d S )Nr   r   r   r   r   test_DocTestSuite.  s    srB   c               C   s   d S )Nr   r   r   r   r   test_DocFileSuite  s     %rC   c               C   s   d S )Nr   r   r   r   r   test_trailing_space_in_testI	  s    rD   c               @   s   e Zd Zdd Zdd ZdS )Wrapperc             C   s   || _ t| | d S )N)func	functoolsupdate_wrapper)r	   rF   r   r   r   r
   S	  s    zWrapper.__init__c             O   s   | j || d S )N)rF   )r	   argskwargsr   r   r   __call__W	  s    zWrapper.__call__N)r   r   r   r
   rK   r   r   r   r   rE   R	  s   rE   c               C   s   d S )Nr   r   r   r   r   test_look_in_unwrappedZ	  s    rL   c               C   s   d S )Nr   r   r   r   r   test_unittest_reportflagsc	  s    MrM   c               C   s   d S )Nr   r   r   r   r   test_testfile	  s     /rN   c               C   s   d S )Nr   r   r   r   r   test_lineendingsb
  s    rO   c               C   s   d S )Nr   r   r   r   r   test_testmod
  s    	rP   u   foo-bär@baz.pyc               C   s   d S )Nr   r   r   r   r   test_unicode
  s    rQ   c               C   s   d S )Nr   r   r   r   r   test_CLI
  s     brR   c               C   s   d S )Nr   r   r   r   r   %test_no_trailing_whitespace_stripping  s    'rS   c              C   s6   t jtdd} ddlm} t j|dd t t d S )NT)	verbosityr   )test_doctest)r   Zrun_doctestdoctesttestrU   Zrun_unittestr   )retrU   r   r   r   	test_main  s    rY   c             C   sP   t d}|jtjtjgddd}|d | }td |j	dd| d d S )	Ntracer   r   )Z
ignoredirsrZ   countztest_main()zWriting coverage results...T)Zshow_missingZsummarycoverdir)
r   r3   ZTracer0   base_prefixbase_exec_prefixrunresultsr    Zwrite_results)r\   rZ   Ztracerrr   r   r   test_coverage  s    


rb   __main__z-cz/tmp/doctest.cover)-rW   r   rV   rG   r,   r0   r2   Zunittestr+   r   r   objectr   r   r#   r$   r%   ZTestCaser*   r6   r7   r=   r>   hasattrr?   r@   rA   rB   rC   rD   rE   rL   rM   rN   rO   rP   fsencodeUnicodeEncodeErrorrQ   rR   rS   rY   rb   r   argvr   r   r   r   <module>   sv   	N y   7        ( Vu '		O 1 d-


