§
    åžyj—,  ã                   ó„   — d Z ddlZddlZddlZddlZddlmZmZ ddlm	Z	 dZ
dZdZd	„ Zd
„ Zd„ Z G d„ de¦  «        ZeZdS )zUnittest main programé    Né   )ÚloaderÚrunner)ÚinstallHandlerTa  Examples:
  %(prog)s test_module               - run tests from test_module
  %(prog)s module.TestClass          - run tests from module.TestClass
  %(prog)s module.Class.test_method  - run specified test method
  %(prog)s path/to/test_file.py      - run tests from test_file.py
aF  Examples:
  %(prog)s                           - run default set of tests
  %(prog)s MyTestSuite               - run suite 'MyTestSuite'
  %(prog)s MyTestCase.testSomething  - run MyTestCase.testSomething
  %(prog)s MyTestCase                - run all 'test*' test methods
                                       in MyTestCase
c                 óV  — t           j                             | ¦  «        �r|                      ¦   «                              d¦  «        rát           j                             | ¦  «        rst           j                             | t          j        ¦   «         ¦  «        }t           j                             |¦  «        s|                     t           j	        ¦  «        r| S |} t           j         
                    | ¦  «        d d…                              dd¦  «                             dd¦  «        S | S )Nz.pyéýÿÿÿú\ú.ú/)ÚosÚpathÚisfileÚlowerÚendswithÚisabsÚrelpathÚgetcwdÚ
startswithÚpardirÚnormpathÚreplace)ÚnameÚrel_paths     úe/home/ragecks/.local/share/uv/python/cpython-3.11.15-linux-x86_64-gnu/lib/python3.11/unittest/main.pyÚ_convert_namer      sç   € õ
 
„w‡~‚~�dÑÔñ P §
¢
¡¤× 5Ò 5°eÑ <Ô <ð PÝŒ7�=Š=˜ÑÔð 	Ý”w—’ t­R¬Y©[¬[Ñ9Ô9ˆHÝŒw�}Š}˜XÑ&Ô&ð ¨(×*=Ò*=½b¼iÑ*HÔ*Hð Ø�ØˆDõ Œw×Ò Ñ%Ô% c r cÔ*×2Ò2°4¸Ñ=Ô=×EÒEÀcÈ3ÑOÔOÐOØ€Kó    c                 ó   — d„ | D ¦   «         S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS © )r   )Ú.0r   s     r   ú
<listcomp>z"_convert_names.<locals>.<listcomp>/   s    € Ð2Ð2Ð2 D�M˜$ÑÔÐ2Ð2Ð2r   r   )Únamess    r   Ú_convert_namesr#   .   s   € Ø2Ð2¨EÐ2Ñ2Ô2Ð2r   c                 ó   — d| vrd| z  } | S )NÚ*z*%s*r   )Úpatterns    r   Ú_convert_select_patternr'   2   s   € Ø�'ˆ>ˆ>Ø˜7Ñ"ˆØ€Nr   c                   ó¦   — e Zd ZdZdZdZdxZxZxZxZ	xZ
ZdZddddej        ddddddfddœd„Zdd	„Zd
„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ ZdS )ÚTestProgramzA command-line program that runs a set of tests; this is primarily
       for making test modules conveniently executable.
    Nr   Ú__main__TF)Ú	tb_localsc                óV  — t          |t          ¦  «        rOt          |¦  «        | _        |                     d¦  «        dd …         D ]}t          | j        |¦  «        | _        Œn|| _        |€t          j        }|| _        || _	        |	| _
        || _        |
| _        || _        |€t          j        sd| _        n|| _        || _        || _        || _        t&          j                             |d         ¦  «        | _        |                      |¦  «         |                      ¦   «          d S )Nr
   r   Údefaultr   )Ú
isinstanceÚstrÚ
__import__ÚmoduleÚsplitÚgetattrÚsysÚargvÚexitÚfailfastÚ
catchbreakÚ	verbosityÚbufferr+   ÚwarnoptionsÚwarningsÚdefaultTestÚ
testRunnerÚ
testLoaderr   r   ÚbasenameÚprogNameÚ	parseArgsÚrunTests)Úselfr1   r=   r5   r>   r?   r6   r9   r7   r8   r:   r<   r+   Úparts                 r   Ú__init__zTestProgram.__init__B   s  € õ �f�cÑ"Ô"ð 	!Ý$ VÑ,Ô,ˆDŒKØŸš SÑ)Ô)¨!¨"¨"Ô-ð 9ð 9�Ý% d¤k°4Ñ8Ô8�”�ð9ð !ˆDŒKØˆ<Ý”8ˆDàˆŒ	Ø ˆŒØ$ˆŒØ"ˆŒØˆŒØ"ˆŒØÐ¥C¤OÐð &ˆDŒMˆMð %ˆDŒMØ&ˆÔØ$ˆŒØ$ˆŒÝœ×(Ò(¨¨a¬Ñ1Ô1ˆŒØ�Š�tÑÔÐØ�Š‰Œˆˆˆr   c                 óâ   — t          j        dt          ¦  «         |rt          |¦  «         | j        €|                      ¦   «          |                      ¦   «          t          j        d¦  «         d S )NzHTestProgram.usageExit() is deprecated and will be removed in Python 3.13é   )	r<   ÚwarnÚDeprecationWarningÚprintÚ_discovery_parserÚ_initArgParsersÚ_print_helpr4   r6   )rD   Úmsgs     r   Ú	usageExitzTestProgram.usageExith   sr   € ÝŒð 0Ý1Cñ	Eô 	Eð 	Eàð 	Ý�#‰JŒJˆJØÔ!Ð)Ø× Ò Ñ"Ô"Ð"Ø×ÒÑÔÐÝŒ�‰Œˆˆˆr   c                 óZ  — | j         €_t          | j                             ¦   «         ¦  «         t          t          d| j        iz  ¦  «         | j                             ¦   «          d S t          | j                             ¦   «         ¦  «         t          t          d| j        iz  ¦  «         d S )NÚprog)	r1   rK   Ú_main_parserÚformat_helpÚMAIN_EXAMPLESrA   rL   Ú
print_helpÚMODULE_EXAMPLES)rD   ÚargsÚkwargss      r   rN   zTestProgram._print_helpr   s™   € ØŒ;ÐÝ�$Ô#×/Ò/Ñ1Ô1Ñ2Ô2Ð2Ý•- 6¨4¬=Ð"9Ñ9Ñ:Ô:Ð:ØÔ"×-Ò-Ñ/Ô/Ð/Ð/Ð/å�$Ô#×/Ò/Ñ1Ô1Ñ2Ô2Ð2Ý•/ V¨T¬]Ð$;Ñ;Ñ<Ô<Ð<Ð<Ð<r   c                 óÔ  — |                       ¦   «          | j        €’t          |¦  «        dk    r=|d                              ¦   «         dk    r|                      |dd …         ¦  «         d S | j                             |dd …         | ¦  «         | j        s|                      g ¦  «         d S n#| j                             |dd …         | ¦  «         | j        r,t          | j        ¦  «        | _	        t          dk    rd | _        nP| j        €d | _	        nAt          | j        t          ¦  «        r| j        f| _	        nt          | j        ¦  «        | _	        |                      ¦   «          d S )Nr   ÚdiscoverrH   r*   )rM   r1   Úlenr   Ú_do_discoveryrS   Ú
parse_argsÚtestsr#   Ú	testNamesÚ__name__r=   r.   r/   ÚlistÚcreateTests)rD   r5   s     r   rB   zTestProgram.parseArgs{   s^  € Ø×ÒÑÔÐØŒ;ÐÝ�4‰yŒy˜1Š}ˆ}  a¤§¢¡¤°JÒ!>Ð!>Ø×"Ò" 4¨¨¨¤8Ñ,Ô,Ð,Ø�ØÔ×(Ò(¨¨a¨b¨b¬°4Ñ8Ô8Ð8Ø”:ð ð ×"Ò" 2Ñ&Ô&Ð&Ø�ð	ð Ô×(Ò(¨¨a¨b¨b¬°4Ñ8Ô8Ð8àŒ:ð 	4Ý+¨D¬JÑ7Ô7ˆDŒNÝ˜:Ò%Ð%à"�”øØÔÐ%à!ˆDŒNˆNÝ˜Ô(­#Ñ.Ô.ð 	4Ø"Ô.Ð0ˆDŒNˆNå! $Ô"2Ñ3Ô3ˆDŒNØ×ÒÑÔÐÐÐr   c                 ó^  — | j         r| j         | j        _         |r;|€| j        n	 |¦   «         } |j        | j        | j        | j        ¦  «        | _        d S | j        €&| j                             | j	        ¦  «        | _        d S | j         
                    | j        | j	        ¦  «        | _        d S ©N)ÚtestNamePatternsr?   r[   Ústartr&   ÚtopÚtestr`   ÚloadTestsFromModuler1   ÚloadTestsFromNames)rD   Úfrom_discoveryÚLoaderr   s       r   rc   zTestProgram.createTests˜   s§   € ØÔ ð 	EØ/3Ô/DˆDŒOÔ,Øð 	HØ(.¨�T”_�_¸F¸F¹H¼HˆFØ'˜œ¨¬
°D´LÀ$Ä(ÑKÔKˆDŒIˆIˆIØŒ^Ð#Øœ×;Ò;¸D¼KÑHÔHˆDŒIˆIˆIàœ×:Ò:¸4¼>Ø;?¼;ñHô HˆDŒIˆIˆIr   c                 ó–   — |                       ¦   «         }|                      |¦  «        | _        |                      |¦  «        | _        d S re   )Ú_getParentArgParserÚ_getMainArgParserrS   Ú_getDiscoveryArgParserrL   )rD   Úparent_parsers     r   rM   zTestProgram._initArgParsers¤   sE   € Ø×0Ò0Ñ2Ô2ˆØ ×2Ò2°=ÑAÔAˆÔØ!%×!<Ò!<¸]Ñ!KÔ!KˆÔÐÐr   c                 ó  — t          j        d¬¦  «        }|                     dddddd¬	¦  «         |                     d
ddddd¬	¦  «         |                     dddd¬¦  «         | j        €!|                     ddddd¬¦  «         d| _        | j        €!|                     ddddd¬¦  «         d| _        | j        €!|                     ddddd¬¦  «         d| _        | j        €&|                     dd d!t          d"¬#¦  «         g | _        |S )$NF)Úadd_helpz-vz	--verboser9   Ústore_constrH   zVerbose output)ÚdestÚactionÚconstÚhelpz-qz--quietr   zQuiet outputz--localsr+   Ú
store_truez"Show local variables in tracebacks)rv   rw   ry   z-fz
--failfastr7   zStop on first fail or errorz-cz--catchr8   z'Catch Ctrl-C and display results so farz-bz--bufferr:   z%Buffer stdout and stderr during testsz-krf   Úappendz.Only run tests which match the given substring)rv   rw   Útypery   )ÚargparseÚArgumentParserÚadd_argumentr7   r8   r:   rf   r'   )rD   Úparsers     r   ro   zTestProgram._getParentArgParser©   s˜  € ÝÔ(°%Ð8Ñ8Ô8ˆà×Ò˜D +°KØ#0¸Ø!1ð 	ñ 	3ô 	3ð 	3ð 	×Ò˜D )°+Ø#0¸Ø!/ð 	ñ 	1ô 	1ð 	1ð 	×Ò˜J¨[Ø#/Ø!Eð 	ñ 	Gô 	Gð 	Gð Œ=Ð Ø×Ò  l¸Ø'3Ø%Bð  ñ Dô Dð Dð "ˆDŒMØŒ?Ð"Ø×Ò  i°lØ'3Ø%Nð  ñ Pô Pð Pð $ˆDŒOØŒ;ÐØ×Ò  j°xØ'3Ø%Lð  ñ Nô Nð Nð  ˆDŒKØÔ Ð(Ø×Ò Ð+=Ø'/Õ6MØ%Uð  ñ Wô Wð Wð %'ˆDÔ!àˆr   c                 ó’   — t          j        |g¬¦  «        }| j        |_        | j        |_        |                     ddd¬¦  «         |S )N©Úparentsr_   r%   z?a list of any number of test modules, classes and test methods.)Únargsry   )r}   r~   rA   rR   rN   rV   r   )rD   Úparentr€   s      r   rp   zTestProgram._getMainArgParserÌ   sX   € ÝÔ(°&°Ð:Ñ:Ô:ˆØ”mˆŒØ Ô,ˆÔà×Ò˜G¨3ð"8ð 	ñ 	9ô 	9ð 	9ð ˆr   c                 óX  — t          j        |g¬¦  «        }d| j        z  |_        d|_        |                     dddd¬¦  «         |                     d	d
dd¬¦  «         |                     dddd¬¦  «         dD ]/}|                     |dt           j        t           j        ¬¦  «         Œ0|S )Nr‚   z%s discoverzcFor test discovery all test modules must be importable from the top level directory of the project.z-sz--start-directoryrg   z*Directory to start discovery ('.' default))rv   ry   z-pz	--patternr&   z+Pattern to match tests ('test*.py' default)z-tz--top-level-directoryrh   z<Top level directory of project (defaults to start directory))rg   r&   rh   ú?)r„   r-   ry   )r}   r~   rA   rR   Úepilogr   ÚSUPPRESS)rD   r…   r€   Úargs       r   rq   z"TestProgram._getDiscoveryArgParser×   sö   € ÝÔ(°&°Ð:Ñ:Ô:ˆØ# d¤mÑ3ˆŒð$ˆŒð 	×Ò˜DÐ"5¸GØ!Mð 	ñ 	Oô 	Oð 	Oà×Ò˜D +°IØ!Nð 	ñ 	Pô 	Pð 	Pà×Ò˜DÐ"9Àð"4ð 	ñ 	5ô 	5ð 	5ð /ð 	8ð 	8ˆCØ×Ò ¨3Ý(0Ô(9Ý%-Ô%6ð  ñ 8ô 8ð 8ð 8ð ˆr   c                 óÎ   — d| _         d| _        d | _        |�6| j        €|                      ¦   «          | j                             || ¦  «         |                      d|¬¦  «         d S )Nr
   ztest*.pyT)rl   rm   )rg   r&   rh   rL   rM   r^   rc   )rD   r5   rm   s      r   r]   zTestProgram._do_discoveryì   sp   € ØˆŒ
Ø!ˆŒØˆŒØÐàÔ%Ð-à×$Ò$Ñ&Ô&Ð&ØÔ"×-Ò-¨d°DÑ9Ô9Ð9à×Ò¨°VÐÑ<Ô<Ð<Ð<Ð<r   c                 óz  — | j         rt          ¦   «          | j        €t          j        | _        t          | j        t          ¦  «        r˜	 	 |                      | j        | j        | j	        | j
        | j        ¬¦  «        }n=# t          $ r0 |                      | j        | j        | j	        | j
        ¬¦  «        }Y nw xY wn+# t          $ r |                      ¦   «         }Y nw xY w| j        }|                     | j        ¦  «        | _        | j        r.t#          j        | j                             ¦   «          ¦  «         d S d S )N)r9   r7   r:   r<   r+   )r9   r7   r:   r<   )r8   r   r>   r   ÚTextTestRunnerr.   r|   r9   r7   r:   r<   r+   Ú	TypeErrorÚrunri   Úresultr6   r4   ÚwasSuccessful)rD   r>   s     r   rC   zTestProgram.runTestsù   sY  € ØŒ?ð 	ÝÑÔÐØŒ?Ð"Ý$Ô3ˆDŒOÝ�d”o¥tÑ,Ô,ð 	)ð/ðIØ!%§¢¸4¼>Ø:>¼-Ø8<¼Ø:>¼-Ø;?¼>ð	 "1ñ "Kô "K�J�Jøõ
 !ð Ið Ið Ià!%§¢¸4¼>Ø:>¼-Ø8<¼Ø:>¼-ð "1ñ "Iô "I�J�J�JðIøøøøøõ ð /ð /ð /à!Ÿ_š_Ñ.Ô.�
�
�
ð/øøøð
 œˆJØ —n’n T¤YÑ/Ô/ˆŒØŒ9ð 	6ÝŒH˜œ×2Ò2Ñ4Ô4Ð4Ñ5Ô5Ð5Ð5Ð5ð	6ð 	6s0   Á
3A> Á=B< Á>7B8Â5B< Â7B8Â8B< Â<CÃCre   )FN)ra   Ú
__module__Ú__qualname__Ú__doc__r1   r9   r7   r8   r:   rA   r<   rf   rL   r   ÚdefaultTestLoaderrF   rP   rN   rB   rc   rM   ro   rp   rq   r]   rC   r   r   r   r)   r)   8   s>  € € € € € ðð ð €FØ€IØNRÐR€HÐRˆzÐR˜FÐR XÐR°Ð;KØÐà(°dÀØ#°Ô0HØ¨°TÀdØ¨$ð$ð >Cð$ð $ð $ð $ð $ðLð ð ð ð=ð =ð =ðð ð ð:
Hð 
Hð 
Hð 
HðLð Lð Lð
!ð !ð !ðF	ð 	ð 	ðð ð ð*=ð =ð =ð =ð6ð 6ð 6ð 6ð 6r   r)   )r”   r4   r}   r   r<   Ú r   r   Úsignalsr   Ú
__unittestrU   rW   r   r#   r'   Úobjectr)   Úmainr   r   r   ú<module>r›      s×   ðØ Ð à 
€
€
€
Ø €€€Ø 	€	€	€	Ø €€€à Ð Ð Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #à€
ð€ð€ðð ð ð 3ð 3ð 3ðð ð ð\6ð \6ð \6ð \6ð \6�&ñ \6ô \6ð \6ð| €€€r   