
    j<                    t   d Z ddlmZ ddl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dlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z! ddl m"Z" ddl m#Z# ddl$m%Z% ddl&Z&ej'        dd         dk     rddl(m)Z) erddl*Z*ddl+Z,eeee-         e-ej.        f         ed         f         Z/d8d%Z0 G d& d'e!          Z1 G d( d)e"          Z2 ed*+          d9d1            Z3d2a4 ed*3          d:d5            Z5d;d7Z6dS )<z4Discover and run std-library "unittest" style tests.    )annotationsN)Any)Callable)	Generator)Iterable)Tuple)Type)TYPE_CHECKING)Union)is_async_function)hookimpl)FixtureRequest)	Collector)Item)exit)fail)skip)xfail)Class)Function)Module)CallInfo   )      )ExceptionGroup)NNN	collectorModule | ClassnamestrobjobjectreturnUnitTestCase | Nonec                    	 t           j        d         }t          ||j                  sd S n# t          $ r Y d S w xY wt          j        |          rd S t                              | ||          S )Nunittest)r   r!   )	sysmodules
issubclassTestCase	Exceptioninspect
isabstractUnitTestCasefrom_parent)r   r   r!   uts       Z/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/_pytest/unittest.pypytest_pycollect_makeitemr2   3   s    [$ #r{++ 	4	   tt # t##IDc#BBBs   ', 
::c                  0    e Zd ZdZd ZddZdd	Zdd
ZdS )r.   Tc                ,    |                      d          S )NrunTestr!   selfs    r1   newinstancezUnitTestCase.newinstanceL   s     xx	"""    r#   Iterable[Item | Collector]c              #    K   ddl m} | j        }t          |dd          sd S t	          |          }|s>|                     |           |                     |           |                                  | j        j	        
                    |                                 | j                    |            }d}|                    | j                  D ]I}t          | j        |          }t          |dd          s)t                              | |          V  d}J|sjt          | j        dd           }|Tt           j                            dd           }	|	||	j        j        k    r$t                              | d          V  d S d S d S d S )	Nr   )
TestLoader__test__TF)r   r5   twisted.trial.unittest)r&   r=   r!   getattr_is_skipped'_register_unittest_setup_method_fixture&_register_unittest_setup_class_fixture_register_setup_class_fixturesession_fixturemanagerparsefactoriesr9   nodeidgetTestCaseNamesTestCaseFunctionr/   r'   r(   getr*   r5   )
r8   r=   clsskippedloaderfoundsomethingr   xruntestr0   s
             r1   collectzUnitTestCase.collectT   s     ''''''hsJ-- 	Fc"" 	188===77<<<..000$33D4D4D4F4FTTT++DH55 	" 	"D$''A1j$// "..t$.?????!NN 	Mdh	488G"[__%=tDD:BK,?!?!?*66t)6LLLLLLL	M 	M""!?!?r:   rL   typeNonec                   t          dd          t          dd          dS t          dd           dfddfd}| j        j                            dj         || j        dd           dS )zSRegister an auto-use fixture to invoke setUpClass and
        tearDownClass (#517).
setUpClassNtearDownClassdoClassCleanupsc                     d S N r[   r:   r1   <lambda>zEUnitTestCase._register_unittest_setup_class_fixture.<locals>.<lambda>z   s    $ r:   r#   rT   c                     t          dd           } | sd S d | D             }t          |          dk    r|d         t          d|          )NtearDown_exceptionsc                    g | ]\  }}}|	S r[   r[   ).0_excs      r1   
<listcomp>zlUnitTestCase._register_unittest_setup_class_fixture.<locals>.process_teardown_exceptions.<locals>.<listcomp>   s    ;;;+1c1#;;;r:      r   zUnittest class cleanup errors)r@   lenr   )	exc_infos
exceptionsrL   s     r1   process_teardown_exceptionszXUnitTestCase._register_unittest_setup_class_fixture.<locals>.process_teardown_exceptions|   se      %:DAAI ;;;;;J :!## m#$%DjQQQr:   requestr   Generator[None]c              3  f  K   | j         }t          |          r(|j        }t          j                            |d          /	               n## t
          $ r                              w xY wd V  	 
                                          d S #                             w xY wNT)_use_item_location)rL   rA   __unittest_skip_why__pytestr   r+   )ri   rL   reasoncleanuprh   setupteardowns      r1   unittest_setup_class_fixturezYUnitTestCase._register_unittest_setup_class_fixture.<locals>.unittest_setup_class_fixture   s       +C3 M2k++Ft+LLL EGGGG !   GIII//111 EEE.'HJJJ			++----- 			++----s   
A  A08B B0_unittest_setUpClass_fixture_classTr   funcrH   scopeautouser#   rT   ri   r   r#   rj   r@   rE   rF   _register_fixture__qualname__rH   )r8   rL   rt   rq   rh   rr   rs   s    ` @@@@r1   rC   z3UnitTestCase._register_unittest_setup_class_fixtures   s     \400366=X-4#0,,??	R 	R 	R 	R 	R 	R	. 	. 	. 	. 	. 	. 	. 	. 	.0 	$66C1ACC-; 	7 	
 	
 	
 	
 	
r:   c                    t          |dd          t          |dd          dS dfd}| j        j                            d	|j         || j        d
d           dS )zWRegister an auto-use fixture to invoke setup_method and
        teardown_method (#517).setup_methodNteardown_methodri   r   r#   rj   c              3     K   | j         }t          |          r(|j        }t          j                            |d           || j                   d V   || j                   d S d S rl   )instancerA   rn   ro   r   r+   function)ri   r8   rp   rr   rs   s      r1   unittest_setup_method_fixturez[UnitTestCase._register_unittest_setup_method_fixture.<locals>.unittest_setup_method_fixture   s       #D4   M3k++Ft+LLL dG,---EEE#w/00000 $#r:   _unittest_setup_method_fixture_r   Trw   r|   r}   )r8   rL   r   rr   rs   s      @@r1   rB   z4UnitTestCase._register_unittest_setup_method_fixture   s     ^T223 1488=X-4	1 	1 	1 	1 	1 	1 	1 	$66E33CEE.; 	7 	
 	
 	
 	
 	
r:   N)r#   r;   )rL   rS   r#   rT   )__name__
__module__r   
nofuncargsr9   rR   rC   rB   r[   r:   r1   r.   r.   G   sk         J# # #M M M M>6
 6
 6
 6
p
 
 
 
 
 
r:   r.   c                       e Zd ZU dZdZded<   d Zed             Zd$ fd	Z	d$ fd
Z
d%dZd&dZd'dZd'dZd(dZ	 d)d*dZ	 d+d,dZd%dZd%dZd-dZd$dZd. fd#Z xZS )/rJ   TNz7list[_pytest._code.ExceptionInfo[BaseException]] | None_excinfoc                x    t          | j        t                    sJ | j                            | j                  S rZ   )
isinstanceparentr.   r!   r   r7   s    r1   _getinstancezTestCaseFunction._getinstance   s0    $+|44444{ty)))r:   c                    | j         S rZ   )r   r7   s    r1   	_testcasezTestCaseFunction._testcase   s
    }r:   r#   rT   c                V    d | _         t                                                       d S rZ   )_explicit_tearDownsuperrr   r8   	__class__s    r1   rr   zTestCaseFunction.setup   s     =Ar:   c                    | j         |                                   d | _         d | _        | `t                                                       d S rZ   )r   _obj	_instancer   rs   r   s    r1   rs   zTestCaseFunction.teardown   sN    ".##%%%&*D#	Nr:   testcaseunittest.TestCasec                    d S rZ   r[   r8   r   s     r1   	startTestzTestCaseFunction.startTest       r:   
rawexcinfo_SysExcInfoTypec                   t          |d|          }	 t          j        j        t                                       |          }|j        }|j        }n# t          $ r 	 	 t          j	        | }|
                    dd           t          d                    |          d           n:# t          j        t          f$ r  t          $ r t          d|d           Y nw xY wnB# t          $ r  t          j        $ r& t          j        j                                        }Y nw xY wY nw xY w| j                            dg                               |           d S )	N_rawexcinfor   zCNOTE: Incompatible Exception Representation, displaying natively:

 Fpytracez6ERROR: Unknown Incompatible Exception representation:
r   )r@   _pytest_codeExceptionInfoBaseExceptionfrom_exc_infovalue	traceback	TypeErrorformat_exceptioninsertr   joinr+   KeyboardInterruptfrom_current__dict__
setdefaultappend)r8   r   excinfora   valuess        r1   _addexcinfozTestCaseFunction._addexcinfo   s   Z
CC
	Em1-@NN G
 A!AA 	E 	E 	EE&7DFMM3  
 %88888(9:   $   ;,6; ; %      %   > E E E!-5BBDDE)	E, 	  R0077@@@@@sT   =A 
D&AB&%C!&4CC!CC! D&!<D D&D  D&%D&c                    	 t          |d         t          j                  rt          |d         j                   n# t          $ r Y nw xY w|                     |           d S )Nrd   )r   r   r+   msgr   r   r8   r   r   s      r1   addErrorzTestCaseFunction.addError  so    	*Q-88 (Z]&''' 	 	 	D	$$$$$s   := 
A
	A
c                0    |                      |           d S rZ   )r   r   s      r1   
addFailurezTestCaseFunction.addFailure  s     	$$$$$r:   rp   r    c                    	 t           j                            |d          # t          j        $ r* |                     t	          j                               Y d S w xY wrl   )ro   r   r+   r   r'   exc_info)r8   r   rp   s      r1   addSkipzTestCaseFunction.addSkip  sb    	-+''4'HHH~ 	- 	- 	-S\^^,,,,,,	-s   !# 5AAr   c                    	 t          t          |                     d S # t           j        $ r* |                     t	          j                               Y d S w xY wrZ   )r   r    r+   r   r'   r   )r8   r   r   rp   s       r1   addExpectedFailurez#TestCaseFunction.addExpectedFailure   sa    	-#f++ 	- 	- 	-S\^^,,,,,,	-s     5AA"twisted.trial.unittest.Todo | Nonec                    d}|r|d|j          z  }	 t          |d           d S # t          j        $ r* |                     t	          j                               Y d S w xY w)NzUnexpected successz: Fr   )rp   r   r+   r   r'   r   )r8   r   rp   r   s       r1   addUnexpectedSuccessz%TestCaseFunction.addUnexpectedSuccess+  s    
 # 	(''''C	-e$$$$$$~ 	- 	- 	-S\^^,,,,,,	-s   & 5AAc                    d S rZ   r[   r   s     r1   
addSuccesszTestCaseFunction.addSuccess9  r   r:   c                    d S rZ   r[   r   s     r1   stopTestzTestCaseFunction.stopTest<  r   r:   elapsedfloatc                    d S rZ   r[   )r8   r   r   s      r1   addDurationzTestCaseFunction.addDuration?  r   r:   c                6   ddl m} | j        }|J  ||            t          | j                  r ||            d S t          | j        t                    sJ t          | j                  pt          | j        j                  }| j	        
                    d          r |s|j        | _        t          |dd            t          || j        | j                   	  ||            t          || j                   d S # t          || j                   w xY w)Nr   )&maybe_wrap_pytest_function_for_tracing)resultusepdbtearDownc                     d S rZ   r[   )argss    r1   r\   z*TestCaseFunction.runtest.<locals>.<lambda>Y  s    D r:   )_pytest.debuggingr   r   r   r!   r   r   r.   rA   config	getoptionr   r   setattrr   delattr)r8   r   r   rM   s       r1   rQ   zTestCaseFunction.runtestB  sA   LLLLLL=###..t444 TX&& 	-HD!!!!!! dk<88888!$(++K{4;?/K/KG{$$X.. Bw B*2*;'*.@.@AAA Hdi222-%%%%$),,,,,$),,,,s   D Dr   *_pytest._code.ExceptionInfo[BaseException]_pytest._code.Tracebackc                t    t                                          |          } |j        d           }|s|}|S )Nc                B    | j         j                            d           S )N
__unittest)frame	f_globalsrK   )rP   s    r1   r\   z4TestCaseFunction._traceback_filter.<locals>.<lambda>h  s    !'+//=== r:   )r   _traceback_filterfilter)r8   r   r   
ntracebackr   s       r1   r   z"TestCaseFunction._traceback_filterc  sK     GG--g66	%Y%==
 

  	#"Jr:   r{   )r   r   r#   rT   )r   r   r#   rT   )r   r   r   r   r#   rT   )r   r   rp   r    r#   rT   )r   )r   r   r   r   rp   r    r#   rT   rZ   )r   r   rp   r   r#   rT   )r   r   r   r   r#   rT   )r   r   r#   r   )r   r   r   r   r   __annotations__r   propertyr   rr   rs   r   r   r   r   r   r   r   r   r   r   rQ   r   __classcell__)r   s   @r1   rJ   rJ      s        JHLHLLLL* * *   X     
        !A !A !A !AF% % % %% % % %
- - - - 		- 	- 	- 	- 	- 6:- - - - -         - - - -B	 	 	 	 	 	 	 	 	 	r:   rJ   T)tryfirstitemr   callCallInfo[None]rT   c                   t          | t                    r:| j        r3| j                            d          |_        	 |`n# t          $ r Y nw xY wt          j        	                    d          }|rd|j        r_t          |j        j
        |j                  rB|j        t          d                              fd|j                  }|j        |_        d S d S d S d S )Nr   r&   c                 P    t          j        t           j                            S rZ   )ro   r   r    r   )r   s   r1   r\   z+pytest_runtest_makereport.<locals>.<lambda>  s    FKGM 2 233 r:   )r   rJ   r   popr   r   AttributeErrorr'   r(   rK   r   SkipTestr   	from_callwhen)r   r   r&   call2r   s       @r1   pytest_runtest_makereportr   o  s    $()) = 	=,,Q//DLKK!    {z**H %DL %Z0BHDU%V%V %,((3333TY
 
 }% % % % % %s   A 
AAF)wrapperGenerator[None, object, object]c              #  N  K   t          | t                    rdt          j        v rzt          j        d         }|j        j        t          sddlm} ddl	m
}  |t          |           da	 dfd	}||j        _        	 d V }|j        _        n# |j        _        w xY wd V }|S )	Nr?   ztwisted.python.failurer   )	IReporter)classImplementsTc                    |t          j                    | _        n|t          |          }|||f| _        	  | ||||           d S # t          $ r  | |||           Y d S w xY w)N)captureVars)r'   r   r   rS   r   )r8   	exc_valueexc_typeexc_tbr   Failure__init__s        r1   excstorez)pytest_runtest_protocol.<locals>.excstore  s      #&<>>  ##IH$,i#@ C)Xv;       C C Ci6BBBBBBCs   A A'&A')NNNN)r   rJ   r'   r(   Failure__init__classImplements_has_runtwisted.trial.itrialr   zope.interfacer   )r   r0   r   r   r  resr  s         @r1   pytest_runtest_protocolr	    s      $()) !.F#+.U.U+67*-& 	+666666666666O,i888&*# KO	C 	C 	C 	C 	C 	C  '
	2%%C"1BJ/BJ1111eeJs   ?B Bboolc                >    t          t          | dd                    S )zDReturn True if the given object has been marked with @unittest.skip.__unittest_skip__F)r
  r@   r6   s    r1   rA   rA     s    0%88999r:   )r   r   r   r    r!   r"   r#   r$   )r   r   r   r   r#   rT   )r   r   r#   r   )r#   r
  )7__doc__
__future__r   r,   r'   r   typestypingr   r   r   r   r   r	   r
   r   _pytest._coder   _pytest.compatr   _pytest.configr   _pytest.fixturesr   _pytest.nodesr   r   _pytest.outcomesr   r   r   r   _pytest.pythonr   r   r   _pytest.runnerr   ro   version_infoexceptiongroupr   r&   twisted.trial.unittesttwistedr   TracebackTyper   r2   r.   rJ   r   r  r	  rA   r[   r:   r1   <module>r     sM   : : " " " " " "  



                                                                , , , , , , # # # # # # + + + + + + # # # # # #       ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! " " " " " "             # # # # # # ! ! ! ! ! ! # # # # # #  BQB'!!------ "OOO!!!! 	$}
}e.A
AB	
C C C C(@
 @
 @
 @
 @
5 @
 @
 @
Fb b b b bx b b bJ 
4% % % %.    
$# # # #L: : : : : :r:   