
    9[g<                    N   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jN                  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/	 	 	 	 	 	 	 	 d)dZ0 G d de!      Z1 G d  d!e"      Z2 ed"#      d*d$       Z3d%a4 ed"&      d+d'       Z5d,d(Z6y)-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)NNNc                    	 t         j                  d   }t        ||j                        sy 	 t        j                  |      ry t        j                  | ||      S # t        $ r Y y w xY w)Nunittest)nameobj)	sysmodules
issubclassTestCase	Exceptioninspect
isabstractUnitTestCasefrom_parent)	collectorr   r    uts       K/var/www/html/bid-api/venv/lib/python3.12/site-packages/_pytest/unittest.pypytest_pycollect_makeitemr-   3   sl    [[$ #r{{+ , ###IDc#BB  s   )A 	A'&A'c                  .    e Zd ZdZd ZddZddZddZy)	r(   Tc                $    | j                  d      S )NrunTestr    selfs    r,   newinstancezUnitTestCase.newinstanceL   s     xx	""    c              #    K   ddl m} | j                  }t        |dd      sy t	        |      }|s2| j                  |       | j                  |       | j                          | j                  j                  j                  | j                         | j                          |       }d}|j                  | j                        D ]A  }t        | j                  |      }t        |dd      s't        j                  | |       d}C |spt        | j                  dd       }|Vt         j"                  j%                  dd       }	|	||	j&                  j(                  k7  rt        j                  | d       y y y y w)	Nr   )
TestLoader__test__TF)r   r0   twisted.trial.unittest)r   r7   r    getattr_is_skipped'_register_unittest_setup_method_fixture&_register_unittest_setup_class_fixture_register_setup_class_fixturesession_fixturemanagerparsefactoriesr4   nodeidgetTestCaseNamesTestCaseFunctionr)   r!   r"   getr$   r0   )
r3   r7   clsskippedloaderfoundsomethingr   xruntestr+   s
             r,   collectzUnitTestCase.collectT   sJ    'hhsJ-c"88=77<..0$$33D4D4D4FT++DHH5D$'A1j$/"..t$.??!N 6 dhh	48G"[[__%=tD:BKK,?,?!?*66t)6LL "@ # s   E9E;c                   t        dd      t        dd      yt        dd       dfd	 	 	 	 dfd}| j                  j                  j                  dj                   || j
                  d	d
       y)zSRegister an auto-use fixture to invoke setUpClass and
        tearDownClass (#517).
setUpClassNtearDownClassdoClassCleanupsc                      y N rS   r5   r,   <lambda>zEUnitTestCase._register_unittest_setup_class_fixture.<locals>.<lambda>z   s    $r5   c                     t        dd       } | sy | D cg c]  \  }}}|
 }}}t        |      dk(  r|d   t        d|      c c}}w )NtearDown_exceptions   r   zUnittest class cleanup errors)r:   lenr   )	exc_infos_exc
exceptionsrF   s       r,   process_teardown_exceptionszXUnitTestCase._register_unittest_setup_class_fixture.<locals>.process_teardown_exceptions|   s_      %:DAI1:;+1c1#J; :!# m#$%DjQQ <s   Ac              3  @  K   | j                   }t        |      r-|j                  }t        j                  j                  |d      	          d  	                            y # t
        $ r                    w xY w#                   w xY wwNT)_use_item_location)rF   r;   __unittest_skip_why__pytestr   r%   )requestrF   reasoncleanupr]   setupteardowns      r,   unittest_setup_class_fixturezYUnitTestCase._register_unittest_setup_class_fixture.<locals>.unittest_setup_class_fixture   s      ++C322kk++Ft+LL G .'J	+- ! I/1 	+-s6   ABA/ B	B  B/BBBB_unittest_setUpClass_fixture_classTr   funcrB   scopeautousereturnNonerc   r   rp   zGenerator[None]r:   r?   r@   _register_fixture__qualname__rB   )r3   rF   rh   re   r]   rf   rg   s    ` @@@@r,   r=   z3UnitTestCase._register_unittest_setup_class_fixtures   s     \4036=X-#0,?	R	.#	.	. 	.0 	$$6601A1A0BC-;; 	7 	
r5   c                    t        |dd      t        |dd      y	 	 	 	 d	fd}| j                  j                  j                  d|j                   || j
                  dd       y)
zWRegister an auto-use fixture to invoke setup_method and
        teardown_method (#517).setup_methodNteardown_methodc              3     K   | j                   }t        |      r-|j                  }t        j                  j                  |d       || j                         d   || j                         y y wr_   )instancer;   ra   rb   r   r%   function)rc   r3   rd   rf   rg   s      r,   unittest_setup_method_fixturez[UnitTestCase._register_unittest_setup_method_fixture.<locals>.unittest_setup_method_fixture   su      ##D4 33kk++Ft+LL dG,,-#w//0 $s   A5A8_unittest_setup_method_fixture_r{   Trk   rr   rs   )r3   rF   r|   rf   rg   s      @@r,   r<   z4UnitTestCase._register_unittest_setup_method_fixture   s     ^T23 148=X-	1#	1	1 	$$66233C3C2DE.;; 	7 	
r5   N)rp   zIterable[Item | Collector])rF   typerp   rq   )__name__
__module__ru   
nofuncargsr4   rL   r=   r<   rS   r5   r,   r(   r(   G   s     J#M>6
p
r5   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 ) rD   TNz7list[_pytest._code.ExceptionInfo[BaseException]] | None_excinfoc                    t        | j                  t              sJ | j                  j                  | j                        S rR   )
isinstanceparentr(   r    r   r2   s    r,   _getinstancezTestCaseFunction._getinstance   s-    $++|444{{tyy))r5   c                    | j                   S rR   )rz   r2   s    r,   	_testcasezTestCaseFunction._testcase   s    }}r5   c                0    d | _         t        | 	          y rR   )_explicit_tearDownsuperrf   r3   	__class__s    r,   rf   zTestCaseFunction.setup   s    =Ar5   c                z    | j                   | j                          d | _         d | _        | `t        |           y rR   )r   _obj	_instancer   rg   r   s    r,   rg   zTestCaseFunction.teardown   s:    "".##%&*D#	Nr5   c                     y rR   rS   r3   testcases     r,   	startTestzTestCaseFunction.startTest       r5   c                   t        |d|      }	 t        j                  j                  t           j                  |      }|j                  }|j                  }| j                   j#                  dg       j%                         y # t        $ r 	 	 t        j                  | }|j                  dd       t        dj                  |      d       n8# t        j                  t        f$ r  t        $ r t        d|d       Y nw xY wnJ# t        $ r  t        j                  $ r+ t        j                  j                  j                         }Y nw xY wY w xY w)	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)r3   
rawexcinfoexcinforZ   valuess        r,   _addexcinfozTestCaseFunction._addexcinfo   s<   Z
C
	Emm11-@NNG
 A!!A. 	  R077@-  	EE&77DFMM3
 %8(9: $ ,,6>; % % >> E!--55BBDE)	EsV   AB 	EA CD2DDDDEAEEEEEc                    	 t        |d   t        j                        rt        |d   j                         | j                  |       y # t        $ r Y w xY w)NrW   )r   r   r%   msgr   r   r3   r   r   s      r,   addErrorzTestCaseFunction.addError  sO    	*Q-8Z]&&' 	$  		s   5A	 		AAc                &    | j                  |       y rR   )r   r   s      r,   
addFailurezTestCaseFunction.addFailure  s     	$r5   c                    	 t         j                  j                  |d      # t        j                  $ r& | j                  t	        j
                                Y y w xY wr_   )rb   r   r%   r   r!   exc_info)r3   r   rd   s      r,   addSkipzTestCaseFunction.addSkip  sH    	-++''4'HH~~ 	-S\\^,	-s   !# 6AAc                    	 t        t        |             y # t         j                  $ r& | j                  t	        j
                                Y y w xY wrR   )r   strr%   r   r!   r   )r3   r   r   rd   s       r,   addExpectedFailurez#TestCaseFunction.addExpectedFailure   s:    	-#f+ 	-S\\^,	-s    6AAc                    d}|r|d|j                    z  }	 t        |d       y # t        j                  $ r& | j                  t	        j
                                Y y w xY w)NzUnexpected successz: Fr   )rd   r   r%   r   r!   r   )r3   r   rd   r   s       r,   addUnexpectedSuccessz%TestCaseFunction.addUnexpectedSuccess+  sW    
 #R''C	-e$~~ 	-S\\^,	-s   & 6AAc                     y rR   rS   r   s     r,   
addSuccesszTestCaseFunction.addSuccess9  r   r5   c                     y rR   rS   r   s     r,   stopTestzTestCaseFunction.stopTest<  r   r5   c                     y rR   rS   )r3   r   elapseds      r,   addDurationzTestCaseFunction.addDuration?  r   r5   c                R   ddl m} | j                  }|J  ||        t        | j                        r
 ||        y t        | j                  t              sJ t        | j                        xs t        | j                  j                        }| j                  j                  d      r!|s|j                  | _        t        |dd        t        || j                  | j                         	  ||        t        || j                         y # t        || j                         w xY w)Nr   )&maybe_wrap_pytest_function_for_tracing)resultusepdbtearDownc                      y rR   rS   )argss    r,   rT   z*TestCaseFunction.runtest.<locals>.<lambda>Y  s    Dr5   )_pytest.debuggingr   rz   r   r    r   r   r(   r;   config	getoptionr   r   setattrr   delattr)r3   r   r   rG   s       r,   rK   zTestCaseFunction.runtestB  s    L==###.t4 TXX&D! dkk<888!$((+K{4;;??/KG{{$$X.w*2*;*;'*.@A Hdii2-%$)),$)),s   .	D D&c                T    t         |   |      } |j                  d       }|s|}|S )Nc                N    | j                   j                  j                  d       S )N
__unittest)frame	f_globalsrE   )rJ   s    r,   rT   z4TestCaseFunction._traceback_filter.<locals>.<lambda>h  s    !''++//==r5   )r   _traceback_filterfilter)r3   r   r   
ntracebackr   s       r,   r   z"TestCaseFunction._traceback_filterc  s9     G-g6	%Y%%=

 "Jr5   ro   )r   unittest.TestCaserp   rq   )r   _SysExcInfoTyperp   rq   )r   r   r   r   rp   rq   )r   r   rd   r   rp   rq   )r   )r   r   r   r   rd   r   rp   rq   rR   )r   r   rd   z"twisted.trial.unittest.Todo | Nonerp   rq   )r   r   r   floatrp   rq   )r   z*_pytest._code.ExceptionInfo[BaseException]rp   z_pytest._code.Traceback)r   r   ru   r   r   __annotations__r   propertyr   rf   rg   r   r   r   r   r   r   r   r   r   r   rK   r   __classcell__)r   s   @r,   rD   rD      s   JHLHEL*  
!AF%)%7F%	%%)%7F%	%
- 		-#	- $	- 		-
 
	- 6:-#- 3- 
	--B	A		 	 	r5   rD   T)tryfirstc                   t        | t              r/| j                  r#| j                  j                  d      |_        	 |`t        j                  j                  d      }|r||j                  rot        |j                  j                  |j                        rD|j                  t        d    j                  fd|j                        }|j                  |_        y y y y # t        $ r Y w xY w)Nr   r   c                 T    t        j                  t         j                              S rR   )rb   r   r   r   )r   s   r,   rT   z+pytest_runtest_makereport.<locals>.<lambda>  s    FKKGMM 23r5   )r   rD   r   popr   r   AttributeErrorr!   r"   rE   r   SkipTestr   	from_callwhen)itemcallr   call2r   s       @r,   pytest_runtest_makereportr   o  s    $()====,,Q/DLK {{z*HDLLZ0B0BHDUDU%V,,((3TYY
 }} &WLx " s   C 	C+*C+F)wrapperc              #  |  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 }|j                  _        |S d }|S # |j                  _        w xY ww)	Nr9   ztwisted.python.failurer   )	IReporter)classImplementsTc                    |t        j                         | _        n|t        |      }|||f| _        	  | ||||       y # t        $ r  | |||       Y y w xY w)N)captureVars)r!   r   r   r~   r   )r3   	exc_valueexc_typeexc_tbr   Failure__init__s        r,   excstorez)pytest_runtest_protocol.<locals>.excstore  sq      #&<<> ##IH$,i#@ C)Xv;  Ci6BCs   A AA)NNNN)r   rD   r!   r"   Failure__init__classImplements_has_runtwisted.trial.itrialr   zope.interfacer   )r   r+   r   r   r   resr   s         @r,   pytest_runtest_protocolr     s     $().F#++.U++67**--&66,i8&*# KO	C  '

	2C"1BJJ J J #2BJJs   BB<	B& B<&B99B<c                .    t        t        | dd            S )zDReturn True if the given object has been marked with @unittest.skip.__unittest_skip__F)boolr:   r1   s    r,   r;   r;     s    0%899r5   )r*   zModule | Classr   r   r    objectrp   zUnitTestCase | None)r   r   r   zCallInfo[None]rp   rq   )r   r   rp   zGenerator[None, object, object])rp   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   rb   version_infoexceptiongroupr   r   twisted.trial.unittesttwistedr   TracebackTyper   r-   r(   rD   r   r   r   r;   rS   r5   r,   <module>r     s;   : "  
             , # + #  ! ! ! "   # ! #  BQ'!-! 	$}
}e.A.A
AB	
CC%(C/5CC(@
5 @
Fbx bJ 
4% %.    
$# #L:r5   