
    F\h                     4   S SK r S SKrS SKJr  SSKJrJrJrJrJ	r	J
r
  \ R                  " SS9 " S S5      5       r " S	 S
5      r\r\r\\\4   r\ R                  " SS9 " S S5      5       r " S S\R*                  5      rS\\\4   S\\\\4   -  4S jrg)    N)Any   )StrJSONTestNameFilterTupleformat_durationnormalize_test_nameprint_warningT)slotsc                   f    \ rS rSr% Sr\\S'   Sr\\S'   Sr\\S'   \	S 5       r
\	S 5       rS rS	rg
)	TestStats
   r   	tests_runfailuresskippedc                 |    [        U R                  [        U R                  5      [        U R                  5      5      $ N)r   testsRunlenr   r   )results    ./usr/lib/python3.13/test/libregrtest/result.pyfrom_unittestTestStats.from_unittest   s-    V__-V^^,. 	.    c                 X    [        U R                  U R                  U R                  5      $ r   )r   	attemptedfailedr   )resultss    r   from_doctestTestStats.from_doctest   s%    **  * 	*r   c                     U =R                   UR                   -  sl         U =R                  UR                  -  sl        U =R                  UR                  -  sl        g r   )r   r   r   )selfstatss     r   
accumulateTestStats.accumulate   s8    %//)'%r    N)__name__
__module____qualname____firstlineno__r   int__annotations__r   r   staticmethodr   r   r$   __static_attributes__r&   r   r   r   r   
   sK    IsHcGS. .
 * *
&r   r   c                   t    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSr\S 5       r\S 5       r\S 5       rSrg)State#   PASSEDFAILEDSKIPPEDUNCAUGHT_EXCREFLEAKENV_CHANGEDRESOURCE_DENIEDINTERRUPTEDWORKER_FAILED
WORKER_BUGDID_NOT_RUNTIMEOUTc                     U [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  1;   $ r   )r0   r3   r5   r6   r:   r;   r=   states    r   	is_failedState.is_failed1   sD    LLMMMM  	r   c                     U [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  1;  $ r   )r0   r4   r8   r9   r:   r;   r<   r?   s    r   has_meaningful_durationState.has_meaningful_duration;   sJ     MM!!  	r   c                 H    U [         R                  [         R                  1;   $ r   )r0   r9   r;   r?   s    r   	must_stopState.must_stopI   s&    
 
 	
r   r&   N)r'   r(   r)   r*   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r-   rA   rD   rG   r.   r&   r   r   r0   r0   #   sx    FFG!LGK'OK#MJKG    
 
r   r0   c                   Z   \ rS rSr% \\S'   Sr\S-  \S'   Sr\	S-  \S'   Sr
\\   S-  \S'   Sr\S-  \S'   Sr\\\\4      S-  \S'   Sr\\\\4      S-  \S	'   Sr\\   S-  \S
'   S\S\4S jrS rS\4S jrS rS rS\S\S\4S jrS\S-  4S jrSS jr\S\SS 4S j5       rSr g)
TestResultV   	test_nameNr@   durationxml_datar#   errorsr   covered_linesfail_env_changedreturnc                     U R                   [        R                  :X  a  U$ [        R                  U R                   5      $ r   )r@   r0   r7   rA   )r"   rQ   s     r   rA   TestResult.is_failedf   s-    ::***##tzz**r   c           
      B   U R                   (       ap  U R                  (       a_  [        U R                   5      n[        U R                  5      nSUS:  a  SOS-   nSUS:  a  SOS-   nU R                   SU SU SU SU S	3
$ U R                   (       a7  [        U R                   5      nSUS:  a  SOS-   nU R                   SU SU S	3$ U R                  (       a7  [        U R                  5      nSUS:  a  SOS-   nU R                   SU SU S	3$ U R                   S
3$ )Nerrorr   s failurez	 failed ( z, )z failed)rO   r   r   rL   )r"   lelferror_s	failure_ss        r   _format_failedTestResult._format_failedk   s   ;;4==T[[!BT]]#BQB7G!BFS;Inn%Yrd!G9Brd!I;aPP;;T[[!BQB7Gnn%Yrd!G9A>>==T]]#B!BFS;Inn%Yrd!I;a@@..!))r   c                    U R                   =[        R                  :X  a    U R                   S3$ =[        R                  :X  a    U R                  5       $ =[        R                  :X  a    U R                   S3$ =[        R                  :X  a    U R                   S3$ =[        R                  :X  a    U R                   S3$ =[        R                  :X  a    U R                   S3$ =[        R                  :X  a    U R                   S3$ =[        R                  :X  a    U R                   S3$ =[        R                  :X  a    U R                   S3$ =[        R                  :X  a    U R                   S	3$ =[        R                  :X  a    U R                   S
3$ [        R                  :X  a9  U R                   c   S5       eU R                   S[#        U R                   5       S3$  [%        S5      e)Nz passedz skippedz failed (uncaught exception)z failed (reference leak)z failed (env changed)z skipped (resource denied)z interruptedz worker non-zero exit codez worker bugz ran no testszself.duration is Nonez timed out (r[   zunknown result state: {state!r})r@   r0   r2   rL   r3   r`   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   rM   r   
ValueErrorr"   s    r   __str__TestResult.__str__   s   jj..)11**,,..)22###..))EFF..))ABB"""..))>??&&&..))CDD"""..)66$$$..))CDD!!!..)55"""..)77}}0I2II0..)odmm6T5UUVWW !BCCr   c                 @    [         R                  U R                  5      $ r   )r0   rD   r@   rd   s    r   rD   "TestResult.has_meaningful_duration   s    ,,TZZ88r   c                     U R                   b  U R                   [        R                  :X  a  [        R                  U l         g g r   )r@   r0   r2   r7   rd   s    r   set_env_changedTestResult.set_env_changed   s-    ::u||!;**DJ "<r   	fail_fastc                     [         R                  U R                  5      (       a  gU(       a  U R                  U5      (       a  gg)NTF)r0   rG   r@   rA   )r"   rl   rQ   s      r   rG   TestResult.must_stop   s0    ??4::&&(899r   c           	      F   / nU R                   =(       d    / nU R                  =(       d    / nUS4US44 HW  u  pEU HL  tpg[        XeS9nUc      g U(       d!  U(       a  SOSn	[        SU	 SU< S35            g UR	                  U5        MN     MY     U(       d  g [        U5      $ )	NTF)is_errorERRORFAILzrerun failed to parse z test name: z: don't filter tests)rO   r   r	   r
   appendtuple)
r"   match_testsrO   r   
error_listrp   	full_name_
match_name
error_types
             r   get_rerun_match_tests TestResult.get_rerun_match_tests   s    "==&BTNu%
 J ",	0N
%!,4&J!$::,l%.M1E#G H"":. ",	%
  [!!r   c                 6    [         R                  " X[        S9  g )N)cls)jsondump_EncodeTestResult)r"   files     r   write_json_intoTestResult.write_json_into   s    		$"34r   worker_jsonc                 4    [         R                  " U [        S9$ )N)object_hook)r   loads_decode_test_result)r   s    r   	from_jsonTestResult.from_json   s    zz+3FGGr   r?   )rR   N)!r'   r(   r)   r*   r   r,   r@   strrM   floatrN   listr#   r   rO   rt   r   rP   LocationboolrA   r`   re   rD   rj   rG   r   r{   r   r-   r   r   r.   r&   r   r   rJ   rJ   V   s   E3:!Hedl!!%Hd3i$%"E9t" ,0FDsCx!D(/-1Hd5c?#d*1 ,0M4>D(/+$ +4 +
*(D D<9+4 4 D "{T'9 "25 Hw H< H Hr   rJ   c                   >   ^  \ rS rSrS\S\\\4   4U 4S jjrSrU =r	$ )r      orR   c                    > [        U[        5      (       a1  [        R                  " U5      nUR                  R
                  US'   U$ [        TU ]  U5      $ )N__test_result__)
isinstancerJ   dataclassesasdict	__class__r'   superdefault)r"   r   r   r   s      r   r   _EncodeTestResult.default   sI    a$$ ''*F()(<(<F$%M7?1%%r   r&   )
r'   r(   r)   r*   r   dictr   r   r.   __classcell__)r   s   @r   r   r      s#    & &c3h & &r   r   datarR   c                     SU ;   a[  U R                  S5        U S   b  [        S0 U S   D6U S'   U S   b"  U S    Vs/ s H  n[        U5      PM     snU S'   [        S0 U D6$ U $ s  snf )Nr   r#   rP   r&   )popr   rt   rJ   )r   locs     r   r   r      s    D "#=$%6W6DM ,&*?&;%&;sc
&;%D! !D!!%s   A$)r   r   typingr   utilsr   r   r   r   r	   r
   	dataclassr   r0   r   FileNamer+   LineNort   r   rJ   JSONEncoderr   r   r   r&   r   r   <module>r      s      9 9
 T"& & #&0+
 +
\ 	6!" T"rH rH #rHj&(( &d38n d38n1L r   