§
    åžyjÈ4  ã                   óª   — d Z ddlZddlmZ ddlmZ dZd„ Z G d„ d	e¦  «        Z G d
„ d e¦  «        Z	 G d„ de¦  «        Z
d„ Z G d„ de¦  «        ZdS )Ú	TestSuiteé    Né   )Úcase)ÚutilTc                 ó>   — t          | |d„ ¦  «        } |¦   «          d S )Nc                  ó   — d S ©N© r
   ó    úf/home/ragecks/.local/share/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/unittest/suite.pyú<lambda>z!_call_if_exists.<locals>.<lambda>   s   € ¨€ r   )Úgetattr)ÚparentÚattrÚfuncs      r   Ú_call_if_existsr      s$   € Ý�6˜4  Ñ.Ô.€DØ€D�F„F€F€F€Fr   c                   óZ   — e Zd ZdZdZdd„Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚBaseTestSuitezNA simple test suite that doesn't provide class or module shared fixtures.
    Tr
   c                 óL   — g | _         d| _        |                      |¦  «         d S ©Nr   )Ú_testsÚ_removed_testsÚaddTests)ÚselfÚtestss     r   Ú__init__zBaseTestSuite.__init__   s)   € ØˆŒØˆÔØ�Š�eÑÔÐÐÐr   c                 ó\   — dt          j        | j        ¦  «        ›dt          | ¦  «        ›d�S )NÚ<z tests=Ú>)r   ÚstrclassÚ	__class__Úlist©r   s    r   Ú__repr__zBaseTestSuite.__repr__   s+   € € Ý"&¤-°´Ñ"?Ô"?Ð"?Ð"?ÅÀdÁÄÀÀÐLÐLr   c                 óz   — t          || j        ¦  «        st          S t          | ¦  «        t          |¦  «        k    S r	   )Ú
isinstancer!   ÚNotImplementedr"   )r   Úothers     r   Ú__eq__zBaseTestSuite.__eq__   s3   € Ý˜% ¤Ñ0Ô0ð 	"Ý!Ð!Ý�D‰zŒz�T %™[œ[Ò(Ð(r   c                 ó*   — t          | j        ¦  «        S r	   )Úiterr   r#   s    r   Ú__iter__zBaseTestSuite.__iter__"   s   € Ý�D”KÑ Ô Ð r   c                 óP   — | j         }| D ]}|r||                     ¦   «         z  }Œ|S r	   )r   ÚcountTestCases)r   ÚcasesÚtests      r   r.   zBaseTestSuite.countTestCases%   s=   € ØÔ#ˆØð 	/ð 	/ˆDØð /Ø˜×,Ò,Ñ.Ô.Ñ.�øØˆr   c                 ó@  — t          |¦  «        s/t          d                     t          |¦  «        ¦  «        ¦  «        ‚t	          |t
          ¦  «        r0t          |t          j        t          f¦  «        rt          d¦  «        ‚| j
                             |¦  «         d S )Nz{} is not callablezNTestCases and TestSuites must be instantiated before passing them to addTest())ÚcallableÚ	TypeErrorÚformatÚreprr&   ÚtypeÚ
issubclassr   ÚTestCaser   r   Úappend©r   r0   s     r   ÚaddTestzBaseTestSuite.addTest,   s�   € å˜‰~Œ~ð 	EÝÐ0×7Ò7½¸T¹
¼
ÑCÔCÑDÔDÐDÝ�d�DÑ!Ô!ð 	@¥j°Ý26´-ÅÐ1Kñ'Mô 'Mð 	@åð ?ñ @ô @ð @àŒ×Ò˜4Ñ Ô Ð Ð Ð r   c                 ó‚   — t          |t          ¦  «        rt          d¦  «        ‚|D ]}|                      |¦  «         Œd S )Nz0tests must be an iterable of tests, not a string)r&   Ústrr3   r;   )r   r   r0   s      r   r   zBaseTestSuite.addTests6   sR   € Ý�e�SÑ!Ô!ð 	PÝÐNÑOÔOÐOØð 	ð 	ˆDØ�LŠL˜ÑÔÐÐð	ð 	r   c                 ó�   — t          | ¦  «        D ]5\  }}|j        r n( ||¦  «         | j        r|                      |¦  «         Œ6|S r	   )Ú	enumerateÚ
shouldStopÚ_cleanupÚ_removeTestAtIndex)r   ÚresultÚindexr0   s       r   ÚrunzBaseTestSuite.run<   s\   € Ý$ T™?œ?ð 	/ð 	/‰KˆE�4ØÔ ð Ø�ØˆD�‰LŒLˆLØŒ}ð /Ø×'Ò'¨Ñ.Ô.Ð.øØˆr   c                 ó¼   — 	 | j         |         }t          |d¦  «        r"| xj        |                     ¦   «         z  c_        d| j         |<   dS # t          $ r Y dS w xY w)z2Stop holding a reference to the TestCase at index.r.   N)r   Úhasattrr   r.   r3   )r   rD   r0   s      r   rB   z BaseTestSuite._removeTestAtIndexE   s~   € ð
	&Ø”;˜uÔ%ˆDõ �tÐ-Ñ.Ô.ð =ØÐ#Ô# t×':Ò':Ñ'<Ô'<Ñ<Ð#Ô#Ø!%ˆDŒK˜ÑÐÐøõ ð 	ð 	ð 	àˆDˆDð	øøøs   ‚A Á
AÁAc                 ó   —  | j         |i |¤ŽS r	   ©rE   )r   ÚargsÚkwdss      r   Ú__call__zBaseTestSuite.__call__S   s   € ØˆtŒx˜Ð& Ð&Ð&Ð&r   c                 ó8   — | D ]}|                      ¦   «          ŒdS )ú7Run the tests without collecting errors in a TestResultN)Údebugr:   s     r   rO   zBaseTestSuite.debugV   s*   € àð 	ð 	ˆDØ�JŠJ‰LŒLˆLˆLð	ð 	r   N)r
   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rA   r   r$   r)   r,   r.   r;   r   rE   rB   rL   rO   r
   r   r   r   r      sÐ   € € € € € ðð à€Hðð ð ð ð
Mð Mð Mð)ð )ð )ð
!ð !ð !ðð ð ð!ð !ð !ðð ð ðð ð ð&ð &ð &ð'ð 'ð 'ðð ð ð ð r   r   c                   óR   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Z	 dd	„Z		 dd
„Z
d„ Zd„ ZdS )r   a³  A test suite is a composite test consisting of a number of TestCases.

    For use, create an instance of TestSuite, then add test case instances.
    When all tests have been added, the suite can be passed to a test
    runner, such as TextTestRunner. It will run the individual test cases
    in the order in which they were added, aggregating the results. When
    subclassing, do not forget to call the base class constructor.
    Fc                 ól  — d}t          |dd¦  «        du r	dx|_        }t          | ¦  «        D ]Ñ\  }}|j        r nÄt	          |¦  «        rv|                      ||¦  «         |                      ||¦  «         |                      ||¦  «         |j        |_	        t          |j        dd¦  «        st          |dd¦  «        rŒ“|s ||¦  «         n| 
                    ¦   «          | j        r|                      |¦  «         ŒÒ|r2|                      d |¦  «         |                      |¦  «         d|_        |S )NFÚ_testRunEnteredTÚ_classSetupFailedÚ_moduleSetUpFailed)r   rV   r?   r@   Ú_isnotsuiteÚ_tearDownPreviousClassÚ_handleModuleFixtureÚ_handleClassSetUpr!   Ú_previousTestClassrO   rA   rB   Ú_handleModuleTearDown)r   rC   rO   ÚtopLevelrD   r0   s         r   rE   zTestSuite.runf   sb  € ØˆÝ�6Ð,¨eÑ4Ô4¸Ð=Ð=Ø04Ð4ˆFÔ" Xå$ T™?œ?ð 	/ð 	/‰KˆE�4ØÔ ð Ø�å˜4Ñ Ô ð Ø×+Ò+¨D°&Ñ9Ô9Ð9Ø×)Ò)¨$°Ñ7Ô7Ð7Ø×&Ò& t¨VÑ4Ô4Ð4Ø,0¬N�Ô)å˜DœNÐ,?ÀÑGÔGð Ý˜FÐ$8¸%Ñ@Ô@ðààð Ø��V‘”��à—
’
‘”�àŒ}ð /Ø×'Ò'¨Ñ.Ô.Ð.øàð 	+Ø×'Ò'¨¨fÑ5Ô5Ð5Ø×&Ò& vÑ.Ô.Ð.Ø%*ˆFÔ"Øˆr   c                 óN   — t          ¦   «         }|                      |d¦  «         dS )rN   TN)Ú_DebugResultrE   )r   rO   s     r   rO   zTestSuite.debug‡   s%   € å‘”ˆØ�Š�˜ÑÔÐÐÐr   c                 óÜ  — t          |dd ¦  «        }|j        }||k    rd S |j        rd S t          |dd¦  «        rd S d}	 d|_        n# t          $ r Y nw xY wt          |dd ¦  «        }t          |dd ¦  «        }|�ðt          |d¦  «         	 	  |¦   «          nt# t          $ rg}t          |t          ¦  «        r‚ d}	 d|_        n# t          $ r Y nw xY wt          j
        |¦  «        }	|                      ||d|	¦  «         Y d }~nd }~ww xY w|r6|�4 |¦   «          |j        D ]"}
|                      ||
d         d|	|
¬	¦  «         Œ#t          |d
¦  «         d S # t          |d
¦  «         w xY wd S )Nr]   Ú__unittest_skip__FÚ
setUpClassÚdoClassCleanupsÚ_setupStdoutTr   ©ÚinfoÚ_restoreStdout)r   r!   rX   rW   r3   r   Ú	Exceptionr&   ra   r   r    Ú"_createClassOrModuleLevelExceptionÚtearDown_exceptions)r   r0   rC   ÚpreviousClassÚcurrentClassÚfailedrd   re   ÚeÚ	classNameÚexc_infos              r   r\   zTestSuite._handleClassSetUpŽ   s8  € Ý Ð(<¸dÑCÔCˆØ”~ˆØ˜=Ò(Ð(ØˆFØÔ$ð 	ØˆFÝ�<Ð!4°eÑ<Ô<ð 	ØˆFàˆð	Ø-2ˆLÔ*Ð*øÝð 	ð 	ð 	ð ˆDð	øøøõ
 ˜\¨<¸Ñ>Ô>ˆ
Ý! ,Ð0AÀ4ÑHÔHˆØÐ!Ý˜F NÑ3Ô3Ð3ð:ðGØ�J‘L”L�L�LøÝ ð Gð Gð GÝ! &­,Ñ7Ô7ð ØØ!�FðØ9=˜Ô6Ð6øÝ$ð ð ð Ø˜ðøøøå $¤¨lÑ ;Ô ;�IØ×;Ò;¸FÀAØ<HØ<EñGô Gð Gð Gð Gð Gð Gð GøøøøðGøøøð ð /˜oÐ9Ø#�OÑ%Ô%Ð%Ø$0Ô$Dð /ð /˜Ø×?Ò?Ø &¨°¬°\À9Ø%-ð @ñ /ô /ð /ð /õ   Ð(8Ñ9Ô9Ð9Ð9Ð9ø• Ð(8Ñ9Ô9Ð9Ð9øøøð1 "Ð!sf   Á A Á
AÁAÂ
B ÂE Â
D
Â#DÂ<CÃDÃ
CÃDÃCÃ/DÄ E ÄD
Ä
;E ÅE)c                 ó>   — d }t          |dd ¦  «        }|�|j        }|S )Nr]   )r   rQ   )r   rC   ÚpreviousModulerm   s       r   Ú_get_previous_modulezTestSuite._get_previous_module¼   s-   € ØˆÝ Ð(<¸dÑCÔCˆØÐ$Ø*Ô5ˆNØÐr   c                 ó¶  — |                       |¦  «        }|j        j        }||k    rd S |                      |¦  «         d|_        	 t
          j        |         }n# t          $ r Y d S w xY wt          |dd ¦  «        }|�Ût          |d¦  «         	 	  |¦   «          nL# t          $ r?}t          |t          ¦  «        r‚ d|_        |                      ||d|¦  «         Y d }~nd }~ww xY w|j        rD	 t          j        ¦   «          n/# t          $ r"}|                      ||d|¦  «         Y d }~nd }~ww xY wt          |d¦  «         d S # t          |d¦  «         w xY wd S )NFÚsetUpModulerf   Tri   )ru   r!   rQ   r^   rX   ÚsysÚmodulesÚKeyErrorr   r   rj   r&   ra   rk   r   ÚdoModuleCleanups)r   r0   rC   rt   ÚcurrentModuleÚmodulerw   rp   s           r   r[   zTestSuite._handleModuleFixtureÄ   s  € Ø×2Ò2°6Ñ:Ô:ˆØœÔ1ˆØ˜NÒ*Ð*ØˆFà×"Ò" 6Ñ*Ô*Ð*ð %*ˆÔ!ð	Ý”[ Ô/ˆFˆFøÝð 	ð 	ð 	ØˆFˆFð	øøøå˜f m°TÑ:Ô:ˆØÐ"Ý˜F NÑ3Ô3Ð3ð:ðKØ�K‘M”M�M�MøÝ ð Kð Kð KÝ! &­,Ñ7Ô7ð ØØ04�FÔ-Ø×;Ò;¸FÀAØ<IØ<IñKô Kð Kð Kð Kð Kð Kð Køøøøð	Køøøð Ô,ð OðOÝÔ-Ñ/Ô/Ð/Ð/øÝ$ð Oð Oð OØ×?Ò?ÀÈØ@MØ@MñOô Oð Oð Oð Oð Oð Oð OøøøøðOøøøõ
   Ð(8Ñ9Ô9Ð9Ð9Ð9ø• Ð(8Ñ9Ô9Ð9Ð9øøøð) #Ð"sl   ÁA Á
A(Á'A(Â
B ÂE Â
C$Â%5CÃE ÃC$Ã$
E Ã/D ÄE Ä
D/ÄD*Ä%E Ä*D/Ä/E ÅENc                 óF   — |› d|› d�}|                       ||||¦  «         d S )Nz (ú))Ú_addClassOrModuleLevelException)r   rC   ÚexcÚmethod_namer   rh   Ú	errorNames          r   rk   z,TestSuite._createClassOrModuleLevelExceptioné   s8   € à"Ð/Ð/ fÐ/Ð/Ð/ˆ	Ø×,Ò,¨V°S¸)ÀTÑJÔJÐJÐJÐJr   c                 ó6  — t          |¦  «        }t          |dd ¦  «        }|�5t          |t          j        ¦  «        r ||t          |¦  «        ¦  «         d S |s)|                     |t          j        ¦   «         ¦  «         d S |                     ||¦  «         d S )NÚaddSkip)	Ú_ErrorHolderr   r&   r   ÚSkipTestr=   ÚaddErrorrx   rr   )r   rC   Ú	exceptionrƒ   rh   Úerrorr…   s          r   r€   z)TestSuite._addClassOrModuleLevelExceptionî   s—   € å˜YÑ'Ô'ˆÝ˜& )¨TÑ2Ô2ˆØÐ¥:¨i½¼Ñ#GÔ#GÐØˆG�E�3˜y™>œ>Ñ*Ô*Ð*Ð*Ð*àð -Ø—’ ¥s¤|¡~¤~Ñ6Ô6Ð6Ð6Ð6à—’  tÑ,Ô,Ð,Ð,Ð,r   c                 ó|  — |                       |¦  «        }|€d S |j        rd S 	 t          j        |         }n# t          $ r Y d S w xY wt          |d¦  «         	 t          |dd ¦  «        }|�Q	  |¦   «          nE# t          $ r8}t          |t          ¦  «        r‚ |  
                    ||d|¦  «         Y d }~nd }~ww xY w	 t          j        ¦   «          nE# t          $ r8}t          |t          ¦  «        r‚ |  
                    ||d|¦  «         Y d }~nd }~ww xY wt          |d¦  «         d S # t          |d¦  «         w xY w)Nrf   ÚtearDownModuleri   )ru   rX   rx   ry   rz   r   r   rj   r&   ra   rk   r   r{   )r   rC   rt   r}   rŒ   rp   s         r   r^   zTestSuite._handleModuleTearDownú   sé  € Ø×2Ò2°6Ñ:Ô:ˆØÐ!ØˆFØÔ$ð 	ØˆFð	Ý”[ Ô0ˆFˆFøÝð 	ð 	ð 	ØˆFˆFð	øøøõ 	˜ Ñ/Ô/Ð/ð	6Ý$ VÐ-=¸tÑDÔDˆNØÐ)ðLØ"�NÑ$Ô$Ð$Ð$øÝ ð Lð Lð LÝ! &­,Ñ7Ô7ð ØØ×;Ò;¸FÀAØ<LØ<JñLô Lð Lð Lð Lð Lð Lð LøøøøðLøøøðHÝÔ%Ñ'Ô'Ð'Ð'øÝð Hð Hð HÝ˜f¥lÑ3Ô3ð ØØ×7Ò7¸ÀØ8HØ8FñHô Hð Hð Hð Hð Hð Hð HøøøøðHøøøõ ˜FÐ$4Ñ5Ô5Ð5Ð5Ð5ø�O˜FÐ$4Ñ5Ô5Ð5Ð5øøøso   ¤7 ·
AÁAÁD) Á-
A8 Á7D) Á8
B:Â.B5Â0D) Â5B:Â:D) Â>C ÃD) Ã
DÃ.DÄ
D) ÄDÄD) Ä)D;c                 ó  — t          |dd ¦  «        }|j        }||k    s|€d S t          |dd¦  «        rd S t          |dd¦  «        rd S t          |dd¦  «        rd S t          |dd ¦  «        }t          |dd ¦  «        }|€|€d S t          |d¦  «         	 |�e	  |¦   «          nY# t          $ rL}t	          |t
          ¦  «        r‚ t          j        |¦  «        }|                      ||d|¦  «         Y d }~nd }~ww xY w|�e |¦   «          |j	        D ]S}	t	          |t
          ¦  «        r|	d	         ‚t          j        |¦  «        }|                      ||	d	         d||	¬
¦  «         ŒTt          |d¦  «         d S # t          |d¦  «         w xY w)Nr]   rW   FrX   rc   ÚtearDownClassre   rf   r   rg   ri   )
r   r!   r   rj   r&   ra   r   r    rk   rl   )
r   r0   rC   rm   rn   rŽ   re   rp   rq   rr   s
             r   rZ   z TestSuite._tearDownPreviousClass  s%  € Ý Ð(<¸dÑCÔCˆØ”~ˆØ˜=Ò(Ð(¨MÐ,AØˆFÝ�=Ð"5°uÑ=Ô=ð 	ØˆFÝ�6Ð/°Ñ7Ô7ð 	ØˆFÝ�=Ð"5°uÑ=Ô=ð 	ØˆFå ¨ÀÑEÔEˆÝ! -Ð1BÀDÑIÔIˆØÐ  _Ð%<ØˆFå˜ Ñ/Ô/Ð/ð	6ØÐ(ðGØ!�M‘O”O�O�OøÝ ð Gð Gð GÝ! &­,Ñ7Ô7ð ØÝ $¤¨mÑ <Ô <�IØ×;Ò;¸FÀAØ<KØ<EñGô Gð Gð Gð Gð Gð Gð Gøøøøð	Gøøøð Ð*Ø�Ñ!Ô!Ð!Ø -Ô Að Kð K�HÝ! &­,Ñ7Ô7ð *Ø& qœkÐ)Ý $¤¨mÑ <Ô <�IØ×;Ò;¸FÀHÈQÄKØ<KØ<EØAIð <ñ Kô Kð Kð Kõ
 ˜FÐ$4Ñ5Ô5Ð5Ð5Ð5ø�O˜FÐ$4Ñ5Ô5Ð5Ð5øøøs8   ÂE5 Â
B# Â"E5 Â#
C9Â-AC4Ã/E5 Ã4C9Ã9A*E5 Å5F)Fr	   )rP   rQ   rR   rS   rE   rO   r\   ru   r[   rk   r€   r^   rZ   r
   r   r   r   r   \   sÆ   € € € € € ðð ðð ð ð ðBð ð ð,:ð ,:ð ,:ð\ð ð ð#:ð #:ð #:ðL 9=ðKð Kð Kð Kð .2ð
-ð 
-ð 
-ð 
-ð!6ð !6ð !6ðF(6ð (6ð (6ð (6ð (6r   c                   óF   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )r†   z¾
    Placeholder for a TestCase inside a result. As far as a TestResult
    is concerned, this looks exactly like a unit test. Used to insert
    arbitrary errors into a test suite run.
    Nc                 ó   — || _         d S r	   ©Údescription)r   r’   s     r   r   z_ErrorHolder.__init__T  s   € Ø&ˆÔÐÐr   c                 ó   — | j         S r	   r‘   r#   s    r   Úidz_ErrorHolder.idW  s   € ØÔÐr   c                 ó   — d S r	   r
   r#   s    r   ÚshortDescriptionz_ErrorHolder.shortDescriptionZ  s   € Øˆtr   c                 ó   — d| j         ›d�S )Nz<ErrorHolder description=r   r‘   r#   s    r   r$   z_ErrorHolder.__repr__]  s   € € Ø15Ô1AÐ1AÐ1AÐCÐCr   c                 ó*   — |                       ¦   «         S r	   )r”   r#   s    r   Ú__str__z_ErrorHolder.__str__`  s   € Ø�wŠw‰yŒyÐr   c                 ó   — d S r	   r
   ©r   rC   s     r   rE   z_ErrorHolder.runc  s	   € ð 	ˆr   c                 ó,   — |                       |¦  «        S r	   rI   r›   s     r   rL   z_ErrorHolder.__call__h  s   € Ø�xŠx˜ÑÔÐr   c                 ó   — dS r   r
   r#   s    r   r.   z_ErrorHolder.countTestCasesk  s   € Øˆqr   )rP   rQ   rR   rS   ÚfailureExceptionr   r”   r–   r$   r™   rE   rL   r.   r
   r   r   r†   r†   H  s¡   € € € € € ðð ð Ðð'ð 'ð 'ð ð  ð  ðð ð ðDð Dð Dðð ð ðð ð ð
 ð  ð  ðð ð ð ð r   r†   c                 óJ   — 	 t          | ¦  «         n# t          $ r Y dS w xY wdS )z?A crude way to tell apart testcases and suites with duck-typingTF)r+   r3   )r0   s    r   rY   rY   n  s;   € ðÝˆT‰
Œ
ˆ
ˆ
øÝð ð ð Øˆtˆtðøøøàˆ5s   ‚ ’
 Ÿ c                   ó   — e Zd ZdZdZdZdZdS )ra   zCUsed by the TestSuite to hold previous class when running in debug.NF)rP   rQ   rR   rS   r]   rX   r@   r
   r   r   ra   ra   w  s%   € € € € € ØIÐIØÐØÐØ€J€J€Jr   ra   )rS   rx   Ú r   r   Ú
__unittestr   Úobjectr   r   r†   rY   ra   r
   r   r   ú<module>r¤      s  ðØ €à 
€
€
€
à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€
ðð ð ð
Ið Ið Ið Ið I�Fñ Iô Ið IðXi6ð i6ð i6ð i6ð i6�ñ i6ô i6ð i6ðX$ð $ð $ð $ð $�6ñ $ô $ð $ðLð ð ðð ð ð ð �6ñ ô ð ð ð r   