§
    øÛgÏ  ã                   ó  — 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„ Z G d„ dej        ¦  «        Z G d	„ d
ej        ¦  «        Z ej        d¬¦  «        d„ ¦   «         Z ej        d¬¦  «        d„ ¦   «         Zg fd„ZdS )z> discovery and running of std-library "unittest" style tests. é    )Úabsolute_importN)Útransfer_markers)ÚMarkEvaluatorc                 ó˜   — 	 t          |t          j        d         j        ¦  «        sd S n# t          $ r Y d S w xY wt          || ¬¦  «        S )NÚunittest©Úparent)Ú
issubclassÚsysÚmodulesÚTestCaseÚ	ExceptionÚUnitTestCase)Ú	collectorÚnameÚobjs      úF/granary/edev/quantum/lib/python3.11/site-packages/_pytest/unittest.pyÚpytest_pycollect_makeitemr      sd   € ðÝ˜#�sœ{¨:Ô6Ô?Ñ@Ô@ð 	ØˆFð	øåð ð ð Øˆˆðøøøõ ˜ YÐ/Ñ/Ô/Ð/s   ‚%* ª
8·8c                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )r   Tc                 ó  •— | j         }t          |dd¦  «        rd S t          |dd ¦  «        }|�
 |¦   «          t          |dd ¦  «        }|�|                      |¦  «         t          t          | ¦  «                             ¦   «          d S )NÚ__unittest_skip__FÚ
setUpClassÚtearDownClass)r   ÚgetattrÚaddfinalizerÚsuperr   Úsetup)ÚselfÚclsr   ÚteardownÚ	__class__s       €r   r   zUnitTestCase.setup   s“   ø€ ØŒhˆÝ�3Ð+¨UÑ3Ô3ð 	ØˆFÝ˜˜\¨4Ñ0Ô0ˆØÐØˆE‰GŒGˆGÝ˜3 °Ñ6Ô6ˆØÐØ×Ò˜hÑ'Ô'Ð'Ý�l˜DÑ!Ô!×'Ò'Ñ)Ô)Ð)Ð)Ð)ó    c              #   ó¬  K  — ddl m} | j        }t          |dd¦  «        sd S | j        j                             | d¬¦  «          |¦   «         }|                      t          j	        ¦  «        j        }d}| 
                    | j        ¦  «        D ]`}t          | j        |¦  «        }t          |dd¦  «        sŒ)t          |d|¦  «        }t          |||¦  «         t          || ¬¦  «        V — d}Œa|s_t          | j        d	d ¦  «        }	|	�It          j                             d
d ¦  «        }
|
�|	|
j        j        k    rt          d	| ¬¦  «        V — d S d S d S d S )Nr   )Ú
TestLoaderÚ__test__T)r   FÚim_funcr   ÚrunTestútwisted.trial.unittest)r   r$   r   r   ÚsessionÚ_fixturemanagerÚparsefactoriesÚ	getparentÚpytestÚModuleÚgetTestCaseNamesr   ÚTestCaseFunctionr   r   Úgetr   r'   )r   r$   r   ÚloaderÚmoduleÚfoundsomethingr   ÚxÚfuncobjÚruntestÚuts              r   ÚcollectzUnitTestCase.collect*   s‰  è è € Ø'Ð'Ð'Ð'Ð'Ð'ØŒhˆÝ�s˜J¨Ñ-Ô-ð 	ØˆFØŒÔ$×3Ò3°DÀ4Ð3ÑHÔHÐHØ�‘”ˆØ—’¥¤Ñ.Ô.Ô2ˆØˆØ×+Ò+¨D¬HÑ5Ô5ð 	"ð 	"ˆDÝ˜œ $Ñ'Ô'ˆAÝ˜1˜j¨$Ñ/Ô/ð ØÝ˜a ¨AÑ.Ô.ˆGÝ˜W c¨6Ñ2Ô2Ð2Ý" 4°Ð5Ñ5Ô5Ð5Ð5Ð5Ø!ˆNˆNàð 	CÝ˜dœh¨	°4Ñ8Ô8ˆGØÐ"Ý”[—_’_Ð%=¸tÑDÔD�Ø�: ¨B¬KÔ,?Ò!?Ð!?Ý*¨9¸TÐBÑBÔBÐBÐBÐBÐBÐBð	Cð 	Cà"Ð"à!?Ð!?r"   )Ú__name__Ú
__module__Ú__qualname__Ú
nofuncargsr   r9   Ú__classcell__)r!   s   @r   r   r      sU   ø€ € € € € ð €Jð
*ð 
*ð 
*ð 
*ð 
*ðCð Cð Cð Cð Cð Cð Cr"   r   c                   ój   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zdd„Zdd„Zd„ Zd„ Zd„ Zd„ ZdS )r0   Nc                 ór  — | j                              | j        ¦  «        | _        |                      ¦   «          t          | j        | j        ¦  «        | _        t          | j        d¦  «        r| j                             | j        ¦  «         t          | d¦  «        r| j	         
                    ¦   «          d S d S )NÚsetup_methodÚ_request)r	   r   r   Ú	_testcaseÚ_fix_unittest_skip_decoratorr   Ú_objÚhasattrrA   rB   Ú_fillfixtures©r   s    r   r   zTestCaseFunction.setupH   s¢   € ØœŸš¨¬Ñ3Ô3ˆŒØ×)Ò)Ñ+Ô+Ð+Ý˜DœN¨D¬IÑ6Ô6ˆŒ	Ý�4”> >Ñ2Ô2ð 	3ØŒN×'Ò'¨¬	Ñ2Ô2Ð2Ý�4˜Ñ$Ô$ð 	*ØŒM×'Ò'Ñ)Ô)Ð)Ð)Ð)ð	*ð 	*r"   c                 ól   — t           j        d         dk    rt          | j        d| j        ¦  «         dS dS )aO  
        The @unittest.skip decorator calls functools.wraps(self._testcase)
        The call to functools.wraps() fails unless self._testcase
        has a __name__ attribute. This is usually automatically supplied
        if the test is a function or method, but we need to add manually
        here.

        See issue #1169
        r   é   r:   N)r   Úversion_infoÚsetattrrC   r   rH   s    r   rD   z-TestCaseFunction._fix_unittest_skip_decoratorQ   s;   € õ Ô˜AÔ !Ò#Ð#Ý�D”N J°´	Ñ:Ô:Ð:Ð:Ð:ð $Ð#r"   c                 ór   — t          | j        d¦  «        r!| j                             | j        ¦  «         d S d S )NÚteardown_method)rF   rC   rN   rE   rH   s    r   r    zTestCaseFunction.teardown^   s?   € Ý�4”>Ð#4Ñ5Ô5ð 	6ØŒN×*Ò*¨4¬9Ñ5Ô5Ð5Ð5Ð5ð	6ð 	6r"   c                 ó   — d S ©N© ©r   Útestcases     r   Ú	startTestzTestCaseFunction.startTestb   ó   € Øˆr"   c                 ó‚  — t          |d|¦  «        }	 t          j                             |¦  «        }nÞ# t          $ rÑ 	 	 t          j        |Ž }|                     dd¦  «         t          j	        d 
                    |¦  «        d¬¦  «         n;# t          j	        j        t          f$ r ‚  t          j	        d|›�d¬¦  «         Y nxY wnB# t          $ r ‚ t          j	        j        $ r! t          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:
Ú_excinfo)r   Ú_pytestÚ_codeÚExceptionInfoÚ	TypeErrorÚ	tracebackÚformat_exceptionÚinsertr-   ÚfailÚjoinr   ÚKeyboardInterruptÚ__dict__Ú
setdefaultÚappend)r   Ú
rawexcinfoÚexcinfoÚls       r   Ú_addexcinfozTestCaseFunction._addexcinfoe   s€  € å˜Z¨¸
ÑCÔCˆ
ð	8Ý”m×1Ò1°*Ñ=Ô=ˆGˆGøÝð 	8ð 	8ð 	8ð8ð	MÝ!Ô2°JÐ?�AØ—H’H˜Qð !3ñ 4ô 4ð 4å”K §¢¨¡
¤
°EÐ:Ñ:Ô:Ð:Ð:øÝœÔ-Õ/@ÐAð ð ð ØðMÝ”K�KØ0:°
ð!=ØFKðMñ Mô Mð Mð Mð Møøøøøå$ð ð ð ØÝ”;Ô(ð 8ð 8ð 8Ý!œ-×5Ò5Ñ7Ô7���ð8øøøøøð	8øøøð  	Œ× Ò  ¨RÑ0Ô0×7Ò7¸Ñ@Ô@Ð@Ð@Ð@sE   “3 ³
D¿ABÂC	Â6CÃC	ÃDÃ	<DÄDÄDÄDÄDc                 ó0   — |                       |¦  «         d S rP   ©rk   ©r   rS   rh   s      r   ÚaddErrorzTestCaseFunction.addError|   ó   € Ø×Ò˜Ñ$Ô$Ð$Ð$Ð$r"   c                 ó0   — |                       |¦  «         d S rP   rm   rn   s      r   Ú
addFailurezTestCaseFunction.addFailure~   rp   r"   c                 óô   — 	 t          j        |¦  «         d S # t           j        j        $ rK t          | d¦  «        | _        d| j        _        |                      t          j        ¦   «         ¦  «         Y d S w xY w)NÚSkipTestT)	r-   Úskipr   r   Ú	_evalskipÚresultrk   r   Úexc_info©r   rS   Úreasons      r   ÚaddSkipzTestCaseFunction.addSkip�   s{   € ð	-ÝŒK˜ÑÔÐÐÐøÝŒ{Ô$ð 	-ð 	-ð 	-Ý*¨4°Ñ<Ô<ˆDŒNØ$(ˆDŒNÔ!Ø×Ò�Sœ\™^œ^Ñ,Ô,Ð,Ð,Ð,Ð,ð	-øøøs   ‚ ˜AA7Á6A7rX   c                 óÌ   — 	 t          j        t          |¦  «        ¦  «         d S # t           j        j        $ r* |                      t          j        ¦   «         ¦  «         Y d S w xY wrP   )r-   ÚxfailÚstrr   rk   r   rx   )r   rS   rh   rz   s       r   ÚaddExpectedFailurez#TestCaseFunction.addExpectedFailure‰   sf   € ð	-ÝŒL�˜V™œÑ%Ô%Ð%Ð%Ð%øÝŒ|Ô%ð 	-ð 	-ð 	-Ø×Ò�Sœ\™^œ^Ñ,Ô,Ð,Ð,Ð,Ð,ð	-øøøs   ‚!% ¥:A#Á"A#c                 ó   — || _         d S rP   )Ú_unexpectedsuccessry   s      r   ÚaddUnexpectedSuccessz%TestCaseFunction.addUnexpectedSuccess�   s   € Ø"(ˆÔÐÐr"   c                 ó   — d S rP   rQ   rR   s     r   Ú
addSuccesszTestCaseFunction.addSuccess’   rU   r"   c                 ó   — d S rP   rQ   rR   s     r   ÚstopTestzTestCaseFunction.stopTest•   rU   r"   c                 ó¦   — | j         j                             d¦  «        €|                      | ¬¦  «         d S | j                             ¦   «          d S )NÚ	pdbinvoke)rw   )ÚconfigÚpluginmanagerÚ
get_pluginrC   ÚdebugrH   s    r   r7   zTestCaseFunction.runtest˜   sQ   € ØŒ;Ô$×/Ò/°Ñ<Ô<ÐDØ�NŠN $ˆNÑ'Ô'Ð'Ð'Ð'ð ŒN× Ò Ñ"Ô"Ð"Ð"Ð"r"   c                 ó’   — t           j                             | |¦  «         |j                             d„ ¦  «        }|r	||_        d S d S )Nc                 óB   — | j         j                             d¦  «         S )NÚ
__unittest)ÚframeÚ	f_globalsr1   )r5   s    r   ú<lambda>z2TestCaseFunction._prunetraceback.<locals>.<lambda>£   s   € ˜œÔ*×.Ò.¨|Ñ<Ô<Ð<€ r"   )r-   ÚFunctionÚ_prunetracebackr_   Úfilter)r   ri   r_   s      r   r”   z TestCaseFunction._prunetraceback    sX   € ÝŒ×'Ò'¨¨gÑ6Ô6Ð6ØÔ%×,Ò,Ø<Ð<ñ>ô >ˆ	àð 	*Ø )ˆGÔÐÐð	*ð 	*r"   )rX   )r:   r;   r<   rZ   r   rD   r    rT   rk   ro   rr   r{   r   r‚   r„   r†   r7   r”   rQ   r"   r   r0   r0   E   sø   € € € € € Ø€Hð*ð *ð *ð;ð ;ð ;ð6ð 6ð 6ðð ð ðAð Að Að.%ð %ð %ð%ð %ð %ð-ð -ð -ð-ð -ð -ð -ð)ð )ð )ð )ðð ð ðð ð ð#ð #ð #ð*ð *ð *ð *ð *r"   r0   T)Útryfirstc                 ó¬   — t          | t          ¦  «        r<| j        r7| j                             d¦  «        |_        	 |`d S # t          $ r Y d S w xY wd S d S )Nr   )Ú
isinstancer0   rZ   Úpopri   rw   ÚAttributeError)ÚitemÚcalls     r   Úpytest_runtest_makereportr�   §   sz   € å�$Õ(Ñ)Ô)ð ØŒ=ð 	Øœ=×,Ò,¨QÑ/Ô/ˆDŒLðØ�K�K�KøÝ!ð ð ð Ø��ðøøøðð ð	ð 	s   ½A Á
AÁA)Úhookwrapperc              #   óþ   ‡K  — t          | t          ¦  «        r`dt          j        v rRt          j        d         }|j        j        Št          ¦   «          	 	 dˆfd„	}||j        _        d V — ‰|j        _        d S d V — d S )Nr(   ztwisted.python.failurec                 óÔ   •— |€t          j        ¦   «         | _        n|€t          |¦  «        }|||f| _        	  ‰| ||||¬¦  «         d S # t          $ r  ‰| |||¦  «         Y d S w xY w)N)ÚcaptureVars)r   rx   rW   Útyper^   )r   Ú	exc_valueÚexc_typeÚexc_tbr¡   ÚFailure__init__s        €r   Úexcstorez)pytest_runtest_protocol.<locals>.excstoreº   s¬   ø€ àÐ Ý#&¤<¡>¤>�Ô Ð àÐ#Ý# I™œ�HØ$,¨i¸Ð#@�Ô ðCØ�  i°¸6Ø +ð-ñ -ô -ð -ð -ð -øåð Cð Cð CØ�  i°¸6ÑBÔBÐBÐBÐBÐBðCøøøs   ¹A ÁA'Á&A')NNNN)r˜   r0   r   r   ÚFailureÚ__init__Ú(check_testcase_implements_trial_reporter)r›   r8   r§   r¦   s      @r   Úpytest_runtest_protocolr«   ³   s¦   øè è € å�$Õ(Ñ)Ô)ð Ø¥3¤;Ð.Ð.ÝŒ[Ð1Ô2ˆØœ*Ô-ˆÝ0Ñ2Ô2Ð2ØAEØð	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 'ˆŒ
ÔØˆˆˆØ-ˆŒ
ÔÐÐàˆˆˆˆˆr"   c                 ór   — | rd S ddl m} ddlm}  |t          |¦  «         |                      d¦  «         d S )Nr   )ÚclassImplements)Ú	IReporteré   )Úzope.interfacer­   Útwisted.trial.itrialr®   r0   rg   )Údoner­   r®   s      r   rª   rª   Î   sY   € Øð ØˆØ.Ð.Ð.Ð.Ð.Ð.Ø.Ð.Ð.Ð.Ð.Ð.Ø€OÕ$ iÑ0Ô0Ð0Ø‡K‚K��N„N€N€N€Nr"   )Ú__doc__Ú
__future__r   r   r_   r-   Ú_pytest._coder[   Ú_pytest.pythonr   Ú_pytest.skippingr   r   ÚClassr   r“   r0   Úhookimplr�   r«   rª   rQ   r"   r   ú<module>rº      s]  ðØ DÐ DØ &Ð &Ð &Ð &Ð &Ð &à 
€
€
€
Ø Ð Ð Ð à €€€à Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø *Ð *Ð *Ð *Ð *Ð *ð0ð 0ð 0ð(Cð (Cð (Cð (Cð (C�6”<ñ (Cô (Cð (CðX`*ð `*ð `*ð `*ð `*�v”ñ `*ô `*ð `*ðD €„˜$ÐÑÔðð ñ  Ôðð €„˜TÐ"Ñ"Ô"ðð ñ #Ô"ðð4 35ð ð ð ð ð ð r"   