
    h                     
   d Z ddlZddlZddlZddlZddlZddlZ G d dej                  Z G d d          Z	ddZ
dd	Zed
k    r9ddlmc mZ de_         G d dej                  Z ej                    Ze                     ej                                        e                      ej                    Z e
 ed ej        D                                 Z eej                  Ze                     e          Z! e"de#                                            e"dd            ej$        e!%                                          D ]!Z& e"e&'                                d           " e"             dS dS )z=Test runner and result class for the regression test suite.

    Nc                        e Zd ZdZ fdZed             Z fdZddZed             Z	 fdZ
 fdZ fd	Z fd
Z fdZ fdZd Z xZS )RegressionTestResultFc                 `   t                                          |||rdnd           d| _        | j        roddlm} ddlm} || _         |j        d          | _	        | j	        
                    d|                                                    d	                     d | _        d | _        d S )
N   r   )streamdescriptions	verbosityT)ElementTree)datetime	testsuitestart )super__init__bufferUSE_XML	xml.etreer
   r   _RegressionTestResult__ETElement_RegressionTestResult__suitesetutcnow	isoformat_RegressionTestResult__e!_RegressionTestResult__start_time)selfr   r   r	   ETr   	__class__s         ./usr/lib/python3.11/test/support/testresult.pyr   zRegressionTestResult.__init__   s    \(1#811q 	 	: 	: 	:< 	333333))))))DI%2:k22DLLWhoo&7&7&A&A#&F&FGGGDH     c                     	 |j         }n# t          $ r t          |          cY S w xY w	  |            S # t          $ r t          |          cY S w xY wN)idAttributeErrorstr	TypeErrorrepr)clstesttest_ids      r   __getIdzRegressionTestResult.__getId   s{    	gGG 	 	 	t99		 799 	  	  	 w<<	 s   
 &&	4 AAc                     t                                          |           | j        r'| j                            | j        d          x| _        }t          j                    | _	        d S )Ntestcase)
r   	startTestr   r   
SubElementr   r   timeperf_counterr   )r   r)   er   s      r   r.   zRegressionTestResult.startTest(   s]    $< 	J9//jIIIDHq -//r    c           	      R   | j         sd S | j        }d | _        |d S | j        }|                    d|                    d|                     |                               |                    d|                    dd                     |                    d|                    dd                     | j        r1|                    dt          j                    | j        z
  d           |r| j	        A| j	        
                                                                }| |j        |d          _        | j        A| j        
                                                                }| |j        |d	          _        |                                D ]\  }}	|r|	s
 |j        ||          }
t!          |	d
          rU|	                                D ]?\  }}|r$|
                    |t#          |                     +t#          |          |
_        @t#          |	          |
_        d S )Nnamestatusrunresult	completedr0   z0.6fz
system-outz
system-erritems)r   r   r   r   pop_RegressionTestResult__getIdr   r0   r1   _stdout_buffergetvaluerstripr/   text_stderr_bufferr9   hasattrr%   )r   r)   captureargsr2   r   stdoutstderrkve2k2v2s                r   _add_resultz RegressionTestResult._add_result.   s    | 	FH9FY	fdhhvt||D'9'9::;;;	h511222	h;77888 	MEE&T.0043DDKKLLL 	=".,5577>>@@6<a..3".,5577>>@@6<a..3JJLL 	! 	!DAq A q!$$Bq'"" !ggii * *FB *r3r77++++"%b''	* a&&	! 	!r    c                 D   t          |t                    r%|j        dk    r|j        }n!|j         d|j         }nt	          |          }t          j        ||d           }t          j        |||          }|d                    |          d                    |          dS )Nbuiltins. )typemessagerO   )
isinstancerP   
__module____name__r'   	tracebackformat_exceptionjoin)r(   err_type	err_valueerr_tbtypenamemsgtbs          r   __makeErrorDictz$RegressionTestResult.__makeErrorDictR   s    h%% 	&"j00#,&1GGH4EGGH~~H(9dCC')VDD wws||
 
 	
r    c                     |                      |d | j        |            t                                          ||           d S )NT)error)rK   $_RegressionTestResult__makeErrorDictr   addErrorr   r)   errr   s      r   rb   zRegressionTestResult.addErrore   sI    t+?4+?+EFFFs#####r    c                     |                      |d | j        |            t                                          ||           d S )NT)output)rK   ra   r   addExpectedFailurerc   s      r   rg   z'RegressionTestResult.addExpectedFailurei   sI    t,@D,@#,FGGG""4-----r    c                     |                      |d | j        |            t                                          ||           d S )NT)failure)rK   ra   r   
addFailurerc   s      r   rj   zRegressionTestResult.addFailurem   sI    t-AT-A3-GHHH4%%%%%r    c                 z    |                      ||           t                                          ||           d S )N)skipped)rK   r   addSkip)r   r)   reasonr   s      r   rm   zRegressionTestResult.addSkipq   s:    v...f%%%%%r    c                 t    |                      |           t                                          |           d S r"   )rK   r   
addSuccessr   r)   r   s     r   rp   zRegressionTestResult.addSuccessu   s5    4     r    c                 x    |                      |d           t                                          |           d S )NUNEXPECTED_SUCCESS)outcome)rK   r   addUnexpectedSuccessrq   s     r   ru   z)RegressionTestResult.addUnexpectedSuccessy   s;    ';<<<$$T*****r    c                 d   | j         st          d          | j        }|                    dt	          | j                             |                    dt	          t          | j                                       |                    dt	          t          | j                                       |S )NzUSE_XML is falsetestserrorsfailures)	r   
ValueErrorr   r   r%   testsRunlenrx   ry   )r   r2   s     r   get_xml_elementz$RegressionTestResult.get_xml_element}   s    | 	1/000L	gs4=))***	hC,,--...	j#c$-0011222r    F)rT   rS   __qualname__r   r   classmethodr;   r.   rK   ra   rb   rg   rj   rm   rp   ru   r}   __classcell__)r   s   @r   r   r      sF       G! ! ! ! ! 	 	 [	0 0 0 0 0"! "! "! "!H 
 
 [
$$ $ $ $ $. . . . .& & & & && & & & &! ! ! ! !+ + + + +      r    r   c                       e Zd ZddZd ZdS )QuietRegressionTestRunnerFc                 J    t          |d d          | _        || j        _        d S )Nr   )r   r7   r   )r   r   r   s      r   r   z"QuietRegressionTestRunner.__init__   s%    *64;;#r    c                 0     || j                    | j         S r"   )r7   )r   r)   s     r   r6   zQuietRegressionTestRunner.run   s    T[{r    Nr~   )rT   rS   r   r   r6    r    r   r   r      s7        $ $ $ $    r    r   Fc                     | r't          j        t          j        t          ||           S t          j        t
          |          S )N)resultclassr   r	   )r   )	functoolspartialunittestTextTestRunnerr   r   )r	   r   s     r   get_test_runner_classr      sK     6 !8-A(.+46 6 6 	6 6vFFFFr    c                 4     t          ||          |           S r"   )r   )r   r	   capture_outputs      r   get_test_runnerr      s    ; N;;FCCCr    __main__Tc                   &    e Zd Zd Zd Zd Zd ZdS )	TestTestsc                     d S r"   r   r   s    r   	test_passzTestTests.test_pass   s    Dr    c                 .    t          j        d           d S )Ng      ?)r0   sleepr   s    r   test_pass_slowzTestTests.test_pass_slow   s    JsOOOOOr    c                     t          dt          j                   t          dt          j                   |                     d           d S )NrD   filerE   zfailure message)printsysrD   rE   failr   s    r   	test_failzTestTests.test_fail   sE    (,,,,(,,,,II'(((((r    c                     t          dt          j                   t          dt          j                   t	          d          )NrD   r   rE   zerror message)r   r   rD   rE   RuntimeErrorr   s    r   
test_errorzTestTests.test_error   s:    (,,,,(,,,,///r    N)rT   rS   r   r   r   r   r   r   r    r   r   r      sP        	 	 		 	 		) 	) 	)
	0 	0 	0 	0 	0r    r   c              #   "   K   | ]
}|d k    V  dS )z-vNr   ).0as     r   	<genexpr>r      s&      *G*G19*G*G*G*G*G*Gr    zOutput:zXML: rO   )endr~   )(__doc__r   ior   r0   rU   r   TextTestResultr   r   r   r   rT   xml.etree.ElementTreeetreer
   r   r   TestCaser   	TestSuitesuiteaddTest
TestLoaderloadTestsFromTestCaseStringIOr   sumargv
runner_clsrD   runnerr6   r7   r   r=   tostringlistr}   sdecoder   r    r   <module>r      s`        				 



      x x x x x82 x x xt       G G G GD D D D z&&&&&&&&&#' 0 0 0 0 0H% 0 0 0" H  E	MM%(%''==iHHIIIR[]]F&&ss*G*Gch*G*G*G'G'GHHJZ
##FZZF	E)V__&&'''	E'rR_V335566 " "ahhjjb!!!!!	EGGGGG? r    