509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \G  ã               @   sn   d Z ddlZddlZddlZddlmZ ddlmZ dZG dd„ de	ƒZ
G d	d
„ d
ejƒZG dd„ de	ƒZdS )zRunning testsé    Né   )Úresult)ÚregisterResultTc               @   s*   e Zd ZdZdd„ Zdd„ Zd	dd„ZdS )
Ú_WritelnDecoratorz@Used to decorate file-like objects with a handy 'writeln' methodc             C   s
   || _ d S )N)Ústream)Úselfr   © r   ú'/usr/lib64/python3.6/unittest/runner.pyÚ__init__   s    z_WritelnDecorator.__init__c             C   s   |dkrt |ƒ‚t| j|ƒS )Nr   Ú__getstate__)r   r   )ÚAttributeErrorÚgetattrr   )r   Úattrr   r   r	   Ú__getattr__   s    z_WritelnDecorator.__getattr__Nc             C   s   |r| j |ƒ | j dƒ d S )NÚ
)Úwrite)r   Úargr   r   r	   Úwriteln   s    
z_WritelnDecorator.writeln)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   r   r   r   r   r	   r      s   r   c                   sœ   e Zd ZdZdd Zdd Z‡ fdd„Zdd„ Z‡ fd	d
„Z‡ fdd„Z	‡ fdd„Z
‡ fdd„Z‡ fdd„Z‡ fdd„Z‡ fdd„Zdd„ Zdd„ Z‡  ZS )ÚTextTestResultzhA test result class that can print formatted text results to a stream.

    Used by TextTestRunner.
    ú=éF   ú-c                s8   t t| ƒj|||ƒ || _|dk| _|dk| _|| _d S )Nr   )Úsuperr   r
   r   ÚshowAllÚdotsÚdescriptions)r   r   r   Ú	verbosity)Ú	__class__r   r	   r
   %   s
    

zTextTestResult.__init__c             C   s0   |j ƒ }| jr$|r$djt|ƒ|fƒS t|ƒS d S )Nr   )ZshortDescriptionr   ÚjoinÚstr)r   ÚtestZdoc_first_liner   r   r	   ÚgetDescription,   s    
zTextTestResult.getDescriptionc                sB   t t| ƒj|ƒ | jr>| jj| j|ƒƒ | jjdƒ | jjƒ  d S )Nz ... )r   r   Ú	startTestr   r   r   r%   Úflush)r   r$   )r!   r   r	   r&   3   s
    zTextTestResult.startTestc                sD   t t| ƒj|ƒ | jr$| jjdƒ n| jr@| jjdƒ | jjƒ  d S )NÚokÚ.)	r   r   Ú
addSuccessr   r   r   r   r   r'   )r   r$   )r!   r   r	   r*   :   s    zTextTestResult.addSuccessc                sF   t t| ƒj||ƒ | jr&| jjdƒ n| jrB| jjdƒ | jjƒ  d S )NÚERRORÚE)	r   r   ÚaddErrorr   r   r   r   r   r'   )r   r$   Úerr)r!   r   r	   r-   B   s    zTextTestResult.addErrorc                sF   t t| ƒj||ƒ | jr&| jjdƒ n| jrB| jjdƒ | jjƒ  d S )NÚFAILÚF)	r   r   Ú
addFailurer   r   r   r   r   r'   )r   r$   r.   )r!   r   r	   r1   J   s    zTextTestResult.addFailurec                sL   t t| ƒj||ƒ | jr,| jjdj|ƒƒ n| jrH| jjdƒ | jj	ƒ  d S )Nzskipped {0!r}Ús)
r   r   ÚaddSkipr   r   r   Úformatr   r   r'   )r   r$   Úreason)r!   r   r	   r3   R   s    zTextTestResult.addSkipc                sF   t t| ƒj||ƒ | jr&| jjdƒ n| jrB| jjdƒ | jjƒ  d S )Nzexpected failureÚx)	r   r   ÚaddExpectedFailurer   r   r   r   r   r'   )r   r$   r.   )r!   r   r	   r7   Z   s    z!TextTestResult.addExpectedFailurec                sD   t t| ƒj|ƒ | jr$| jjdƒ n| jr@| jjdƒ | jjƒ  d S )Nzunexpected successÚu)	r   r   ÚaddUnexpectedSuccessr   r   r   r   r   r'   )r   r$   )r!   r   r	   r9   b   s    z#TextTestResult.addUnexpectedSuccessc             C   s6   | j s| jr| jjƒ  | jd| jƒ | jd| jƒ d S )Nr+   r/   )r   r   r   r   ÚprintErrorListÚerrorsÚfailures)r   r   r   r	   ÚprintErrorsj   s    
zTextTestResult.printErrorsc             C   s\   xV|D ]N\}}| j j| jƒ | j jd|| j|ƒf ƒ | j j| jƒ | j jd| ƒ qW d S )Nz%s: %sz%s)r   r   Ú
separator1r%   Ú
separator2)r   Zflavourr;   r$   r.   r   r   r	   r:   p   s
    zTextTestResult.printErrorList)r   r   r   r   r>   r?   r
   r%   r&   r*   r-   r1   r3   r7   r9   r=   r:   Ú__classcell__r   r   )r!   r	   r      s   r   c               @   s4   e Zd ZdZeZdddœdd„Zd	d
„ Zdd„ ZdS )ÚTextTestRunnerzÉA test runner class that displays results in textual form.

    It prints out the names of tests as they are run, errors as they
    occur, and a summary of the results at the end of the test run.
    NTr   F)Ú	tb_localsc      	      C   sN   |dkrt j}t|ƒ| _|| _|| _|| _|| _|| _|| _	|dk	rJ|| _
dS )z‰Construct a TextTestRunner.

        Subclasses should accept **kwargs to ensure compatibility as the
        interface changes.
        N)ÚsysÚstderrr   r   r   r    ÚfailfastÚbufferrB   ÚwarningsÚresultclass)	r   r   r   r    rE   rF   rH   rG   rB   r   r   r	   r
   €   s    
zTextTestRunner.__init__c             C   s   | j | j| j| jƒS )N)rH   r   r   r    )r   r   r   r	   Ú_makeResult”   s    zTextTestRunner._makeResultc             C   s4  | j ƒ }t|ƒ | j|_| j|_| j|_tjƒ �† | jr^tj| jƒ | jdkr^tjdt	dd� t
j
ƒ }t|ddƒ}|dk	r€|ƒ  z||ƒ W dt|ddƒ}|dk	r¨|ƒ  X t
j
ƒ }W dQ R X || }|jƒ  t|d	ƒrä| jj|jƒ |j}| jjd
||dk�rd�pd|f ƒ | jjƒ  d }	 }
}ytt|j|j|jfƒ}W n tk
�rV   Y nX |\}	}
}g }|jƒ �s¼| jjdƒ t|jƒt|jƒ }}|�r¦|jd| ƒ |�rÈ|jd| ƒ n| jjdƒ |�rÜ|jd| ƒ |	�rð|jd|	 ƒ |
�r|jd|
 ƒ |�r$| jjddj|ƒf ƒ n| jjdƒ |S )z&Run the given test case or test suite.ÚdefaultÚalwaysÚmodulezPlease use assert\w+ instead.)ÚcategoryÚmessageÚstartTestRunNÚstopTestRunr?   zRan %d test%s in %.3fsr   r2   Ú r   ZFAILEDzfailures=%dz	errors=%dZOKz
skipped=%dzexpected failures=%dzunexpected successes=%dz (%s)z, r   )rJ   rK   )rI   r   rE   rF   rB   rG   Úcatch_warningsÚsimplefilterÚfilterwarningsÚDeprecationWarningÚtimer   r=   Úhasattrr   r   r?   ZtestsRunÚmapÚlenZexpectedFailuresÚunexpectedSuccessesÚskippedr   ZwasSuccessfulr   r<   r;   Úappendr"   )r   r$   r   Z	startTimerO   rP   ZstopTimeZ	timeTakenÚrunZexpectedFailsrZ   r[   ZresultsZinfosZfailedZerroredr   r   r	   r]   —   sr    





zTextTestRunner.run)NTr   FFNN)	r   r   r   r   r   rH   r
   rI   r]   r   r   r   r	   rA   x   s    rA   )r   rC   rV   rG   rQ   r   Zsignalsr   Z
__unittestÚobjectr   Z
TestResultr   rA   r   r   r   r	   Ú<module>   s   [