
    =Og$                         	 d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ dZ	 G d de
          Z G d	 d
ej                  Z G d de
          ZdS )    N   )result)_SubTest)registerResultTc                   $    e Zd Z	 d Zd ZddZdS )_WritelnDecoratorc                     || _         d S N)stream)selfr   s     (/usr/lib64/python3.11/unittest/runner.py__init__z_WritelnDecorator.__init__   s        c                 R    |dv rt          |          t          | j        |          S )N)r   __getstate__)AttributeErrorgetattrr   )r   attrs     r   __getattr__z_WritelnDecorator.__getattr__   s.    --- &&&t{4(((r   Nc                 ^    |r|                      |           |                      d           d S N
)write)r   args     r   writelnz_WritelnDecorator.writeln   s1     	JJsOOO

4r   r
   )__name__
__module____qualname__r   r   r    r   r   r   r      sI        J  ) ) )
     r   r   c                        e Zd Z	 dZdZ fdZd Z fdZd Z fdZ	 fdZ
 fd	Z fd
Z fdZ fdZ fdZd Zd Z xZS )TextTestResultzF======================================================================zF----------------------------------------------------------------------c                     t          t          |                               |||           || _        |dk    | _        |dk    | _        || _        d| _        d S )Nr   T)superr!   r   r   showAlldotsdescriptions_newline)r   r   r&   	verbosity	__class__s       r   r   zTextTestResult.__init__&   sU    nd##,,V\9MMM 1}N	(r   c                     |                                 }| j        r&|r$d                    t          |          |f          S t          |          S r   )shortDescriptionr&   joinstr)r   testdoc_first_lines      r   getDescriptionzTextTestResult.getDescription.   sN    ..00 	 	99c$ii8999t99r   c                 8   t          t          |                               |           | j        ri| j                            |                     |                     | j                            d           | j                                         d| _        d S d S )N ... F)	r#   r!   	startTestr$   r   r   r0   flushr'   r   r.   r)   s     r   r3   zTextTestResult.startTest5   s    nd##--d333< 	"Kd11$77888Kg&&&K!DMMM		" 	"r   c                    t          |t                    }|s| j        r| j        s| j                                         |r| j                            d           | j                            |                     |                     | j                            d           | j                            |           | j                                         d| _        d S )Nz  r2   T)
isinstancer   r'   r   r   r   r0   r4   )r   r.   status
is_subtests       r   _write_statuszTextTestResult._write_status=   s    h//
 	' 	'= &##%%% (!!$'''Kd11$77888Kg&&&F###r   c                    || j         rIt          |d         |j                  r|                     |d           n|                     |d           np| j        rit          |d         |j                  r| j                            d           n| j                            d           | j                                         t          t          |           
                    |||           d S )Nr   FAILERRORFE)r$   
issubclassfailureExceptionr:   r%   r   r   r4   r#   r!   
addSubTest)r   r.   subtesterrr)   s       r   rB   zTextTestResult.addSubTestJ   s    ?| 
$c!fg&>?? 9&&w7777&&w8888 $c!fg&>?? +K%%c****K%%c***!!###nd##..tWcBBBBBr   c                    t          t          |                               |           | j        r|                     |d           d S | j        r5| j                            d           | j                                         d S d S )Nok.)	r#   r!   
addSuccessr$   r:   r%   r   r   r4   r5   s     r   rH   zTextTestResult.addSuccessY   s    nd##..t444< 	 tT*****Y 	 Kc"""K	  	 r   c                    t          t          |                               ||           | j        r|                     |d           d S | j        r5| j                            d           | j                                         d S d S )Nr=   r?   )	r#   r!   addErrorr$   r:   r%   r   r   r4   r   r.   rD   r)   s      r   rJ   zTextTestResult.addErrora   s    nd##,,T3777< 	 tW-----Y 	 Kc"""K	  	 r   c                    t          t          |                               ||           | j        r|                     |d           d S | j        r5| j                            d           | j                                         d S d S )Nr<   r>   )	r#   r!   
addFailurer$   r:   r%   r   r   r4   rK   s      r   rM   zTextTestResult.addFailurei   s    nd##..tS999< 	 tV,,,,,Y 	 Kc"""K	  	 r   c                 6   t          t          |                               ||           | j        r+|                     |d                    |                     d S | j        r5| j                            d           | j        	                                 d S d S )Nzskipped {0!r}s)
r#   r!   addSkipr$   r:   formatr%   r   r   r4   )r   r.   reasonr)   s      r   rP   zTextTestResult.addSkipq   s    nd##++D&999< 	 t_%;%;F%C%CDDDDDY 	 Kc"""K	  	 r   c                 J   t          t          |                               ||           | j        r5| j                            d           | j                                         d S | j        r5| j                            d           | j                                         d S d S )Nzexpected failurex)	r#   r!   addExpectedFailurer$   r   r   r4   r%   r   rK   s      r   rU   z!TextTestResult.addExpectedFailurey   s    nd##66tSAAA< 	 K 2333KY 	 Kc"""K	  	 r   c                 H   t          t          |                               |           | j        r5| j                            d           | j                                         d S | j        r5| j                            d           | j                                         d S d S )Nzunexpected successu)	r#   r!   addUnexpectedSuccessr$   r   r   r4   r%   r   r5   s     r   rX   z#TextTestResult.addUnexpectedSuccess   s    nd##88>>>< 	 K 4555KY 	 Kc"""K	  	 r   c                    | j         s| j        r2| j                                         | j                                         |                     d| j                   |                     d| j                   t          | dd          }|ro| j                            | j	                   |D ]2}| j                            d| 
                    |                      3| j                                         d S d S )Nr=   r<   unexpectedSuccessesr   zUNEXPECTED SUCCESS: )r%   r$   r   r   r4   printErrorListerrorsfailuresr   
separator1r0   )r   rZ   r.   s      r   printErrorszTextTestResult.printErrors   s   9 	  	 K!!!KGT[111FDM222%d,A2FF 	 K000+ X X##$V4;N;Nt;T;T$V$VWWWWK		  	 r   c                 b   |D ]\  }}| j                             | j                   | j                             |d|                     |                     | j                             | j                   | j                             d|z             | j                                          d S )Nz: z%s)r   r   r^   r0   
separator2r4   )r   flavourr\   r.   rD   s        r   r[   zTextTestResult.printErrorList   s     	  	 ID#K000KGGGD4G4G4M4M4M NOOOK000Ks
+++K	  	 r   )r   r   r   r^   ra   r   r0   r3   r:   rB   rH   rJ   rM   rP   rU   rX   r_   r[   __classcell__)r)   s   @r   r!   r!      sR        JJ      " " " " "  C C C C C                                                                        r   r!   c                   2    e Zd Z	 eZ	 	 d	dddZd Zd ZdS )
TextTestRunnerNTr   F)	tb_localsc                    	 |t           j        }t          |          | _        || _        || _        || _        || _        || _        || _	        |	|| _
        d S d S r
   )sysstderrr   r   r&   r(   failfastbufferrf   warningsresultclass)	r   r   r&   r(   rj   rk   rm   rl   rf   s	            r   r   zTextTestRunner.__init__   sk    	
 >ZF'//(" " "*D #"r   c                 N    |                      | j        | j        | j                  S r
   )rm   r   r&   r(   )r   s    r   _makeResultzTextTestRunner._makeResult   s!    T->OOOr   c                    	 |                                  }t          |           | j        |_        | j        |_        | j        |_        t          j                    5  | j        r>t          j        | j                   | j        dv rt          j        dt          d           t          j                    }t          |dd           }|
 |             	  ||           t          |dd           }|
 |             n## t          |dd           }| |             w w xY wt          j                    }d d d            n# 1 swxY w Y   ||z
  } |j                     t          |d          r| j                            |j                   |j        }| j                            d||d	k    rd
pd|fz             | j                                         dx}	x}
}	 t'          t(          |j        |j        |j        f          }|\  }	}
}n# t0          $ r Y nw xY wg } |j                    sw| j                            d           t)          |j                  t)          |j                  }}|r|                    d|z             |r|                    d|z             n| j                            d           |r|                    d|z             |	r|                    d|	z             |
r|                    d|
z             |r2| j                            dd                    |          d           n| j                            d           | j                                         |S )N)defaultalwaysmodulezPlease use assert\w+ instead.)categorymessagestartTestRunstopTestRunra   zRan %d test%s in %.3fsr   rO    r   FAILEDzfailures=%dz	errors=%dOKz
skipped=%dzexpected failures=%dzunexpected successes=%dz (z, )r   ) ro   r   rj   rk   rf   rl   catch_warningssimplefilterfilterwarningsDeprecationWarningtimeperf_counterr   r_   hasattrr   r   ra   testsRunmaplenexpectedFailuresrZ   skippedr   wasSuccessfulr   r]   r\   appendr,   r4   )r   r.   r   	startTimerv   rw   stopTime	timeTakenrunexpectedFailsrZ   r   resultsinfosfailederroreds                   r   r   zTextTestRunner.run   s   0!!##v->$&& 	+ 	+} F%dm444 =$999+H%7$DF F F F )++I"6>4@@L'"V%fmTBB*KMMM &fmTBB*KMMMM +(**H/	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+0 y(	6<(( 	3K 1222o4 #("2s"8b)DE 	F 	F 	F8999+g	B# 7 & : & 0 1 1G ;B7M.  	 	 	D	
 #v#%% 	$Kh'''!&/22C4F4FGF 5]V3444 4[72333Kd### 	1LL/000 	ALL/-?@@@ 	JLL25HHIII 	$K499U+;+;+;+; =>>>>Kd###s=   A6D>C<D>< DD>>EE'H	 	
HH)NTr   FFNN)r   r   r   r!   rm   r   ro   r   r   r   r   re   re      sm        
 !KABJN+#+ + + + +(P P PG G G G Gr   re   )rh   r   rl   rx   r   caser   signalsr   
__unittestobjectr   
TestResultr!   re   r   r   r   <module>r      s     



               # # # # # #
        @  @  @  @  @ V& @  @  @ Ff f f f fV f f f f fr   