B
    Tò†[•  ã               @   sŒ   d Z ddlmZmZ ddlmZ ddlZddlZdZdZ	dZ
dZd	Zd
Zdd„ Zdd„ Zdd„ Zdd„ ZG dd„ deƒZG dd„ deƒZdS )z(
Created on Sep 23, 2013

@author: sean
é    )ÚTextTestRunnerÚTextTestResult)ÚregisterResultNz[33mz[34mz[32mz[31mz[0mz[1mc             C   s   t t |  t S )N)ÚBOLDÚOKGREENÚENDC)Útext© r	   úZlib/python3.7/site-packages/anaconda_client-1.7.2-py3.7.egg/binstar_client/tests/runner.pyÚgreen   s    r   c             C   s   t t |  t S )N)r   ÚFAILr   )r   r	   r	   r
   Úred   s    r   c             C   s   t |  t S )N)ÚWARNINGr   )r   r	   r	   r
   Úorange   s    r   c             C   s   t |  t S )N)ÚOKBLUEr   )r   r	   r	   r
   Úblue   s    r   c                   s`   e Z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	‡  Z
S )ÚColorTextTestResultc                sH   t t| ƒ |¡ | jr(| j tdƒ¡ n| jrD| j d¡ | j 	¡  d S )NÚokÚ.)
Úsuperr   Ú
addSuccessÚshowAllÚstreamÚwritelnr   ÚdotsÚwriteÚflush)ÚselfÚtest)Ú	__class__r	   r
   r      s    zColorTextTestResult.addSuccessc                sN   t t| ƒ ||¡ | jr*| j tdƒ¡ n | jrJ| j tdƒ¡ | j 	¡  d S )NÚERRORÚE)
r   r   ÚaddErrorr   r   r   r   r   r   r   )r   r   Úerr)r   r	   r
   r"   '   s    zColorTextTestResult.addErrorc                sN   t t| ƒ ||¡ | jr*| j tdƒ¡ n | jrJ| j tdƒ¡ | j 	¡  d S )Nr   ÚF)
r   r   Ú
addFailurer   r   r   r   r   r   r   )r   r   r#   )r   r	   r
   r%   /   s    zColorTextTestResult.addFailurec                sT   t t| ƒ ||¡ | jr0| j td |¡ƒ¡ n | jrP| j 	tdƒ¡ | j 
¡  d S )Nzskipped {0!r}Ús)r   r   ÚaddSkipr   r   r   r   Úformatr   r   r   )r   r   Úreason)r   r	   r
   r'   7   s    zColorTextTestResult.addSkipc                sN   t t| ƒ ||¡ | jr*| j tdƒ¡ n | jrJ| j tdƒ¡ | j 	¡  d S )Nzexpected failureÚx)
r   r   ÚaddExpectedFailurer   r   r   r   r   r   r   )r   r   r#   )r   r	   r
   r+   ?   s    z&ColorTextTestResult.addExpectedFailurec                sL   t t| ƒ |¡ | jr(| j tdƒ¡ n | jrH| j tdƒ¡ | j 	¡  d S )Nzunexpected successÚu)
r   r   ÚaddUnexpectedSuccessr   r   r   r   r   r   r   )r   r   )r   r	   r
   r-   G   s    z(ColorTextTestResult.addUnexpectedSuccessc             C   s>   | j s| jr| j ¡  |  tdƒ| j¡ |  tdƒ| j¡ d S )Nr    r   )r   r   r   r   ZprintErrorListr   ÚerrorsÚfailures)r   r	   r	   r
   ÚprintErrorsO   s    
zColorTextTestResult.printErrors)Ú__name__Ú
__module__Ú__qualname__r   r"   r%   r'   r+   r-   r0   Ú__classcell__r	   r	   )r   r
   r      s   r   c               @   s4   e Zd Zejddddefdd„Zdd„ Zdd	„ Zd
S )ÚColorTextTestRunnerTé   Fc          	   C   s   t j| ||||||d d S )N)r   ÚdescriptionsÚ	verbosityÚfailfastÚbufferÚresultclass)r   Ú__init__)r   r   r7   r8   r9   r:   r;   r	   r	   r
   r<   W   s    
zColorTextTestRunner.__init__c       	   
   C   sÒ   |   ¡ }t|ƒ | j|_| j|_t ¡ }t|ddƒ}|dk	rB|ƒ  z||ƒ W dt|ddƒ}|dk	rj|ƒ  X t ¡ }|| }| ¡  t|dƒrœ| j 	|j
¡ |j}| j 	d||dkr¸dpºd|f ¡ | j 	¡  |S )	z&Run the given test case or test suite.ÚstartTestRunNÚstopTestRunÚ
separator2zRan %d test%s in %.3fsr6   r&   Ú )Z_makeResultr   r9   r:   ÚtimeÚgetattrr0   Úhasattrr   r   r?   ZtestsRun)	r   r   ÚresultZ	startTimer=   r>   ZstopTimeZ	timeTakenÚrunr	   r	   r
   rE   ]   s.    

zColorTextTestRunner.runc             C   sV  d } }}yt t|j|j|jfƒ}W n tk
r:   Y nX |\}}}g }| ¡ s¢| j dt	dƒ ¡ t t|j
|jfƒ\}}	|rŽ| d| ¡ |	r¶| d|	 ¡ n| j dtdƒ ¡ |rÈ| d| ¡ |rÚ| d| ¡ |rì| d	| ¡ |r
| j d
d |¡f ¡ |j}
t}|
dk r"t}|
dk r0t	}|dt|jƒ ƒ}| j d| ¡ d S )Nr   zTests: ZFAILEDzfailures=%dz	errors=%dZOKz
skipped=%dzexpected failures=%dzunexpected successes=%dz (%s)z, éP   é2   z%i%%z, Coverage: %s 
)ÚmapÚlenZexpectedFailuresÚunexpectedSuccessesÚskippedÚAttributeErrorZwasSuccessfulr   r   r   r/   r.   Úappendr   ÚjoinZ
pc_coveredr   Úint)r   rD   ZcoverageZexpectedFailsrJ   rK   ZresultsZinfosZfailedZerroredZpercZcolorZcvr	   r	   r
   Ú	write_endz   sB    


zColorTextTestRunner.write_endN)	r1   r2   r3   ÚsysÚstderrr   r<   rE   rP   r	   r	   r	   r
   r5   U   s   r5   )Ú__doc__Zunittest.runnerr   r   Zunittest.signalsr   rA   rQ   r   r   r   r   r   r   r   r   r   r   r   r5   r	   r	   r	   r
   Ú<module>   s    7