
    daf#                     ^    	 d dl Z d dlZd dlZddlmZ d dlmZ dZd ZdZ	dZ
 G d	 d
e      Zy)    N   )utilwrapsTc                 .     t                fd       }|S )Nc                 V    t        | dd      r| j                           | g|i |S )NfailfastF)getattrstop)selfargskwmethods      */root/Python-3.12.4/Lib/unittest/result.pyinnerzfailfast.<locals>.inner   s-    4U+IIKd(T(R((    r   )r   r   s   ` r   r	   r	      s     
6]) ) Lr   z
Stdout:
%sz
Stderr:
%sc                       e Zd Z	 dZdZdZddZd Zd Zd Z	d Z
d Zd	 Zd
 Zed        Zed        Zd Zd Zd Zd Zed        Zd Zd Zd Zd Zd Zd Zd Zd Zy)
TestResultNFc                    d| _         g | _        g | _        d| _        g | _        g | _        g | _        g | _        d| _        d| _	        d| _
        d | _        d | _        t        j                  | _        t        j                   | _        d| _        y )NFr   )r	   failureserrorstestsRunskippedexpectedFailuresunexpectedSuccessescollectedDurations
shouldStopbuffer	tb_locals_stdout_buffer_stderr_buffersysstdout_original_stdoutstderr_original_stderr_mirrorOutput)r   streamdescriptions	verbositys       r   __init__zTestResult.__init__&   s     "#% "$"" #

 #

"r   c                      y N r   s    r   printErrorszTestResult.printErrors8   s    -r   c                 ^    	 | xj                   dz  c_         d| _        | j                          y )Nr   F)r   r'   _setupStdoutr   tests     r   	startTestzTestResult.startTest;   s'    7"r   c                     | j                   ri| j                  2t        j                         | _        t        j                         | _        | j                  t
        _        | j                  t
        _        y y r-   )r   r!   ioStringIOr    r"   r#   r%   r/   s    r   r2   zTestResult._setupStdoutA   sP    ;;""*&(kkm#&(kkm#,,CJ,,CJ r   c                      y r-   r.   r/   s    r   startTestRunzTestResult.startTestRunI       	r   c                 4    	 | j                          d| _        y )NF)_restoreStdoutr'   r3   s     r   stopTestzTestResult.stopTestO   s    5"r   c                    | j                   rQ| j                  rt        j                  j	                         }t        j
                  j	                         }|r8|j                  d      s|dz  }| j                  j                  t        |z         |r8|j                  d      s|dz  }| j                  j                  t        |z         | j                  t        _        | j                  t        _        | j                  j                  d       | j                  j                          | j                  j                  d       | j                  j                          y y )N
r   )r   r'   r"   r#   getvaluer%   endswithr$   writeSTDOUT_LINEr&   STDERR_LINEr    seektruncater!   )r   outputerrors      r   r=   zTestResult._restoreStdoutT   s   ;;!!,,.

++-!??40$))//f0DE >>$/))//e0CD..CJ..CJ$$Q'((*$$Q'((*% r   c                      y r-   r.   r/   s    r   stopTestRunzTestResult.stopTestRuni   r;   r   c                 n    	 | j                   j                  || j                  ||      f       d| _        y NT)r   append_exc_info_to_stringr'   r   r4   errs      r   addErrorzTestResult.addErroro   s5    	 	D$":":3"EFG!r   c                 n    	 | j                   j                  || j                  ||      f       d| _        y rM   )r   rN   rO   r'   rP   s      r   
addFailurezTestResult.addFailurew   s3    	'dD$<$<S$$GHI!r   c                     	 |zt        | dd      r| j                          t        |d   |j                        r| j                  }n| j
                  }|j                  || j                  ||      f       d| _        y y )Nr	   Fr   T)	r
   r   
issubclassfailureExceptionr   r   rN   rO   r'   )r   r4   subtestrQ   r   s        r   
addSubTestzTestResult.addSubTest~   st    	 ?tZ/		#a&$"7"78MM7D$<$<S$$GHI!%D r   c                      	 y r-   r.   r3   s     r   
addSuccesszTestResult.addSuccess   s    7r   c                 @    	 | j                   j                  ||f       y r-   )r   rN   )r   r4   reasons      r   addSkipzTestResult.addSkip   s    ,T6N+r   c                 `    	 | j                   j                  || j                  ||      f       y r-   )r   rN   rO   rP   s      r   addExpectedFailurezTestResult.addExpectedFailure   s.    =$$4++C67	9r   c                 <    	 | j                   j                  |       y r-   )r   rN   r3   s     r   addUnexpectedSuccesszTestResult.addUnexpectedSuccess   s    C  ''-r   c                 l    	 t        | d      r'| j                  j                  t        |      |f       y y )Nr   )hasattrr   rN   str)r   r4   elapseds      r   addDurationzTestResult.addDuration   s6    	 4-.##**CIw+?@ /r   c                     	 t        | j                        t        | j                        cxk(  xr dk(  nc xr' t        | d       xs t        | j                        dk(  S )Nr   r   )lenr   r   rd   r   r/   s    r   wasSuccessfulzTestResult.wasSuccessful   sV    = T]]#s4;;'7<1< 5T#899 4T--.!3	6r   c                     	 d| _         y rM   )r   r/   s    r   r   zTestResult.stop   s    9r   c                 $   	 |\  }}}| j                  ||||      }t        j                  |||| j                  d      }t	        |j                               }| j                  rt        j                  j                         }t        j                  j                         }	|r.|j                  d      s|dz  }|j                  t        |z         |	r.|	j                  d      s|	dz  }	|j                  t        |	z         dj                  |      S )NT)capture_localscompactr@    )_clean_tracebacks	tracebackTracebackExceptionr   listformatr   r"   r#   rA   r%   rB   rN   rD   rE   join)
r   rQ   r4   exctypevaluetbtb_emsgLinesrH   rI   s
             r   rO   zTestResult._exc_info_to_string   s    L ##GUB=++UB>>49 &;;ZZ((*FJJ'')Et,dNFf 45~~d+TMEe 34wwx  r   c                    d }d}|||fg}t        |      h}|r|j                         \  }}}|r1| j                  |      r |j                  }|r| j                  |      r ||j                  u r| j                  |       |r|}d}n||_        |o|j                  |j                  fD ]T  }	|	t        |	      |vs|j                  t        |	      |	|	j                  f       |j                  t        |	             V |r|S )NTF)idpop_is_relevant_tb_leveltb_nextrW   _remove_unittest_tb_frames__traceback__	__cause____context__rN   typeadd)
r   rv   rw   rx   r4   retfirstexcsseencs
             r   rp   zTestResult._clean_tracebacks   s   %$%5	{#'88: WeR33B7ZZ 33B7 $/////3&(# //5+<+<= (A}Ad):T!Wa$ABA(# * 
r   c                 2    d|j                   j                  v S )N
__unittest)tb_frame	f_globals)r   rx   s     r   r~   z TestResult._is_relevant_tb_level   s    r{{4444r   c                     	 d }|r3| j                  |      s"|}|j                  }|r| j                  |      s"|d |_        y y r-   )r~   r   )r   rx   prevs      r   r   z%TestResult._remove_unittest_tb_frames   sR    	 33B7DB 33B7 DL r   c                     dt        j                  | j                        | j                  t	        | j
                        t	        | j                        fz  S )Nz!<%s run=%i errors=%i failures=%i>)r   strclass	__class__r   ri   r   r   r/   s    r   __repr__zTestResult.__repr__   sA    3dnn-t}}c$++>NDMM"$$ 	%r   )NNN)__name__
__module____qualname___previousTestClass_testRunEntered_moduleSetUpFailedr+   r0   r5   r2   r:   r>   r=   rK   r	   rR   rT   rY   r[   r^   r`   rb   rg   rj   r   rO   rp   r~   r   r   r.   r   r   r   r      s    	 O#$.-#
+* " " " "&",9
 . .	A6!,85 %r   r   )r7   r"   rq   ro   r   	functoolsr   r   r	   rD   rE   objectr   r.   r   r   <module>r      s;     	 
   
 h% h%r   