
    d$                         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dlm	Z	 dZ
 G d d	e          Z G d
 dej                  Z G d de          ZdS )zRunning tests    N   )result)_SubTest)registerResultTc                   &    e Zd ZdZd Zd ZddZdS )_WritelnDecoratorz@Used to decorate file-like objects with a handy 'writeln' methodc                     || _         d S N)stream)selfr   s     !  /croot/python-split_1694437901252/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac/lib/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____doc__r   r   r    r   r   r   r      sL        JJ  ) ) )
     r   r   c                        e Zd 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 )TextTestResultzhA test result class that can print formatted text results to a stream.

    Used by TextTestRunner.
    zF======================================================================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   r1   flushr(   r   r/   r*   s     r   r4   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  r3   T)
isinstancer   r(   r   r   r   r1   r5   )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   r5   r$   r"   
addSubTest)r   r/   subtesterrr*   s       r   rC   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   r5   r6   s     r   rI   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   r5   r   r/   rE   r*   s      r   rK   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   r5   rL   s      r   rN   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   r5   )r   r/   reasonr*   s      r   rQ   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   r5   r&   r   rL   s      r   rV   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   r5   r&   r   r6   s     r   rY   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   r5   printErrorListerrorsfailuresr   
separator1r1   )r   r[   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_   r1   
separator2r5   )r   flavourr]   r/   rE   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   r_   rb   r   r1   r4   r;   rC   rI   rK   rN   rQ   rV   rY   r`   r\   __classcell__)r*   s   @r   r"   r"      sW         JJ      " " " " "  C C C C C                                                                        r   r"   c                   4    e Zd ZdZeZ	 	 d
dddZd Z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                    |t           j        }t          |          | _        || _        || _        || _        || _        || _        || _	        |	|| _
        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bufferrg   warningsresultclass)	r   r   r'   r)   rk   rl   rn   rm   rg   s	            r   r   zTextTestRunner.__init__   sf     >ZF'//(" " "*D #"r   c                 N    |                      | j        | j        | j                  S r
   )rn   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 )z&Run the given test case or test suite.)defaultalwaysmodulezPlease use assert\w+ instead.)categorymessagestartTestRunNstopTestRunrb   zRan %d test%s in %.3fsr   rP    r   FAILEDzfailures=%dz	errors=%dOKz
skipped=%dzexpected failures=%dzunexpected successes=%dz (z, )r   ) rp   r   rk   rl   rg   rm   catch_warningssimplefilterfilterwarningsDeprecationWarningtimeperf_counterr   r`   hasattrr   r   rb   testsRunmaplenexpectedFailuresr[   skippedr   wasSuccessfulr   r^   r]   appendr-   r5   )r   r/   r   	startTimerw   rx   stopTime	timeTakenrunexpectedFailsr[   r   resultsinfosfailederroreds                   r   r   zTextTestRunner.run   s   !!##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   r"   rn   r   rp   r   r    r   r   rf   rf      sr         
 !KABJN+#+ + + + +(P P PG G G G Gr   rf   )r   ri   r   rm   ry   r   caser   signalsr   
__unittestobjectr   
TestResultr"   rf   r    r   r   <module>r      s      



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