ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     o
    p̦is                     @   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/lib/python3.10/unittest/runner.py__init__   s   
z_WritelnDecorator.__init__c                 C   s   |dv rt |t| j|S )N)r   __getstate__)AttributeErrorgetattrr   )r   attrr	   r	   r
   __getattr__   s   z_WritelnDecorator.__getattr__Nc                 C   s   |r|  | |  d d S N
)write)r   argr	   r	   r
   writeln   s   
z_WritelnDecorator.writelnr   )__name__
__module____qualname____doc__r   r   r   r	   r	   r	   r
   r      s
    r   c                       s   e Zd ZdZdZ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.
    zF======================================================================zF----------------------------------------------------------------------c                    s8   t t| ||| || _|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   s,   |  }| jr|rdt||fS t|S r   )shortDescriptionr   joinstr)r   testdoc_first_liner	   r	   r
   getDescription,   s   
zTextTestResult.getDescriptionc                    sF   t t| | | jr!| j| | | jd | j  d S d S )Nz ... )r   r   	startTestr   r   r   r'   flushr   r%   r    r	   r
   r(   3   s   zTextTestResult.startTestc                    T   t t| | | jr| jd | j  d S | jr(| jd | j  d S d S )Nok.)	r   r   
addSuccessr   r   r   r)   r   r   r*   r    r	   r
   r.   :      zTextTestResult.addSuccessc                    V   t t| || | jr| jd | j  d S | jr)| jd | j  d S d S )NERRORE)	r   r   addErrorr   r   r   r)   r   r   r   r%   errr    r	   r
   r3   C      zTextTestResult.addErrorc                    r0   )NFAILF)	r   r   
addFailurer   r   r   r)   r   r   r4   r    r	   r
   r9   L   r6   zTextTestResult.addFailurec                    s\   t t| || | jr| jd| | j  d S | jr,| j	d | j  d S d S )Nzskipped {0!r}s)
r   r   addSkipr   r   r   formatr)   r   r   )r   r%   reasonr    r	   r
   r;   U   s   zTextTestResult.addSkipc                    r0   )Nzexpected failurex)	r   r   addExpectedFailurer   r   r   r)   r   r   r4   r    r	   r
   r?   ^   r6   z!TextTestResult.addExpectedFailurec                    r+   )Nzunexpected successu)	r   r   addUnexpectedSuccessr   r   r   r)   r   r   r*   r    r	   r
   rA   g   r/   z#TextTestResult.addUnexpectedSuccessc                 C   s@   | j s| jr| j  | j  | d| j | d| j d S )Nr1   r7   )r   r   r   r   r)   printErrorListerrorsfailuresr   r	   r	   r
   printErrorsp   s
   

zTextTestResult.printErrorsc                 C   sb   |D ],\}}| j | j | j d|| |f  | j | j | j d|  | j   qd S )Nz%s: %sz%s)r   r   
separator1r'   
separator2r)   )r   flavourrC   r%   r5   r	   r	   r
   rB   w   s   zTextTestResult.printErrorList)r   r   r   r   rG   rH   r   r'   r(   r.   r3   r9   r;   r?   rA   rF   rB   __classcell__r	   r	   r    r
   r      s    						r   c                   @   s8   e Zd ZdZeZ		dddddZd	d
 Zdd ZdS )TextTestRunnerzA 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   sR   |du rt j}t|| _|| _|| _|| _|| _|| _|| _	|dur'|| _
dS dS )zConstruct a TextTestRunner.

        Subclasses should accept **kwargs to ensure compatibility as the
        interface changes.
        N)sysstderrr   r   r   r   failfastbufferrL   warningsresultclass)	r   r   r   r   rO   rP   rR   rQ   rL   r	   r	   r
   r      s   

zTextTestRunner.__init__c                 C   s   |  | j| j| jS r   )rR   r   r   r   rE   r	   r	   r
   _makeResult   s   zTextTestRunner._makeResultc                 C   s^  |   }t| | j|_| j|_| j|_t V | jr/t| j | jdv r/tjdt	dd t
 }t|dd}|dur@|  z|| W t|dd}|durS|  nt|dd}|durb|  w w t
 }W d   n1 sqw   Y  || }|  t|dr| j|j |j}| jd	||d
krdpd|f  | j  d }	 }
}ztt|j|j|jf}W n	 ty   Y nw |\}	}
}g }| s| jd t|jt|j}}|r|d|  |r|d|  n| jd |r|d|  |	r|d|	  |
r|d|
  |r"| jdd|f  n| jd | j  |S )z&Run the given test case or test suite.)defaultalwaysmodulezPlease use assert\w+ instead.)categorymessagestartTestRunNstopTestRunrH   zRan %d test%s in %.3fsr   r:    r   FAILEDzfailures=%dz	errors=%dOKz
skipped=%dzexpected failures=%dzunexpected successes=%dz (%s)z, r   ) rS   r   rO   rP   rL   rQ   catch_warningssimplefilterfilterwarningsDeprecationWarningtimeperf_counterr   rF   hasattrr   r   rH   testsRunmaplenexpectedFailuresunexpectedSuccessesskippedr   wasSuccessfulr   rD   rC   appendr#   r)   )r   r%   r   	startTimerY   rZ   stopTime	timeTakenrunexpectedFailsri   rj   resultsinfosfailederroredr	   r	   r
   rp      s   








zTextTestRunner.run)NTr   FFNN)	r   r   r   r   r   rR   r   rS   rp   r	   r	   r	   r
   rK      s    rK   )r   rM   rb   rQ   r[   r   signalsr   
__unittestobjectr   
TestResultr   rK   r	   r	   r	   r
   <module>   s    c