o
    KXhw@                     @   sJ   d dl Z d dlZd dlZdd ZG dd dejZedkr#e  dS dS )    Nc                  G   s   t  S N)unittestZ
TestResult)_ r   C/opt/python-3.10.19/usr/lib/python3.10/unittest/test/test_setups.pyresultFactory   s   r   c                   @   s   e Z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'S )(
TestSetupsc                 C   s   t jtt dS )N)Zresultclassstream)r   ZTextTestRunnerr   ioStringIOselfr   r   r   	getRunner   s   zTestSetups.getRunnerc                 G   sh   t  }|D ]}t j|}|| q|  }t  }|| |t   |t   ||S r   )r   	TestSuitedefaultTestLoaderloadTestsFromTestCaseZaddTestsr   ZaddTestrun)r   casessuitecaseZtestsrunnerZ	realSuiter   r   r   runTests   s   

zTestSetups.runTestsc                    R   G  fdddt j |  }|  jd | |jd | t|jd d S )Nc                       0   e Zd ZdZe fddZdd Zdd ZdS )	z)TestSetups.test_setup_class.<locals>.Testr   c                         j d7  _ tj  d S N   )setUpCalledr   TestCase
setUpClassclsTestr   r   r   #      z4TestSetups.test_setup_class.<locals>.Test.setUpClassc                 S      d S r   r   r   r   r   r   test_one'      z2TestSetups.test_setup_class.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   test_two)   r'   z2TestSetups.test_setup_class.<locals>.Test.test_twoN)__name__
__module____qualname__r   classmethodr   r&   r(   r   r"   r   r   r#   !       r#   r      r   )r   r   r   assertEqualr   testsRunlenerrorsr   resultr   r"   r   test_setup_class    
   
zTestSetups.test_setup_classc                    r   )Nc                       r   )	z,TestSetups.test_teardown_class.<locals>.Testr   c                    r   r   tearDownCalledr   r   tearDownClassr    r"   r   r   r9   5   r$   z:TestSetups.test_teardown_class.<locals>.Test.tearDownClassc                 S   r%   r   r   r   r   r   r   r&   9   r'   z5TestSetups.test_teardown_class.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   r(   ;   r'   z5TestSetups.test_teardown_class.<locals>.Test.test_twoNr)   r*   r+   r8   r,   r9   r&   r(   r   r"   r   r   r#   3   r-   r#   r   r.   r   r   r   r   r/   r8   r0   r1   r2   r3   r   r"   r   test_teardown_class2   r6   zTestSetups.test_teardown_classc                    sx   G  fdddt j G fdddt j|  }|  jd | jd | |jd | t|jd d S )Nc                       r   )	z8TestSetups.test_teardown_class_two_classes.<locals>.Testr   c                    r   r   r7   r    r"   r   r   r9   G   r$   zFTestSetups.test_teardown_class_two_classes.<locals>.Test.tearDownClassc                 S   r%   r   r   r   r   r   r   r&   K   r'   zATestSetups.test_teardown_class_two_classes.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   r(   M   r'   zATestSetups.test_teardown_class_two_classes.<locals>.Test.test_twoNr:   r   r"   r   r   r#   E   r-   r#   c                       r   )	z9TestSetups.test_teardown_class_two_classes.<locals>.Test2r   c                    r   r   r7   r    Test2r   r   r9   R   r$   zGTestSetups.test_teardown_class_two_classes.<locals>.Test2.tearDownClassc                 S   r%   r   r   r   r   r   r   r&   V   r'   zBTestSetups.test_teardown_class_two_classes.<locals>.Test2.test_onec                 S   r%   r   r   r   r   r   r   r(   X   r'   zBTestSetups.test_teardown_class_two_classes.<locals>.Test2.test_twoNr:   r   r=   r   r   r>   P   r-   r>   r      r   r;   r3   r   r#   r>   r   test_teardown_class_two_classesD   s   z*TestSetups.test_teardown_class_two_classesc                 C   sh   G dd dt j}| |}| |jd | t|jd |jd \}}| t|dt|j	f  d S )Nc                   @   (   e Zd Zedd Zdd Zdd ZdS )z7TestSetups.test_error_in_setupclass.<locals>.BrokenTestc                 S   s   t dNfoo	TypeErrorr    r   r   r   r   d   s   zBTestSetups.test_error_in_setupclass.<locals>.BrokenTest.setUpClassc                 S   r%   r   r   r   r   r   r   r&   g   r'   z@TestSetups.test_error_in_setupclass.<locals>.BrokenTest.test_onec                 S   r%   r   r   r   r   r   r   r(   i   r'   z@TestSetups.test_error_in_setupclass.<locals>.BrokenTest.test_twoNr)   r*   r+   r,   r   r&   r(   r   r   r   r   
BrokenTestc   
    
rH   r   r   setUpClass (%s.%s))
r   r   r   r/   r0   r1   r2   strr)   r+   )r   rH   r4   errorr   r   r   r   test_error_in_setupclassb   s   
	
z#TestSetups.test_error_in_setupclassc                    s   G  fdddt j G fdddt j|  }| |jd | t|jd |  jd | jd |jd \}}| t|d	t	 j
f  d S )
Nc                       r   )	z5TestSetups.test_error_in_teardown_class.<locals>.Testr   c                         j d7  _ tdNr   rD   tornDownrF   r    r"   r   r   r9   w      zCTestSetups.test_error_in_teardown_class.<locals>.Test.tearDownClassc                 S   r%   r   r   r   r   r   r   r&   {   r'   z>TestSetups.test_error_in_teardown_class.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   r(   }   r'   z>TestSetups.test_error_in_teardown_class.<locals>.Test.test_twoNr)   r*   r+   rQ   r,   r9   r&   r(   r   r"   r   r   r#   u   r-   r#   c                       r   )	z6TestSetups.test_error_in_teardown_class.<locals>.Test2r   c                    rN   rO   rP   r    r=   r   r   r9      rR   zDTestSetups.test_error_in_teardown_class.<locals>.Test2.tearDownClassc                 S   r%   r   r   r   r   r   r   r&      r'   z?TestSetups.test_error_in_teardown_class.<locals>.Test2.test_onec                 S   r%   r   r   r   r   r   r   r(      r'   z?TestSetups.test_error_in_teardown_class.<locals>.Test2.test_twoNrS   r   r=   r   r   r>      r-   r>   r?   r.   r   r   ztearDownClass (%s.%s))r   r   r   r/   r0   r1   r2   rQ   rK   r)   r+   )r   r4   rL   r   r   r@   r   test_error_in_teardown_classt   s   
z'TestSetups.test_error_in_teardown_classc                    s0   G  fdddt j |   |  j d S )Nc                       s4   e Zd ZdZedd Ze fddZdd ZdS )	zATestSetups.test_class_not_torndown_when_setup_fails.<locals>.TestFc                 S   s   t r   rE   r    r   r   r   r      s   zLTestSetups.test_class_not_torndown_when_setup_fails.<locals>.Test.setUpClassc                    s   d _ td)NTrD   rP   r    r"   r   r   r9      s   zOTestSetups.test_class_not_torndown_when_setup_fails.<locals>.Test.tearDownClassc                 S   r%   r   r   r   r   r   r   r&      r'   zJTestSetups.test_class_not_torndown_when_setup_fails.<locals>.Test.test_oneN)r)   r*   r+   rQ   r,   r   r9   r&   r   r"   r   r   r#      s    
r#   )r   r   r   assertFalserQ   r   r   r"   r   (test_class_not_torndown_when_setup_fails   s   
z3TestSetups.test_class_not_torndown_when_setup_failsc                    sJ   G  fdddt j t d  |   |  j |  j d S )Nc                       s<   e Zd ZdZdZe fddZe fddZdd ZdS )	zFTestSetups.test_class_not_setup_or_torndown_when_skipped.<locals>.TestFc                    
   d _ d S NT
classSetUpr    r"   r   r   r         
zQTestSetups.test_class_not_setup_or_torndown_when_skipped.<locals>.Test.setUpClassc                    rW   rX   )rQ   r    r"   r   r   r9      r[   zTTestSetups.test_class_not_setup_or_torndown_when_skipped.<locals>.Test.tearDownClassc                 S   r%   r   r   r   r   r   r   r&      r'   zOTestSetups.test_class_not_setup_or_torndown_when_skipped.<locals>.Test.test_oneN)	r)   r*   r+   rZ   rQ   r,   r   r9   r&   r   r"   r   r   r#      s    r#   Zhop)r   r   skipr   rU   rZ   rQ   r   r   r"   r   -test_class_not_setup_or_torndown_when_skipped   s
   
z8TestSetups.test_class_not_setup_or_torndown_when_skippedc                    sP  g  G  fdddt }G  fdddt }G  fdddtj}G  fdddtj}G  fd	d
d
tj}d |_|_d|_|tjd< |tjd< t|df}t|df}t|df}t|df}	t|df}
t|df}t||||	|
|f}|  }||}| 	|j
d | 	t|jd | 	 g d d S )Nc                       ,   e Zd Ze fddZe fddZdS )zMTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Module1c                           d d S )NModule1.setUpModuleappendr   resultsr   r   setUpModule      zYTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Module1.setUpModulec                      r_   )NModule1.tearDownModulera   r   rc   r   r   tearDownModule   rf   z\TestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Module1.tearDownModuleNr)   r*   r+   staticmethodre   rh   r   rc   r   r   Module1   
    rk   c                       r^   )zMTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Module2c                      r_   )NModule2.setUpModulera   r   rc   r   r   re      rf   zYTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Module2.setUpModulec                      r_   )NModule2.tearDownModulera   r   rc   r   r   rh      rf   z\TestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Module2.tearDownModuleNri   r   rc   r   r   Module2   rl   ro   c                       D   e Zd Ze fddZe fddZ fddZ fddZd	S )
zKTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test1c                    r_   )Nsetup 1ra   r    rc   r   r   r      rf   zVTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test1.setUpClassc                    r_   )N
teardown 1ra   r    rc   r   r   r9      rf   zYTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test1.tearDownClassc                    r_   )NTest1.testOnera   r   rc   r   r   testOne      zSTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test1.testOnec                    r_   )NTest1.testTwora   r   rc   r   r   testTwo   ru   zSTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test1.testTwoNr)   r*   r+   r,   r   r9   rt   rw   r   rc   r   r   Test1       ry   c                       rp   )
zKTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test2c                    r_   )Nsetup 2ra   r    rc   r   r   r      rf   zVTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test2.setUpClassc                    r_   )N
teardown 2ra   r    rc   r   r   r9      rf   zYTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test2.tearDownClassc                    r_   )NTest2.testOnera   r   rc   r   r   rt      ru   zSTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test2.testOnec                    r_   )NTest2.testTwora   r   rc   r   r   rw      ru   zSTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test2.testTwoNrx   r   rc   r   r   r>      rz   r>   c                       rp   )
zKTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test3c                    r_   )Nsetup 3ra   r    rc   r   r   r      rf   zVTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test3.setUpClassc                    r_   )N
teardown 3ra   r    rc   r   r   r9      rf   zYTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test3.tearDownClassc                    r_   )NTest3.testOnera   r   rc   r   r   rt      ru   zSTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test3.testOnec                    r_   )NTest3.testTwora   r   rc   r   r   rw      ru   zSTestSetups.test_setup_teardown_order_with_pathological_suite.<locals>.Test3.testTwoNrx   r   rc   r   r   Test3   rz   r   Modulert   rw      r   )r`   rq   rs   rv   rr   r{   r}   r~   r|   rg   rm   r   r   r   r   rn   )objectr   r   r*   sysmodulesr   r   r   r/   r0   r1   r2   )r   rk   ro   ry   r>   r   firstsecondthirdZfourthZfifthZsixthr   r   r4   r   rc   r   1test_setup_teardown_order_with_pathological_suite   s0   


z<TestSetups.test_setup_teardown_order_with_pathological_suitec                    r   G  fdddt  G dd dtj}d|_ tjd< | |}|  jd | |j	d | t
|jd d S )Nc                           e Zd ZdZe fddZdS )z,TestSetups.test_setup_module.<locals>.Moduler   c                           j d7  _ d S r   )moduleSetupr   r   r   r   re        z8TestSetups.test_setup_module.<locals>.Module.setUpModuleN)r)   r*   r+   r   rj   re   r   r   r   r   r   
      r   c                   @      e Zd Zdd Zdd ZdS )z*TestSetups.test_setup_module.<locals>.Testc                 S   r%   r   r   r   r   r   r   r&     r'   z3TestSetups.test_setup_module.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   r(     r'   z3TestSetups.test_setup_module.<locals>.Test.test_twoNr)   r*   r+   r&   r(   r   r   r   r   r#         r#   r   r.   r   )r   r   r   r*   r   r   r   r/   r   r0   r1   r2   r   r#   r4   r   r   r   test_setup_module	     

zTestSetups.test_setup_modulec                    s   G  fdddt  G fdddtjG dd dtj}d_d|_ tjd< | |}|  jd |  j	d | |j
d | j | j | t|jd |jd \}}| t|d	 d S )
Nc                       s4   e Zd ZdZdZe fddZe fddZdS )z5TestSetups.test_error_in_setup_module.<locals>.Moduler   c                      rN   rO   )r   rF   r   r   r   r   re   !  rR   zATestSetups.test_error_in_setup_module.<locals>.Module.setUpModulec                      r   r   moduleTornDownr   r   r   r   rh   %  r   zDTestSetups.test_error_in_setup_module.<locals>.Module.tearDownModuleN)r)   r*   r+   r   r   rj   re   rh   r   r   r   r   r     s    r   c                       D   e Zd ZdZdZe fddZe fddZdd Zdd	 Z	d
S )z3TestSetups.test_error_in_setup_module.<locals>.TestFc                    rW   rX   rY   r    r"   r   r   r   ,  r[   z>TestSetups.test_error_in_setup_module.<locals>.Test.setUpClassc                    rW   rX   classTornDownr    r"   r   r   r9   /  r[   zATestSetups.test_error_in_setup_module.<locals>.Test.tearDownClassc                 S   r%   r   r   r   r   r   r   r&   2  r'   z<TestSetups.test_error_in_setup_module.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   r(   4  r'   z<TestSetups.test_error_in_setup_module.<locals>.Test.test_twoN
r)   r*   r+   rZ   r   r,   r   r9   r&   r(   r   r"   r   r   r#   )      r#   c                   @   r   )z4TestSetups.test_error_in_setup_module.<locals>.Test2c                 S   r%   r   r   r   r   r   r   r&   8  r'   z=TestSetups.test_error_in_setup_module.<locals>.Test2.test_onec                 S   r%   r   r   r   r   r   r   r(   :  r'   z=TestSetups.test_error_in_setup_module.<locals>.Test2.test_twoNr   r   r   r   r   r>   7  r   r>   r   r   setUpModule (Module))r   r   r   r*   r   r   r   r/   r   r   r0   rU   rZ   r   r1   r2   rK   r   r>   r4   rL   r   r   r   r#   r   test_error_in_setup_module  s   
z%TestSetups.test_error_in_setup_modulec                 C   sB   G dd dt j}d|_tjdd  | |}| |jd d S )Nc                   @   r   )z:TestSetups.test_testcase_with_missing_module.<locals>.Testc                 S   r%   r   r   r   r   r   r   r&   L  r'   zCTestSetups.test_testcase_with_missing_module.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   r(   N  r'   zCTestSetups.test_testcase_with_missing_module.<locals>.Test.test_twoNr   r   r   r   r   r#   K  r   r#   r   r.   )	r   r   r*   r   r   popr   r/   r0   r   r   r   r   !test_testcase_with_missing_moduleJ  s
   
z,TestSetups.test_testcase_with_missing_modulec                    r   )Nc                       r   )z/TestSetups.test_teardown_module.<locals>.Moduler   c                      r   r   r   r   r   r   r   rh   Y  r   z>TestSetups.test_teardown_module.<locals>.Module.tearDownModuleNr)   r*   r+   r   rj   rh   r   r   r   r   r   W  r   r   c                   @   r   )z-TestSetups.test_teardown_module.<locals>.Testc                 S   r%   r   r   r   r   r   r   r&   ^  r'   z6TestSetups.test_teardown_module.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   r(   `  r'   z6TestSetups.test_teardown_module.<locals>.Test.test_twoNr   r   r   r   r   r#   ]  r   r#   r   r.   r   )r   r   r   r*   r   r   r   r/   r   r0   r1   r2   r   r   r   r   test_teardown_moduleV  r   zTestSetups.test_teardown_modulec                    s   G  fdddt  G fdddtjG dd dtj}d_d|_ tjd< | |}|  jd | |j	d | 
j | 
j | t|jd |jd	 \}}| t|d
 d S )Nc                       r   )z8TestSetups.test_error_in_teardown_module.<locals>.Moduler   c                      rN   rO   )r   rF   r   r   r   r   rh   m  rR   zGTestSetups.test_error_in_teardown_module.<locals>.Module.tearDownModuleNr   r   r   r   r   r   k  r   r   c                       r   )z6TestSetups.test_error_in_teardown_module.<locals>.TestFc                    rW   rX   rY   r    r"   r   r   r   u  r[   zATestSetups.test_error_in_teardown_module.<locals>.Test.setUpClassc                    rW   rX   r   r    r"   r   r   r9   x  r[   zDTestSetups.test_error_in_teardown_module.<locals>.Test.tearDownClassc                 S   r%   r   r   r   r   r   r   r&   {  r'   z?TestSetups.test_error_in_teardown_module.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   r(   }  r'   z?TestSetups.test_error_in_teardown_module.<locals>.Test.test_twoNr   r   r"   r   r   r#   r  r   r#   c                   @   r   )z7TestSetups.test_error_in_teardown_module.<locals>.Test2c                 S   r%   r   r   r   r   r   r   r&     r'   z@TestSetups.test_error_in_teardown_module.<locals>.Test2.test_onec                 S   r%   r   r   r   r   r   r   r(     r'   z@TestSetups.test_error_in_teardown_module.<locals>.Test2.test_twoNr   r   r   r   r   r>     r   r>   r   r?   r   ztearDownModule (Module))r   r   r   r*   r   r   r   r/   r   r0   Z
assertTruerZ   r   r1   r2   rK   r   r   r   r   test_error_in_teardown_modulej  s   
z(TestSetups.test_error_in_teardown_modulec                 C   sz   G dd dt j}| |}| |jd | t|jd | t|jd |jd d }| t|dt	|j
f  d S )Nc                   @   rB   )z4TestSetups.test_skiptest_in_setupclass.<locals>.Testc                 S   
   t drC   r   ZSkipTestr    r   r   r   r     r[   z?TestSetups.test_skiptest_in_setupclass.<locals>.Test.setUpClassc                 S   r%   r   r   r   r   r   r   r&     r'   z=TestSetups.test_skiptest_in_setupclass.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   r(     r'   z=TestSetups.test_skiptest_in_setupclass.<locals>.Test.test_twoNrG   r   r   r   r   r#     rI   r#   r   r   rJ   )r   r   r   r/   r0   r1   r2   skippedrK   r)   r+   )r   r#   r4   r   r   r   r   test_skiptest_in_setupclass  s   
	
z&TestSetups.test_skiptest_in_setupclassc                 C   s   G dd dt j}G dd dt}d|_|tjd< | |}| |jd | t	|j
d | t	|jd |jd d }| t|d d S )Nc                   @   r   )z5TestSetups.test_skiptest_in_setupmodule.<locals>.Testc                 S   r%   r   r   r   r   r   r   r&     r'   z>TestSetups.test_skiptest_in_setupmodule.<locals>.Test.test_onec                 S   r%   r   r   r   r   r   r   r(     r'   z>TestSetups.test_skiptest_in_setupmodule.<locals>.Test.test_twoNr   r   r   r   r   r#     r   r#   c                   @   s   e Zd Zedd ZdS )z7TestSetups.test_skiptest_in_setupmodule.<locals>.Modulec                   S   r   rC   r   r   r   r   r   re     r[   zCTestSetups.test_skiptest_in_setupmodule.<locals>.Module.setUpModuleN)r)   r*   r+   rj   re   r   r   r   r   r     s    r   r   r   r   )r   r   r   r*   r   r   r   r/   r0   r1   r2   r   rK   )r   r#   r   r4   r   r   r   r   test_skiptest_in_setupmodule  s   

z'TestSetups.test_skiptest_in_setupmodulec                    sj   g  G  fdddt }G  fdddtj}d|_|tjd< tj|}|  g d}| 	 | d S )Nc                       r^   )zITestSetups.test_suite_debug_executes_setups_and_teardowns.<locals>.Modulec                      r_   )Nre   ra   r   Zorderingr   r   re     rf   zUTestSetups.test_suite_debug_executes_setups_and_teardowns.<locals>.Module.setUpModulec                      r_   )Nrh   ra   r   r   r   r   rh     rf   zXTestSetups.test_suite_debug_executes_setups_and_teardowns.<locals>.Module.tearDownModuleNri   r   r   r   r   r     rl   r   c                       8   e Zd Ze fddZe fddZ fddZdS )zGTestSetups.test_suite_debug_executes_setups_and_teardowns.<locals>.Testc                    r_   )Nr   ra   r    r   r   r   r     rf   zRTestSetups.test_suite_debug_executes_setups_and_teardowns.<locals>.Test.setUpClassc                    r_   )Nr9   ra   r    r   r   r   r9     rf   zUTestSetups.test_suite_debug_executes_setups_and_teardowns.<locals>.Test.tearDownClassc                    r_   )Ntest_somethingra   r   r   r   r   r     ru   zVTestSetups.test_suite_debug_executes_setups_and_teardowns.<locals>.Test.test_somethingNr)   r*   r+   r,   r   r9   r   r   r   r   r   r#     s    r#   )re   r   r   r9   rh   )
r   r   r   r*   r   r   r   r   debugr/   )r   r   r#   r   ZexpectedOrderr   r   r   .test_suite_debug_executes_setups_and_teardowns  s   

z9TestSetups.test_suite_debug_executes_setups_and_teardownsc              	      s   G  fdddt }G  fdddtj}d|_|tjd< d}t|D ]*\ }tj|}t	|g}| 
t| |  W d    n1 sHw   Y  q#d S )Nc                       r^   )zATestSetups.test_suite_debug_propagates_exceptions.<locals>.Modulec                          dkrt dd S )Nr   re   	Exceptionr   Zphaser   r   re        zMTestSetups.test_suite_debug_propagates_exceptions.<locals>.Module.setUpModulec                      r   )Nr   rh   r   r   r   r   r   rh     r   zPTestSetups.test_suite_debug_propagates_exceptions.<locals>.Module.tearDownModuleNri   r   r   r   r   r     s
    r   c                       r   )z?TestSetups.test_suite_debug_propagates_exceptions.<locals>.Testc                    r   )Nr.   r   r   r    r   r   r   r     r   zJTestSetups.test_suite_debug_propagates_exceptions.<locals>.Test.setUpClassc                    r   )N   r9   r   r    r   r   r   r9     r   zMTestSetups.test_suite_debug_propagates_exceptions.<locals>.Test.tearDownClassc                    r   )Nr?   r   r   r   r   r   r   r     s   zNTestSetups.test_suite_debug_propagates_exceptions.<locals>.Test.test_somethingNr   r   r   r   r   r#     s    r#   )re   rh   r   r9   r   )r   r   r   r*   r   r   	enumerater   r   r   ZassertRaisesRegexr   r   )r   r   r#   messagesmsgZ_suiter   r   r   r   &test_suite_debug_propagates_exceptions  s   


z1TestSetups.test_suite_debug_propagates_exceptionsN)r)   r*   r+   r   r   r5   r<   rA   rM   rT   rV   r]   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s(    !R-(r   __main__)r
   r   r   r   r   r   r)   mainr   r   r   r   <module>   s       r