o
    KXîhP;  ã                   @   st   d dl Z d dlZd dlZd dlZd dlmZmZ G dd„ deƒZdd„ Z	G dd„ de j
eƒZed	kr8e  ¡  dS dS )
é    N)ÚLoggingResultÚTestEqualityc                   @   s   e Zd ZG dd„ dejƒZdS )ÚTestc                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
zTest.Fooc                 C   ó   d S ©N© ©Úselfr   r   úB/opt/python-3.10.19/usr/lib/python3.10/unittest/test/test_suite.pyÚtest_1   ó    zTest.Foo.test_1c                 C   r   r   r   r   r   r   r
   Útest_2   r   zTest.Foo.test_2c                 C   r   r   r   r   r   r   r
   Útest_3   r   zTest.Foo.test_3c                 C   r   r   r   r   r   r   r
   ÚrunTest   r   zTest.Foo.runTestN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r
   ÚFoo   s
    r   N)r   r   r   ÚunittestÚTestCaser   r   r   r   r
   r      s    r   c                  G   s   t  dd„ | D ƒ¡S )Nc                 s   s    | ]}t  |¡V  qd S r   )r   r   )Ú.0Únr   r   r
   Ú	<genexpr>   s   € z _mk_TestSuite.<locals>.<genexpr>)r   Ú	TestSuite)Únamesr   r   r
   Ú_mk_TestSuite   ó   r   c                   @   sV  e Zd Ze ¡ e ¡ fe ¡ e g ¡fedƒedƒfgZe ¡ edƒfe g ¡edƒfeddƒeddƒfedƒedƒfgZdd„ Zdd„ Z	dd	„ Z
d
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Z d6d7„ Z!d8d9„ Z"d:S );ÚTest_TestSuiter   r   r   c                 C   s:   t  ¡ }|  | ¡ d¡ | t  ¡ ¡ |  | ¡ d¡ d S ©Nr   ©r   r   ÚassertEqualÚcountTestCasesÚrunÚ
TestResult©r	   Úsuiter   r   r
   Útest_init__tests_optional2   s   z(Test_TestSuite.test_init__tests_optionalc                 C   s<   t  g ¡}|  | ¡ d¡ | t  ¡ ¡ |  | ¡ d¡ d S r   r   r$   r   r   r
   Útest_init__empty_testsA   s   
z%Test_TestSuite.test_init__empty_testsc                 C   sº   dd„ }t  |ƒ ¡}|  | ¡ d¡ t  |¡}|  | ¡ d¡ t  t|ƒ¡}|  | ¡ d¡ | t  ¡ ¡ |  | ¡ d¡ | t  ¡ ¡ |  | ¡ d¡ | t  ¡ ¡ |  | ¡ d¡ d S )Nc                   s   s&    t  dd„ ¡V  t  dd„ ¡V  d S )Nc                   S   r   r   r   r   r   r   r
   Ú<lambda>Q   r   zRTest_TestSuite.test_init__tests_from_any_iterable.<locals>.tests.<locals>.<lambda>c                   S   r   r   r   r   r   r   r
   r(   R   r   )r   ÚFunctionTestCaser   r   r   r
   ÚtestsP   s   €z@Test_TestSuite.test_init__tests_from_any_iterable.<locals>.testsé   )r   r   r    r!   Úsetr"   r#   )r	   r*   Úsuite_1Úsuite_2Zsuite_3r   r   r
   Ú"test_init__tests_from_any_iterableO   s   
z1Test_TestSuite.test_init__tests_from_any_iterablec                 C   sF   dd„ }t  |ƒ ¡}|  | ¡ d¡ | t  ¡ ¡ |  | ¡ d¡ d S )Nc                  s   s2    t  dd„ ¡} t  | g¡V  t  dd„ ¡V  d S )Nc                   S   r   r   r   r   r   r   r
   r(   n   r   zWTest_TestSuite.test_init__TestSuite_instances_in_tests.<locals>.tests.<locals>.<lambda>c                   S   r   r   r   r   r   r   r
   r(   p   r   )r   r)   r   )Zftcr   r   r
   r*   m   s   €zETest_TestSuite.test_init__TestSuite_instances_in_tests.<locals>.testsr+   r   )r	   r*   r%   r   r   r
   Ú'test_init__TestSuite_instances_in_testsl   s
   z6Test_TestSuite.test_init__TestSuite_instances_in_testsc                 C   sB   t  dd„ ¡}t  dd„ ¡}t  ||f¡}|  t|ƒ||g¡ d S )Nc                   S   r   r   r   r   r   r   r
   r(   }   r   z*Test_TestSuite.test_iter.<locals>.<lambda>c                   S   r   r   r   r   r   r   r
   r(   ~   r   )r   r)   r   r    Úlist©r	   Útest1Útest2r%   r   r   r
   Ú	test_iter|   s   zTest_TestSuite.test_iterc                 C   s   t  ¡ }|  | ¡ d¡ d S r   )r   r   r    r!   r$   r   r   r
   Útest_countTestCases_zero_simpleˆ   s   z.Test_TestSuite.test_countTestCases_zero_simplec                 C   s6   G dd„ dt jƒ}t  t  ¡ g¡}|  | ¡ d¡ d S )Nc                   @   ó   e Zd Zdd„ ZdS )z=Test_TestSuite.test_countTestCases_zero_nested.<locals>.Test1c                 S   r   r   r   r   r   r   r
   Útest•   ó   zBTest_TestSuite.test_countTestCases_zero_nested.<locals>.Test1.testN©r   r   r   r8   r   r   r   r
   ÚTest1”   ó    r;   r   )r   r   r   r    r!   )r	   r;   r%   r   r   r
   Útest_countTestCases_zero_nested“   s   z.Test_TestSuite.test_countTestCases_zero_nestedc                 C   s\   t  dd„ ¡}t  dd„ ¡}t  ||f¡}|  | ¡ d¡ | t  ¡ ¡ |  | ¡ d¡ d S )Nc                   S   r   r   r   r   r   r   r
   r(       r   z;Test_TestSuite.test_countTestCases_simple.<locals>.<lambda>c                   S   r   r   r   r   r   r   r
   r(   ¡   r   r+   )r   r)   r   r    r!   r"   r#   r2   r   r   r
   Útest_countTestCases_simpleŸ   s   z)Test_TestSuite.test_countTestCases_simplec                 C   s–   G dd„ dt jƒ}t  dd„ ¡}t  dd„ ¡}t  |dƒ|f¡}t  |||dƒf¡}|  | ¡ d¡ | t  ¡ ¡ |  | ¡ d¡ |  | ¡ d	¡ d S )
Nc                   @   ó   e Zd Zdd„ Zdd„ ZdS )z8Test_TestSuite.test_countTestCases_nested.<locals>.Test1c                 S   r   r   r   r   r   r   r
   r3   °   r   z>Test_TestSuite.test_countTestCases_nested.<locals>.Test1.test1c                 S   r   r   r   r   r   r   r
   r4   ±   r   z>Test_TestSuite.test_countTestCases_nested.<locals>.Test1.test2N)r   r   r   r3   r4   r   r   r   r
   r;   ¯   ó    r;   c                   S   r   r   r   r   r   r   r
   r(   ³   r   z;Test_TestSuite.test_countTestCases_nested.<locals>.<lambda>c                   S   r   r   r   r   r   r   r
   r(   ´   r   r4   r3   é   r+   )r   r   r)   r   r    r!   r"   r#   )r	   r;   r4   Ztest3ÚchildÚparentr   r   r
   Útest_countTestCases_nested®   s   z)Test_TestSuite.test_countTestCases_nestedc                 C   s.   g }t |ƒ}t ¡ }| |¡ |  |g ¡ d S r   )r   r   r   r"   r    )r	   ÚeventsÚresultr%   r   r   r
   Útest_run__empty_suiteÂ   s
   
z$Test_TestSuite.test_run__empty_suitec                 C   s8   t  ¡ }z| ¡  W n
 ty   Y d S w |  d¡ d S )NúFailed to raise TypeError)r   r   r"   Ú	TypeErrorÚfailr$   r   r   r
   Útest_run__requires_resultÎ   s   ÿz(Test_TestSuite.test_run__requires_resultc                    sV   g ‰ t ˆ ƒ}G ‡ fdd„dtjƒ}|dƒ|dƒg}t |¡ |¡ |  ˆ ddg¡ d S )Nc                       s(   e Zd Z‡ fdd„Zdd„ Zdd„ ZdS )z,Test_TestSuite.test_run.<locals>.LoggingCasec                    s   ˆ   d| j ¡ d S )Nzrun %s)ÚappendZ_testMethodName)r	   rF   ©rE   r   r
   r"   ß   r   z0Test_TestSuite.test_run.<locals>.LoggingCase.runc                 S   r   r   r   r   r   r   r
   r3   â   r   z2Test_TestSuite.test_run.<locals>.LoggingCase.test1c                 S   r   r   r   r   r   r   r
   r4   ã   r   z2Test_TestSuite.test_run.<locals>.LoggingCase.test2N)r   r   r   r"   r3   r4   r   rM   r   r
   ÚLoggingCaseÞ   s    rN   r3   r4   z	run test1z	run test2)r   r   r   r   r"   r    )r	   rF   rN   r*   r   rM   r
   Útest_runÚ   s   zTest_TestSuite.test_runc                 C   sp   G dd„ dt jƒ}|dƒ}t  ¡ }| |¡ |  | ¡ d¡ |  t|ƒ|g¡ | t  ¡ ¡ |  | ¡ d¡ d S )Nc                   @   r7   )z2Test_TestSuite.test_addTest__TestCase.<locals>.Fooc                 S   r   r   r   r   r   r   r
   r8   î   r   z7Test_TestSuite.test_addTest__TestCase.<locals>.Foo.testNr:   r   r   r   r
   r   í   r<   r   r8   é   ©	r   r   r   ÚaddTestr    r!   r1   r"   r#   )r	   r   r8   r%   r   r   r
   Útest_addTest__TestCaseì   s   
z%Test_TestSuite.test_addTest__TestCasec                 C   sx   G dd„ dt jƒ}t  |dƒg¡}t  ¡ }| |¡ |  | ¡ d¡ |  t|ƒ|g¡ | t  ¡ ¡ |  | ¡ d¡ d S )Nc                   @   r7   )z3Test_TestSuite.test_addTest__TestSuite.<locals>.Fooc                 S   r   r   r   r   r   r   r
   r8   þ   r   z8Test_TestSuite.test_addTest__TestSuite.<locals>.Foo.testNr:   r   r   r   r
   r   ý   r<   r   r8   rP   rQ   )r	   r   r.   r%   r   r   r
   Útest_addTest__TestSuiteü   s   
z&Test_TestSuite.test_addTest__TestSuitec                    s–   G dd„ dt jƒ}|dƒ‰|dƒ‰t  ˆg¡‰ ‡ ‡‡fdd„}t  ¡ }| |ƒ ¡ |  t|ƒt|ƒ ƒ¡ t  ¡ }|ƒ D ]}| |¡ q;|  ||¡ d S )Nc                   @   r?   )z)Test_TestSuite.test_addTests.<locals>.Fooc                 S   r   r   r   r   r   r   r
   r     r   z0Test_TestSuite.test_addTests.<locals>.Foo.test_1c                 S   r   r   r   r   r   r   r
   r     r   z0Test_TestSuite.test_addTests.<locals>.Foo.test_2N)r   r   r   r   r   r   r   r   r
   r     r@   r   r   r   c                   3   s    ˆV  ˆV  ˆ V  d S r   r   r   ©Zinner_suiter   r   r   r
   Úgen  s   €
z)Test_TestSuite.test_addTests.<locals>.gen)r   r   r   ÚaddTestsr    r1   rR   )r	   r   rV   r-   r.   Útr   rU   r
   Útest_addTests  s   
zTest_TestSuite.test_addTestsc                 C   s:   t  ¡ }z| d¡ W n
 ty   Y d S w |  d¡ d S )Né   rH   )r   r   rW   rI   rJ   r$   r   r   r
   Útest_addTest__noniterable/  s   ÿz(Test_TestSuite.test_addTest__noniterablec                 C   ó   t  ¡ }|  t|jd¡ d S )NrZ   )r   r   ÚassertRaisesrI   rR   r$   r   r   r
   Útest_addTest__noncallable9  ó   z(Test_TestSuite.test_addTest__noncallablec                 C   s.   t  ¡ }|  t|jt¡ |  t|jt j¡ d S r   )r   r   r]   rI   rR   r   r$   r   r   r
   Útest_addTest__casesuiteclass=  s   z+Test_TestSuite.test_addTest__casesuiteclassc                 C   r\   )NZfoo)r   r   r]   rI   rW   r$   r   r   r
   Útest_addTests__stringB  r_   z$Test_TestSuite.test_addTests__stringc                 C   s,   dd„ }t  ¡ }| |¡ | t  ¡ ¡ d S )Nc                 S   r   r   r   )Ú_r   r   r
   ÚfG  r9   z0Test_TestSuite.test_function_in_suite.<locals>.f)r   r   rR   r"   r#   )r	   rc   r%   r   r   r
   Útest_function_in_suiteF  s   
z%Test_TestSuite.test_function_in_suitec                 C   sD   t jjs	t  d¡‚t  ¡ }g d¢|_| d¡ |  g d¢|j¡ d S )NúSuite cleanup is disabled)rP   r+   é   rP   )rP   Nrf   )r   ÚBaseTestSuiteÚ_cleanupÚSkipTestr   Ú_testsÚ_removeTestAtIndexr    r$   r   r   r
   Útest_remove_test_at_indexO  s   


z(Test_TestSuite.test_remove_test_at_indexc                 C   s.   t jjs	t  d¡‚t  ¡ }d |_| d¡ d S )Nre   r+   )r   rg   rh   ri   r   rj   rk   r$   r   r   r
   Ú'test_remove_test_at_index_not_indexableZ  s
   
z6Test_TestSuite.test_remove_test_at_index_not_indexablec                 C   sz   t jjs	t  d¡‚G dd„ dt jƒ}|dƒ}t |¡}||ƒ gƒ}| t  ¡ ¡ ~t	 
¡  |  |jd g¡ |  |ƒ ¡ d S )Nre   c                   @   r7   )zATest_TestSuite.assert_garbage_collect_test_after_run.<locals>.Fooc                 S   r   r   r   r   r   r   r
   Útest_nothingi  r9   zNTest_TestSuite.assert_garbage_collect_test_after_run.<locals>.Foo.test_nothingN)r   r   r   rn   r   r   r   r
   r   h  r<   r   rn   )r   rg   rh   ri   r   ÚweakrefÚrefr"   r#   ÚgcZcollectr    rj   ZassertIsNone)r	   ZTestSuiteClassr   r8   Zwrefr%   r   r   r
   Ú%assert_garbage_collect_test_after_rund  s   

z4Test_TestSuite.assert_garbage_collect_test_after_runc                 C   ó   |   tj¡ d S r   )rr   r   rg   r   r   r   r
   Ú1test_garbage_collect_test_after_run_BaseTestSuitez  ó   z@Test_TestSuite.test_garbage_collect_test_after_run_BaseTestSuitec                 C   rs   r   )rr   r   r   r   r   r   r
   Ú-test_garbage_collect_test_after_run_TestSuite}  ru   z<Test_TestSuite.test_garbage_collect_test_after_run_TestSuitec                    sü   G dd„ dt jƒ}G ‡ fdd„dtƒ‰ d|_ˆ tjd< |  tjjd¡ t  ¡ }| 	|dƒ|dƒg¡ |  
| ¡ d¡ t  ¡ }| |¡ |  ˆ j¡ |  ˆ j¡ |  |j¡ |  |j¡ |  
t|jƒd¡ |  
t|jƒd	¡ |  
|jd¡ |  
| ¡ d¡ d S )
Nc                   @   s<   e Zd ZdZdZedd„ ƒZedd„ ƒZdd„ Zdd	„ Z	d
S )z/Test_TestSuite.test_basetestsuite.<locals>.TestFc                 S   ó
   d| _ d S ©NT©ÚwasSetUp©Úclsr   r   r
   Ú
setUpClass„  ó   
z:Test_TestSuite.test_basetestsuite.<locals>.Test.setUpClassc                 S   rw   rx   ©ÚwasTornDownr{   r   r   r
   ÚtearDownClass‡  r~   z=Test_TestSuite.test_basetestsuite.<locals>.Test.tearDownClassc                 S   r   r   r   r   r   r   r
   ÚtestPassŠ  r9   z8Test_TestSuite.test_basetestsuite.<locals>.Test.testPassc                 S   s   t  d S r   )rJ   r   r   r   r
   ÚtestFailŒ  s   z8Test_TestSuite.test_basetestsuite.<locals>.Test.testFailN)
r   r   r   rz   r€   Úclassmethodr}   r   r‚   rƒ   r   r   r   r
   r     s    

r   c                       s4   e Zd ZdZdZe‡ fdd„ƒZe‡ fdd„ƒZdS )z1Test_TestSuite.test_basetestsuite.<locals>.ModuleFc                      ó
   dˆ _ d S rx   ry   r   ©ÚModuler   r
   ÚsetUpModule‘  r~   z=Test_TestSuite.test_basetestsuite.<locals>.Module.setUpModulec                      r…   rx   r   r   r†   r   r
   ÚtearDownModule”  r~   z@Test_TestSuite.test_basetestsuite.<locals>.Module.tearDownModuleN)r   r   r   rz   r€   Ústaticmethodrˆ   r‰   r   r†   r   r
   r‡   Ž  s    r‡   r‚   rƒ   r+   rP   r   )r   r   Úobjectr   ÚsysÚmodulesZ
addCleanupÚpoprg   rW   r    r!   r#   r"   ÚassertFalserz   r€   ÚlenÚerrorsZfailuresZtestsRun)r	   r   r%   rF   r   r†   r
   Útest_basetestsuite€  s$   


z!Test_TestSuite.test_basetestsuitec                 C   sV   G dd„ dt jƒ}|ƒ }t  ¡ }t  ¡ }| |¡ ||ƒ |  |j¡ |  |j¡ d S )Nc                   @   s   e Zd ZdZdd„ ZdS )z4Test_TestSuite.test_overriding_call.<locals>.MySuiteFc                 _   s$   d| _ tjj| g|¢R i |¤Ž d S rx   )Úcalledr   r   Ú__call__)r	   ÚargsÚkwr   r   r
   r”   ¯  s   z=Test_TestSuite.test_overriding_call.<locals>.MySuite.__call__N)r   r   r   r“   r”   r   r   r   r
   ÚMySuite­  s    r—   )r   r   r#   rR   Z
assertTruer“   r   Z_testRunEntered)r	   r—   r%   rF   Úwrapperr   r   r
   Útest_overriding_call¬  s   
z#Test_TestSuite.test_overriding_callN)#r   r   r   r   r   r   Zeq_pairsZne_pairsr&   r'   r/   r0   r5   r6   r=   r>   rD   rG   rK   rO   rS   rT   rY   r[   r^   r`   ra   rd   rl   rm   rr   rt   rv   r’   r™   r   r   r   r
   r      sJ    þý
	
,r   Ú__main__)r   rq   rŒ   ro   Zunittest.test.supportr   r   r‹   r   r   r   r   r   Úmainr   r   r   r
   Ú<module>   s       (ÿ