o
    KXh7                     @   s   d dl Z d dl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	m
Z
 dd Zdd Zdd	 ZdddZG dd dejZG dd dejZG dd dejZG dd dejZedkree  dS dS )    N)_Outcome)LoggingResult#ResultWithNoStartTestRunStopTestRunc                  G   s   t  S N)unittest
TestResult)_ r	   C/opt/python-3.10.19/usr/lib/python3.10/unittest/test/test_runner.pyresultFactory      r   c                   C   s   t jtt dS )N)resultclassstream)r   TextTestRunnerr   ioStringIOr	   r	   r	   r
   	getRunner   s   r   c                  G   sf   t  }| D ]}t j|}|| qt }t  }|| |t   |t   ||S r   )r   	TestSuitedefaultTestLoaderloadTestsFromTestCaseZaddTestsr   ZaddTestrun)casessuitecaseZtestsrunnerZ	realSuiter	   r	   r
   runTests   s   

r   Fc                 C   s$   |s	|  d d S |  d td)Ncleanup_goodcleanup_exc
CleanUpExcappend	Exception)orderingblowUpr	   r	   r
   cleanup(   s   
r$   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestCleanUpc              
      s   G dd dt j}|d}| |jg  g   fdd} fdd}|j|dd	d
ddd || | |j|dtdddf|di fg | |  |  d	di fddtdddfg d S )Nc                   @      e Zd Zdd ZdS )z-TestCleanUp.testCleanUp.<locals>.TestableTestc                 S      d S r   r	   selfr	   r	   r
   testNothing3      z9TestCleanUp.testCleanUp.<locals>.TestableTest.testNothingN__name__
__module____qualname__r*   r	   r	   r	   r
   TestableTest2       r0   r*   c                          d| |f d S N   r    argskwargscleanupsr	   r
   cleanup1;      z)TestCleanUp.testCleanUp.<locals>.cleanup1c                     r2   )N   r5   r6   r9   r	   r
   cleanup2>   r<   z)TestCleanUp.testCleanUp.<locals>.cleanup2r4   r=      hellogoodbyeZfourZfiver4   r=   r?   r	   )r   TestCaseassertEqualZ	_cleanups
addCleanupdict
assertTrue
doCleanups)r)   r0   testr;   r>   r	   r9   r
   testCleanUp1   s   
(zTestCleanUp.testCleanUpc                    s   G dd dt j}|d}t  }|_td td fdd}fdd	}|| || | |  | |j t	|j
\\}\}}}\}\}	}
}| ||ft f | |	|
ftf d S )
Nc                   @   r&   )z7TestCleanUp.testCleanUpWithErrors.<locals>.TestableTestc                 S   r'   r   r	   r(   r	   r	   r
   r*   M   r+   zCTestCleanUp.testCleanUpWithErrors.<locals>.TestableTest.testNothingNr,   r	   r	   r	   r
   r0   L   r1   r0   r*   fooZbarc                          r   r	   r	   )r   r	   r
   r;   U   r+   z3TestCleanUp.testCleanUpWithErrors.<locals>.cleanup1c                      rM   r   r	   r	   )exc2r	   r
   r>   X   r+   z3TestCleanUp.testCleanUpWithErrors.<locals>.cleanup2)r   rD   r   Z_outcomer!   rF   assertFalserI   successreversederrorsrE   )r)   r0   rJ   outcomer;   r>   r   ZType1Z	instance1ZType2Z	instance2r	   )r   rN   r
   testCleanUpWithErrorsK   s    

z!TestCleanUp.testCleanUpWithErrorsc                    s   d g G  fdddt j}|dfdd}fddfd	d
| fdd}t  }||_| g d d g |d| | g d d S )NFc                       s:   e Zd Z fddZfddZfddZdS )z2TestCleanUp.testCleanupInRun.<locals>.TestableTestc                    s$    d   rtdd S )NsetUprL   )r    rF   r!   r(   )r#   r>   r"   rJ   r	   r
   rU   k   s
   

z8TestCleanUp.testCleanupInRun.<locals>.TestableTest.setUpc                        d   d S NrJ   r    rF   r(   )cleanup3r"   rJ   r	   r
   r*   q      
z>TestCleanUp.testCleanupInRun.<locals>.TestableTest.testNothingc                         d d S NtearDownr5   r(   r"   r	   r
   r]   u      z;TestCleanUp.testCleanupInRun.<locals>.TestableTest.tearDownNr-   r.   r/   rU   r*   r]   r	   )r#   r>   rY   r"   rJ   r	   r
   r0   j   s    r0   r*   c                      r[   Nr;   r5   r	   r^   r	   r
   r;   z   r_   z.TestCleanUp.testCleanupInRun.<locals>.cleanup1c                      r[   Nr>   r5   r	   r^   r	   r
   r>   |   r_   z.TestCleanUp.testCleanupInRun.<locals>.cleanup2c                      r[   NrY   r5   r	   r^   r	   r
   rY   ~   r_   z.TestCleanUp.testCleanupInRun.<locals>.cleanup3c                    s    |   d d S )NrP   )rE   r    )Z	some_test)r"   r)   rJ   r	   r
   rP      s   z-TestCleanUp.testCleanupInRun.<locals>.success)rU   rJ   r]   rY   r>   r;   rP   T)rU   r>   r;   )r   rD   rF   r   Z
addSuccessr   rE   )r)   r0   r;   rP   resultr	   )r#   r>   rY   r"   r)   rJ   r
   testCleanupInRunf   s&   



zTestCleanUp.testCleanupInRunc                    sz   g G  fdddt j}|dfdd fddfdd	fd
d  | g d d S )Nc                       s8   e Zd Z fddZfddZfddZdS )zCTestCleanUp.testTestCaseDebugExecutesCleanups.<locals>.TestableTestc                        d |   d S NrU   rX   r(   r;   r"   r	   r
   rU      rZ   zITestCleanUp.testTestCaseDebugExecutesCleanups.<locals>.TestableTest.setUpc                    rf   rW   rX   r(   rY   r"   r	   r
   r*      rZ   zOTestCleanUp.testTestCaseDebugExecutesCleanups.<locals>.TestableTest.testNothingc                    rV   r\   rX   r(   )cleanup4r"   rJ   r	   r
   r]      rZ   zLTestCleanUp.testTestCaseDebugExecutesCleanups.<locals>.TestableTest.tearDownNr`   r	   )r;   rY   rj   r"   rJ   r	   r
   r0      s    r0   r*   c                      rV   ra   rX   r	   )r>   r"   rJ   r	   r
   r;      rZ   z?TestCleanUp.testTestCaseDebugExecutesCleanups.<locals>.cleanup1c                      r[   rb   r5   r	   r^   r	   r
   r>      r_   z?TestCleanUp.testTestCaseDebugExecutesCleanups.<locals>.cleanup2c                      r[   rc   r5   r	   r^   r	   r
   rY      r_   z?TestCleanUp.testTestCaseDebugExecutesCleanups.<locals>.cleanup3c                      r[   )Nrj   r5   r	   r^   r	   r
   rj      r_   z?TestCleanUp.testTestCaseDebugExecutesCleanups.<locals>.cleanup4)rU   rJ   r]   rj   rY   r;   r>   )r   rD   debugrE   r)   r0   r	   )r;   r>   rY   rj   r"   rJ   r
   !testTestCaseDebugExecutesCleanups   s   z-TestCleanUp.testTestCaseDebugExecutesCleanupsN)r-   r.   r/   rK   rT   re   rm   r	   r	   r	   r
   r%   0   s
    .r%   c                   @   sd   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S )TestClassCleanupc              
      s   G dd dt j}|d}| |jg  g   fdd} fdd}|j|dd	d
ddd || | |j|dtdddf|di fg |  |  ddi fd
dtdddfg d S )Nc                   @   r&   )z;TestClassCleanup.test_addClassCleanUp.<locals>.TestableTestc                 S   r'   r   r	   r(   r	   r	   r
   r*      r+   zGTestClassCleanup.test_addClassCleanUp.<locals>.TestableTest.testNothingNr,   r	   r	   r	   r
   r0      r1   r0   r*   c                     r2   Nr?   r5   r6   Zclass_cleanupsr	   r
   class_cleanup1   r<   z=TestClassCleanup.test_addClassCleanUp.<locals>.class_cleanup1c                     r2   N   r5   r6   rp   r	   r
   class_cleanup2   r<   z=TestClassCleanup.test_addClassCleanUp.<locals>.class_cleanup2r4   r=   r?   r@   rA   rB   rC   r	   rs   )r   rD   rE   _class_cleanupsaddClassCleanuprG   doClassCleanups)r)   r0   rJ   rq   rt   r	   rp   r
   test_addClassCleanUp   s*   


z%TestClassCleanup.test_addClassCleanUpc                    \   g d G  fdddt j}t| | ddg g d t| | g d d S )NTc                       :   e Zd Ze fddZfddZefddZdS )z=TestClassCleanup.test_run_class_cleanUp.<locals>.TestableTestc                    $    d | t  rt d S N
setUpClassr    rv   r$   r!   clsr#   r"   r	   r
   r}      
   
zHTestClassCleanup.test_run_class_cleanUp.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*      r_   zITestClassCleanup.test_run_class_cleanUp.<locals>.TestableTest.testNothingc                    r[   NtearDownClassr5   r   r^   r	   r
   r         zKTestClassCleanup.test_run_class_cleanUp.<locals>.TestableTest.tearDownClassNr-   r.   r/   classmethodr}   r*   r   r	   r   r	   r
   r0      s    r0   r}   r   Fr}   rJ   r   r   r   rD   r   rE   rl   r	   r   r
   test_run_class_cleanUp   s   z'TestClassCleanup.test_run_class_cleanUpc                    ry   )NTc                       s:   e Zd Ze fddZfddZeedd ZdS )zSTestClassCleanup.test_run_class_cleanUp_without_tearDownClass.<locals>.TestableTestc                    r{   r|   r~   r   r   r	   r
   r}      r   z^TestClassCleanup.test_run_class_cleanUp_without_tearDownClass.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*      r_   z_TestClassCleanup.test_run_class_cleanUp_without_tearDownClass.<locals>.TestableTest.testNothingc                 S   s   t r   )AttributeErrorr   r	   r	   r
   r      s   zaTestClassCleanup.test_run_class_cleanUp_without_tearDownClass.<locals>.TestableTest.tearDownClassN)r-   r.   r/   r   r}   r*   propertyr   r	   r   r	   r
   r0      s    r0   r}   r   F)r}   rJ   r   r   rl   r	   r   r
   ,test_run_class_cleanUp_without_tearDownClass   s   z=TestClassCleanup.test_run_class_cleanUp_without_tearDownClassc                    s   g d G  fdddt j}t j|}|  | g d g d t j|}| t}|  W d    n1 s@w   Y  | t|j	d | g d d S )NFc                       rz   )zGTestClassCleanup.test_debug_executes_classCleanUp.<locals>.TestableTestc                        d | jt d d S Nr}   r#   r    rv   r$   r   r   r	   r
   r}        
zRTestClassCleanup.test_debug_executes_classCleanUp.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*     r_   zSTestClassCleanup.test_debug_executes_classCleanUp.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r     r   zUTestClassCleanup.test_debug_executes_classCleanUp.<locals>.TestableTest.tearDownClassNr   r	   r   r	   r
   r0   
      r0   r   Tr   )r}   rJ   r   r   )
r   rD   r   r   rk   rE   assertRaisesr!   str	exceptionr)   r0   r   cmr	   r   r
    test_debug_executes_classCleanUp  s$   
z1TestClassCleanup.test_debug_executes_classCleanUpc                    s  g d G  fdddt j}t j|}| t}|  W d    n1 s*w   Y  | t|j	d | g d | 
|j |j  g d t j|}| t}|  W d    n1 siw   Y  | t|j	d | g d | 
|j |j  d S )NFc                       rz   )z_TestClassCleanup.test_debug_executes_classCleanUp_when_teardown_exception.<locals>.TestableTestc                    r   r   r   r   r   r	   r
   r}   (  r   zjTestClassCleanup.test_debug_executes_classCleanUp_when_teardown_exception.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*   ,  r_   zkTestClassCleanup.test_debug_executes_classCleanUp_when_teardown_exception.<locals>.TestableTest.testNothingc                         d td)Nr   TearDownClassExcr   r   r^   r	   r
   r   .     
zmTestClassCleanup.test_debug_executes_classCleanUp_when_teardown_exception.<locals>.TestableTest.tearDownClassNr   r	   r   r	   r
   r0   '  r   r0   r   )r}   rJ   r   T)r   rD   r   r   r   r!   rk   rE   r   r   rH   ru   clearr   r	   r   r
   8test_debug_executes_classCleanUp_when_teardown_exception#  s*   


zITestClassCleanup.test_debug_executes_classCleanUp_when_teardown_exceptionc                 C   sz   G dd dt j}dd }dd }|| || | t}|  | |d W d    d S 1 s6w   Y  d S )Nc                   @   r&   )zWTestClassCleanup.test_doClassCleanups_with_errors_addClassCleanUp.<locals>.TestableTestc                 S   r'   r   r	   r(   r	   r	   r
   r*   G  r+   zcTestClassCleanup.test_doClassCleanups_with_errors_addClassCleanUp.<locals>.TestableTest.testNothingNr,   r	   r	   r	   r
   r0   F  r1   r0   c                   S      t dra   r!   r	   r	   r	   r
   r;   J  r   zSTestClassCleanup.test_doClassCleanups_with_errors_addClassCleanUp.<locals>.cleanup1c                   S   r   rb   r   r	   r	   r	   r
   r>   M  r   zSTestClassCleanup.test_doClassCleanups_with_errors_addClassCleanUp.<locals>.cleanup2r;   )r   rD   rv   r   r!   rw   rE   )r)   r0   r;   r>   er	   r	   r
   0test_doClassCleanups_with_errors_addClassCleanUpE  s   

"zATestClassCleanup.test_doClassCleanups_with_errors_addClassCleanUpc                    T   g  G  fdddt j}t|}| |jd d  d d |  g d d S )Nc                       s@   e Zd Ze fddZ fddZdd Ze fddZd	S )
zBTestClassCleanup.test_with_errors_addCleanUp.<locals>.TestableTestc                         d | t  d S r|   r   r   r^   r	   r
   r}   Y     
zMTestClassCleanup.test_with_errors_addCleanUp.<locals>.TestableTest.setUpClassc                         d | jt dd d S NrU   Tr   r    rF   r$   r(   r^   r	   r
   rU   ]     
zHTestClassCleanup.test_with_errors_addCleanUp.<locals>.TestableTest.setUpc                 S   r'   r   r	   r(   r	   r	   r
   r*   `  r+   zNTestClassCleanup.test_with_errors_addCleanUp.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r   b  r   zPTestClassCleanup.test_with_errors_addCleanUp.<locals>.TestableTest.tearDownClassNr-   r.   r/   r   r}   rU   r*   r   r	   r^   r	   r
   r0   X  s    r0   r   r4   Exception: CleanUpExc)r}   rU   r   r   r   r   rD   r   rE   rR   
splitlinesr)   r0   rd   r	   r^   r
   test_with_errors_addCleanUpV     z,TestClassCleanup.test_with_errors_addCleanUpc                    r   )Nc                       sD   e Zd Ze fddZ fddZ fddZe fddZd	S )
zKTestClassCleanup.test_run_with_errors_addClassCleanUp.<locals>.TestableTestc                    r   Nr}   Tr   r   r   r^   r	   r
   r}   p  r   zVTestClassCleanup.test_run_with_errors_addClassCleanUp.<locals>.TestableTest.setUpClassc                    r   rg   r   r(   r^   r	   r
   rU   t  s   
zQTestClassCleanup.test_run_with_errors_addClassCleanUp.<locals>.TestableTest.setUpc                    r[   rW   r5   r(   r^   r	   r
   r*   w  r_   zWTestClassCleanup.test_run_with_errors_addClassCleanUp.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r   y  r   zYTestClassCleanup.test_run_with_errors_addClassCleanUp.<locals>.TestableTest.tearDownClassNr   r	   r^   r	   r
   r0   o  s    r0   r   r4   r   r   )r}   rU   rJ   r   r   r   r   r   r	   r^   r
   $test_run_with_errors_addClassCleanUpm  r   z5TestClassCleanup.test_run_with_errors_addClassCleanUpc                    s   g d dG  fdddt j}t|}| |jd d  d d | g d g d	 dt|}| |jd d  d d
 | |jd d  d d | ddg g d d	t|}| |jd d  d d | |jd d  d d | g d d S )NFc                       H   e Zd Ze fddZfddZfddZefddZd	S )
zUTestClassCleanup.test_with_errors_in_addClassCleanup_and_setUps.<locals>.TestableTestc                    s*    d | jtdd  rtdd S )Nr}   Tr   ClassExcr~   r   class_blow_upr"   r	   r
   r}     
   
z`TestClassCleanup.test_with_errors_in_addClassCleanup_and_setUps.<locals>.TestableTest.setUpClassc                        d  rtdd S NrU   Z	MethodExcr   r(   method_blow_upr"   r	   r
   rU        
z[TestClassCleanup.test_with_errors_in_addClassCleanup_and_setUps.<locals>.TestableTest.setUpc                    r[   rW   r5   r(   r^   r	   r
   r*     r_   zaTestClassCleanup.test_with_errors_in_addClassCleanup_and_setUps.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r     r   zcTestClassCleanup.test_with_errors_in_addClassCleanup_and_setUps.<locals>.TestableTest.tearDownClassNr   r	   r   r   r"   r	   r
   r0     s    r0   r   r4   r   r   )r}   rU   rJ   r   r   TException: ClassExcr}   r   Exception: MethodExc)r}   rU   r   r   r   r   r	   r   r
   .test_with_errors_in_addClassCleanup_and_setUps  sJ   z?TestClassCleanup.test_with_errors_in_addClassCleanup_and_setUpsc                    r   )Nc                       8   e Zd Ze fddZ fddZe fddZdS )zHTestClassCleanup.test_with_errors_in_tearDownClass.<locals>.TestableTestc                    r   r|   r   r   r^   r	   r
   r}     r   zSTestClassCleanup.test_with_errors_in_tearDownClass.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*     r_   zTTestClassCleanup.test_with_errors_in_tearDownClass.<locals>.TestableTest.testNothingc                    r   )Nr   ZTearDownExcr   r   r^   r	   r
   r     r   zVTestClassCleanup.test_with_errors_in_tearDownClass.<locals>.TestableTest.tearDownClassNr   r	   r^   r	   r
   r0         r0   r   r4   r   zException: TearDownExcr   r   r   r	   r^   r
   !test_with_errors_in_tearDownClass  s   z2TestClassCleanup.test_with_errors_in_tearDownClassc                    sN   g G fdddt j G  fdddt j}t| | g d d S )Nc                       s(   e Zd Ze fddZ fddZdS )z8TestClassCleanup.test_run_nested_test.<locals>.InnerTestc                         d |  j d d S )Ninner setupinner cleanupr    rv   r   r^   r	   r
   r}        
zCTestClassCleanup.test_run_nested_test.<locals>.InnerTest.setUpClassc                    r[   )N
inner testr5   r(   r^   r	   r
   rJ     r_   z=TestClassCleanup.test_run_nested_test.<locals>.InnerTest.testNr-   r.   r/   r   r}   rJ   r	   r^   r	   r
   	InnerTest  s    r   c                       s*   e Zd ZefddZ fddZdS )z8TestClassCleanup.test_run_nested_test.<locals>.OuterTestc                    r   )Nouter setupouter cleanupr   r   r^   r	   r
   r}     r   zCTestClassCleanup.test_run_nested_test.<locals>.OuterTest.setUpClassc                    s     d t   d d S )Nstart outer testend outer test)r    r   r(   r   r"   r	   r
   rJ     s   
z=TestClassCleanup.test_run_nested_test.<locals>.OuterTest.testNr   r	   r   r	   r
   	OuterTest  s    r   )r   r   r   r   r   r   r   r   )r)   r   r	   r   r
   test_run_nested_test  s
   
z%TestClassCleanup.test_run_nested_testN)r-   r.   r/   rx   r   r   r   r   r   r   r   r   r   r   r	   r	   r	   r
   rn      s    "4rn   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S ) TestModuleCleanUpc              
      s   g fdd fddG  fdddt }| tjj dtdd	d
fdi fg tj  | ddi fddtdd	d
fg | tjjg  d S )Nc                     r2   ro   r5   r6   module_cleanupsr	   r
   module_cleanup1  r<   zHTestModuleCleanUp.test_add_and_do_ModuleCleanup.<locals>.module_cleanup1c                     r2   rr   r5   r6   r   r	   r
   module_cleanup2  r<   zHTestModuleCleanUp.test_add_and_do_ModuleCleanup.<locals>.module_cleanup2c                       s,   e Zd Zej dddddd e dS )z?TestModuleCleanUp.test_add_and_do_ModuleCleanup.<locals>.Moduler4   r=   r?   r@   rA   rB   Nr-   r.   r/   r   addModuleCleanupr	   )r   r   r	   r
   Module  
    r   rC   r@   rA   rB   r	   rs   r?   )objectrE   r   r   _module_cleanupsrG   doModuleCleanupsr)   r   r	   )r   r   r   r
   test_add_and_do_ModuleCleanup  s    



z/TestModuleCleanUp.test_add_and_do_ModuleCleanupc              	      s   g fdddd  G  fdddt }| tjjdtdd	d
f di fg | t}tj  W d    n1 s@w   Y  | t	|j
d | tjjg  d S )Nc                     r2   ro   r5   r6   r   r	   r
   module_cleanup_good  r<   zcTestModuleCleanUp.test_doModuleCleanup_with_errors_in_addModuleCleanup.<locals>.module_cleanup_goodc                  _   r   )Nr   r   r6   r	   r	   r
   module_cleanup_bad  r   zbTestModuleCleanUp.test_doModuleCleanup_with_errors_in_addModuleCleanup.<locals>.module_cleanup_badc                       s,   e Zd Zejdddddd e  dS )zVTestModuleCleanUp.test_doModuleCleanup_with_errors_in_addModuleCleanup.<locals>.Moduler4   r=   r?   r@   rA   rB   Nr   r	   )r   r   r	   r
   r   
  r   r   rC   r@   rA   rB   r	   r   )r   rE   r   r   r   rG   r   r!   r   r   r   )r)   r   r   r	   )r   r   r   r
   4test_doModuleCleanup_with_errors_in_addModuleCleanup  s    

zFTestModuleCleanUp.test_doModuleCleanup_with_errors_in_addModuleCleanupc                    sJ   g fdd G  fdddt }tj  dddifg d S )Nc                          | |f d S r   r5   r6   r9   r	   r
   r$        zCTestModuleCleanUp.test_addModuleCleanup_arg_errors.<locals>.cleanupc                       s   e Zd Zej dddd e ej dd W d   n1 s$w   Y  e e  W d   dS 1 s>w   Y  dS )zBTestModuleCleanUp.test_addModuleCleanup_arg_errors.<locals>.Moduler4   r=   r@   )functionr   argN)r-   r.   r/   r   r   r   	TypeErrorr	   r$   r)   r	   r
   r     s    
"r   r4   r=   r   r@   )r   r   r   r   rE   r   r	   r$   r:   r)   r
    test_addModuleCleanup_arg_errors  s   
z2TestModuleCleanUp.test_addModuleCleanup_arg_errorsc                    s   d g G  fdddt }G fdddtj}d|_|tjd< t|}| ddg | |jd d	 	 d
 d g d t| | g d | tj
jg  d S )NTc                       .   e Zd Ze fddZefddZdS )z9TestModuleCleanUp.test_run_module_cleanUp.<locals>.Modulec                      s&    d tt  rtdd S )NsetUpModulezsetUpModule Excr    r   r   r$   r!   r	   r   r	   r
   r   *  s
   
zETestModuleCleanUp.test_run_module_cleanUp.<locals>.Module.setUpModulec                      r[   NtearDownModuler5   r	   r^   r	   r
   r   0  r   zHTestModuleCleanUp.test_run_module_cleanUp.<locals>.Module.tearDownModuleNr-   r.   r/   staticmethodr   r   r	   r   r	   r
   r   )  
    r   c                       r   )z?TestModuleCleanUp.test_run_module_cleanUp.<locals>.TestableTestc                    r[   r|   r5   r   r^   r	   r
   r}   5  r   zJTestModuleCleanUp.test_run_module_cleanUp.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*   8  r_   zKTestModuleCleanUp.test_run_module_cleanUp.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r   :  r   zMTestModuleCleanUp.test_run_module_cleanUp.<locals>.TestableTest.tearDownClassNr   r	   r^   r	   r
   r0   4      r0   r   r   r   r4   r   zException: setUpModule ExcFr   r}   rJ   r   r   r   r   r   rD   r.   sysmodulesr   rE   rR   r   r   r   r)   r   r0   rd   r	   r   r
   test_run_module_cleanUp&  s$   

z)TestModuleCleanUp.test_run_module_cleanUpc                    s   d d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}d|_|tjd< d|_|tjd< t|| | g d g d dt|| | g d g d dt|| | g d | tjj	g  d S )NTFc                       r   )zCTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.Module1c                      $    d tt  rt d S Nr   r   r	   r   r	   r
   r   R  r   zOTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.Module1.setUpModulec                      r[   r   r5   r	   r^   r	   r
   r   X  r   zRTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.Module1.tearDownModuleNr   r	   r   r	   r
   Module1Q  r   r   c                       r   )zCTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.Module2c                      r   )NsetUpModule2r   r	   blowUp2r"   r	   r
   r   ]  r   zOTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.Module2.setUpModulec                      r[   )NtearDownModule2r5   r	   r^   r	   r
   r   c  r   zRTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.Module2.tearDownModuleNr   r	   r  r	   r
   Module2\  r   r  c                       r   )zHTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.TestableTestc                    r[   r|   r5   r   r^   r	   r
   r}   h  r   zSTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*   k  r_   zTTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r   m  r   zVTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.TestableTest.tearDownClassNr   r	   r^   r	   r
   r0   g  r   r0   c                       r   )zITestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.TestableTest2c                    r[   )NsetUpClass2r5   r   r^   r	   r
   r}   r  r   zTTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.TestableTest2.setUpClassc                    r[   Ntest2r5   r(   r^   r	   r
   r*   u  r_   zUTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.TestableTest2.testNothingc                    r[   )NtearDownClass2r5   r   r^   r	   r
   r   w  r   zWTestModuleCleanUp.test_run_multiple_module_cleanUp.<locals>.TestableTest2.tearDownClassNr   r	   r^   r	   r
   TestableTest2q  r   r
  )r   r   r  r  r  r	  r  r   )r   r}   rJ   r   r   r   r  r   )r   r}   rJ   r   r   r   r  r  r  r	  r  r   
r   r   rD   r.   r   r   r   rE   r   r   )r)   r   r  r0   r
  r	   )r#   r  r"   r
    test_run_multiple_module_cleanUpM  s4   






z2TestModuleCleanUp.test_run_multiple_module_cleanUpc                    sj   g  G  fdddt }G  fdddtj}d|_|tjd< t| |  g d | tjj	g  d S )Nc                       s   e Zd Ze fddZdS )zJTestModuleCleanUp.test_run_module_cleanUp_without_teardown.<locals>.Modulec                           d tt  d S r   r    r   r   r$   r	   r^   r	   r
   r     r   zVTestModuleCleanUp.test_run_module_cleanUp_without_teardown.<locals>.Module.setUpModuleN)r-   r.   r/   r   r   r	   r^   r	   r
   r     s    r   c                       r   )zPTestModuleCleanUp.test_run_module_cleanUp_without_teardown.<locals>.TestableTestc                    r[   r|   r5   r   r^   r	   r
   r}     r   z[TestModuleCleanUp.test_run_module_cleanUp_without_teardown.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*     r_   z\TestModuleCleanUp.test_run_module_cleanUp_without_teardown.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r     r   z^TestModuleCleanUp.test_run_module_cleanUp_without_teardown.<locals>.TestableTest.tearDownClassNr   r	   r^   r	   r
   r0     r   r0   )r   r}   rJ   r   r   r  )r)   r   r0   r	   r^   r
   (test_run_module_cleanUp_without_teardown  s   

z:TestModuleCleanUp.test_run_module_cleanUp_without_teardownc                    s   g  G  fdddt }G  fdddtj}d|_|tjd< t|}| |jd d 	 d d |  g d	 | tj
jg  d S )
Nc                       ,   e Zd Ze fddZe fddZdS )zQTestModuleCleanUp.test_run_module_cleanUp_when_teardown_exception.<locals>.Modulec                      r  r   r  r	   r^   r	   r
   r     r   z]TestModuleCleanUp.test_run_module_cleanUp_when_teardown_exception.<locals>.Module.setUpModulec                      r   )Nr   r   r   r	   r^   r	   r
   r     r   z`TestModuleCleanUp.test_run_module_cleanUp_when_teardown_exception.<locals>.Module.tearDownModuleNr   r	   r^   r	   r
   r     
    r   c                       r   )zWTestModuleCleanUp.test_run_module_cleanUp_when_teardown_exception.<locals>.TestableTestc                    r[   r|   r5   r   r^   r	   r
   r}     r   zbTestModuleCleanUp.test_run_module_cleanUp_when_teardown_exception.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*     r_   zcTestModuleCleanUp.test_run_module_cleanUp_when_teardown_exception.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r     r   zeTestModuleCleanUp.test_run_module_cleanUp_when_teardown_exception.<locals>.TestableTest.tearDownClassNr   r	   r^   r	   r
   r0     r   r0   r   r4   r   r   r   r   r   r	   r^   r
   /test_run_module_cleanUp_when_teardown_exception  s   


zATestModuleCleanUp.test_run_module_cleanUp_when_teardown_exceptionc                    s   g d G  fdddt }G fdddtj}d|_|tjd< tj|}|  | 	g d | 	tj
jg  g d tj|}| t}|  W d    n1 sZw   Y  | 	t|jd | 	g d	 | 	tj
jg  d S )
NFc                       r   )zDTestModuleCleanUp.test_debug_module_executes_cleanUp.<locals>.Modulec                          d tjt d d S Nr   r   r  r	   r   r	   r
   r     r   zPTestModuleCleanUp.test_debug_module_executes_cleanUp.<locals>.Module.setUpModulec                      r[   r   r5   r	   r^   r	   r
   r     r   zSTestModuleCleanUp.test_debug_module_executes_cleanUp.<locals>.Module.tearDownModuleNr   r	   r   r	   r
   r     
    r   c                       r   )zJTestModuleCleanUp.test_debug_module_executes_cleanUp.<locals>.TestableTestc                    r[   r|   r5   r   r^   r	   r
   r}     r   zUTestModuleCleanUp.test_debug_module_executes_cleanUp.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*     r_   zVTestModuleCleanUp.test_debug_module_executes_cleanUp.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r     r   zXTestModuleCleanUp.test_debug_module_executes_cleanUp.<locals>.TestableTest.tearDownClassNr   r	   r^   r	   r
   r0     r   r0   r   Tr   )r   r}   rJ   r   r   r   )r   r   rD   r.   r   r   r   r   rk   rE   r   r   r   r!   r   r   r)   r   r0   r   r   r	   r   r
   "test_debug_module_executes_cleanUp  s*   	


z4TestModuleCleanUp.test_debug_module_executes_cleanUpc                    sD  g d G  fdddt }G fdddtj}d|_|tjd< tj|}| t	}|
  W d    n1 s<w   Y  | t|jd | g d | tjj tjj  g d tj|}| t	}|
  W d    n1 s}w   Y  | t|jd | g d | tjj tjj  d S )	NFc                       r   )zSTestModuleCleanUp.test_debug_module_cleanUp_when_teardown_exception.<locals>.Modulec                      r  r  r  r	   r   r	   r
   r     r   z_TestModuleCleanUp.test_debug_module_cleanUp_when_teardown_exception.<locals>.Module.setUpModulec                      r   )Nr   TearDownModuleExcr   r	   r^   r	   r
   r     r   zbTestModuleCleanUp.test_debug_module_cleanUp_when_teardown_exception.<locals>.Module.tearDownModuleNr   r	   r   r	   r
   r     r  r   c                       r   )zYTestModuleCleanUp.test_debug_module_cleanUp_when_teardown_exception.<locals>.TestableTestc                    r[   r|   r5   r   r^   r	   r
   r}     r   zdTestModuleCleanUp.test_debug_module_cleanUp_when_teardown_exception.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*     r_   zeTestModuleCleanUp.test_debug_module_cleanUp_when_teardown_exception.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r     r   zgTestModuleCleanUp.test_debug_module_cleanUp_when_teardown_exception.<locals>.TestableTest.tearDownClassNr   r	   r^   r	   r
   r0     r   r0   r  )r   r}   rJ   r   r   T)r   r   rD   r.   r   r   r   r   r   r!   rk   rE   r   r   rH   r   r   r   r  r	   r   r
   1test_debug_module_cleanUp_when_teardown_exception  s0   




zCTestModuleCleanUp.test_debug_module_cleanUp_when_teardown_exceptionc                    s   g fdd G  fdddt j}t |  W d    n1 s(w   Y  t t jj|  d W d    n1 sFw   Y  t| dddd	fg d S )
Nc                     r   r   r5   r6   r9   r	   r
   r$   )  r   zBTestModuleCleanUp.test_addClassCleanup_arg_errors.<locals>.cleanupc                       s&   e Zd Ze fddZdd ZdS )zGTestModuleCleanUp.test_addClassCleanup_arg_errors.<locals>.TestableTestc                    R   | j  ddddd t | j  dd W d    d S 1 s"w   Y  d S )Nr4   r=   r?   rs   r   r   r@   r   )rv   r   r   r   r   r	   r
   r}   -  s   "zRTestModuleCleanUp.test_addClassCleanup_arg_errors.<locals>.TestableTest.setUpClassc                 S   r'   r   r	   r(   r	   r	   r
   r*   2  r+   zSTestModuleCleanUp.test_addClassCleanup_arg_errors.<locals>.TestableTest.testNothingN)r-   r.   r/   r   r}   r*   r	   r   r	   r
   r0   ,  s    r0   )r   r   r   r?   rs   r  )r   rD   r   r   rv   rF   r   rE   rl   r	   r   r
   test_addClassCleanup_arg_errors'  s   	
z1TestModuleCleanUp.test_addClassCleanup_arg_errorsc                    s   g fdd G  fdddt j}t |   W d    n1 s)w   Y  t t jj|  d W d    n1 sGw   Y  t| dddd	fg d S )
Nc                     r   r   r5   r6   r9   r	   r
   r$   ?  r   z=TestModuleCleanUp.test_addCleanup_arg_errors.<locals>.cleanupc                       s"   e Zd Z fddZdd ZdS )zBTestModuleCleanUp.test_addCleanup_arg_errors.<locals>.TestableTestc                    r  )Nr4   r=   r?   rs   r   r)   r@   r   )rF   r   r   )Zself2r   r	   r
   rU   C  s   "zHTestModuleCleanUp.test_addCleanup_arg_errors.<locals>.TestableTest.setUpc                 S   r'   r   r	   r(   r	   r	   r
   r*   G  r+   zNTestModuleCleanUp.test_addCleanup_arg_errors.<locals>.TestableTest.testNothingN)r-   r.   r/   rU   r*   r	   r   r	   r
   r0   B  s    r0   )r)   r   r   r?   rs   r  )r   rD   r   r   rF   r   rE   rl   r	   r   r
   test_addCleanup_arg_errors=  s   z,TestModuleCleanUp.test_addCleanup_arg_errorsc                    x   g  G  fdddt }G  fdddtj}d|_|tjd< t|}| |jd d 	 d d |  g d	 d S )
Nc                       r  )zETestModuleCleanUp.test_with_errors_in_addClassCleanup.<locals>.Modulec                      r  r   r  r	   r^   r	   r
   r   V  r   zQTestModuleCleanUp.test_with_errors_in_addClassCleanup.<locals>.Module.setUpModulec                      r[   r   r5   r	   r^   r	   r
   r   Z  r   zTTestModuleCleanUp.test_with_errors_in_addClassCleanup.<locals>.Module.tearDownModuleNr   r	   r^   r	   r
   r   U  r  r   c                       r   )zKTestModuleCleanUp.test_with_errors_in_addClassCleanup.<locals>.TestableTestc                    r   r   r   r   r^   r	   r
   r}   _  r   zVTestModuleCleanUp.test_with_errors_in_addClassCleanup.<locals>.TestableTest.setUpClassc                    r[   rW   r5   r(   r^   r	   r
   r*   c  r_   zWTestModuleCleanUp.test_with_errors_in_addClassCleanup.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r   e  r   zYTestModuleCleanUp.test_with_errors_in_addClassCleanup.<locals>.TestableTest.tearDownClassNr   r	   r^   r	   r
   r0   ^  r   r0   r   r4   r   r   )r   r}   rJ   r   r   r   r   
r   r   rD   r.   r   r   r   rE   rR   r   r   r	   r^   r
   #test_with_errors_in_addClassCleanupR  s   	
z5TestModuleCleanUp.test_with_errors_in_addClassCleanupc                    r  )
Nc                       r  )z@TestModuleCleanUp.test_with_errors_in_addCleanup.<locals>.Modulec                      r  r   r  r	   r^   r	   r
   r   v  r   zLTestModuleCleanUp.test_with_errors_in_addCleanup.<locals>.Module.setUpModulec                      r[   r   r5   r	   r^   r	   r
   r   z  r   zOTestModuleCleanUp.test_with_errors_in_addCleanup.<locals>.Module.tearDownModuleNr   r	   r^   r	   r
   r   u  r  r   c                       s0   e Zd Z fddZ fddZ fddZdS )zFTestModuleCleanUp.test_with_errors_in_addCleanup.<locals>.TestableTestc                    r   r   r   r(   r^   r	   r
   rU     r   zLTestModuleCleanUp.test_with_errors_in_addCleanup.<locals>.TestableTest.setUpc                    r[   rW   r5   r(   r^   r	   r
   r*     r_   zRTestModuleCleanUp.test_with_errors_in_addCleanup.<locals>.TestableTest.testNothingc                    r[   r\   r5   r(   r^   r	   r
   r]     r_   zOTestModuleCleanUp.test_with_errors_in_addCleanup.<locals>.TestableTest.tearDownNr`   r	   r^   r	   r
   r0   ~  s    r0   r   r4   r   r   )r   rU   rJ   r]   r   r   r   r   r   r	   r^   r
   test_with_errors_in_addCleanups  s   		
z0TestModuleCleanUp.test_with_errors_in_addCleanupc                    s  g dd dG fdddt }G  fdddtj}d|_|tjd< t|}| |jd d 	 d d	 | g d
 g dd dt|}| |jd d 	 d d | |jd d 	 d d	 | ddg g dd dt|}| |jd d 	 d d | |jd d 	 d d	 | g d g dd dt|}| |jd d 	 d d | |jd d 	 d d	 | g d d S )NFc                       r   )zQTestModuleCleanUp.test_with_errors_in_addModuleCleanup_and_setUps.<locals>.Modulec                      s*    d tjtdd  rtdd S )Nr   Tr   Z	ModuleExcr   r	   module_blow_upr"   r	   r
   r     r   z]TestModuleCleanUp.test_with_errors_in_addModuleCleanup_and_setUps.<locals>.Module.setUpModulec                      r[   r   r5   r	   r^   r	   r
   r     r   z`TestModuleCleanUp.test_with_errors_in_addModuleCleanup_and_setUps.<locals>.Module.tearDownModuleNr   r	   r#  r	   r
   r     r   r   c                       r   )
zWTestModuleCleanUp.test_with_errors_in_addModuleCleanup_and_setUps.<locals>.TestableTestc                    r   )Nr}   r   r   r   r   r	   r
   r}     s   
zbTestModuleCleanUp.test_with_errors_in_addModuleCleanup_and_setUps.<locals>.TestableTest.setUpClassc                    r   r   r   r(   r   r	   r
   rU     r   z]TestModuleCleanUp.test_with_errors_in_addModuleCleanup_and_setUps.<locals>.TestableTest.setUpc                    r[   rW   r5   r(   r^   r	   r
   r*     r_   zcTestModuleCleanUp.test_with_errors_in_addModuleCleanup_and_setUps.<locals>.TestableTest.testNothingc                    r[   r   r5   r   r^   r	   r
   r     r   zeTestModuleCleanUp.test_with_errors_in_addModuleCleanup_and_setUps.<locals>.TestableTest.tearDownClassNr   r	   r   r	   r
   r0     s    r0   r   r4   r   r   )r   r}   rU   rJ   r   r   r   TzException: ModuleExcr   r   r   )r   r}   r   r   r   )r   r}   rU   r   r   r   r   r   r	   )r   r   r$  r"   r
   /test_with_errors_in_addModuleCleanup_and_setUps  sf   
zATestModuleCleanUp.test_with_errors_in_addModuleCleanup_and_setUpsc                    s   g fdd fddfddG  fdddt }G fd	d
d
tj}G fdddtj}d|_d|_|tjd< t|| | g d d S )Nc                      r[   ra   r5   r	   r^   r	   r
   r;     r_   zMTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.cleanup1c                      r[   rb   r5   r	   r^   r	   r
   r>     r_   zMTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.cleanup2c                      r[   rc   r5   r	   r^   r	   r
   rY     r_   zMTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.cleanup3c                       r   )zKTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.Modulec                      s    d t  d S r   )r    r   r   r	   rh   r	   r
   r     s   
zWTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.Module.setUpModulec                      r[   r   r5   r	   r^   r	   r
   r     r   zZTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.Module.tearDownModuleNr   r	   rh   r	   r
   r     r  r   c                       2   e Zd Z fddZfddZfddZdS )zQTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.TestableTestc                    rf   rg   rX   r(   r>   r"   r	   r
   rU     rZ   zWTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.TestableTest.setUpc                    r[   rW   r5   r(   r^   r	   r
   r*     r_   z]TestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.TestableTest.testNothingc                    r[   r\   r5   r(   r^   r	   r
   r]     r_   zZTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.TestableTest.tearDownNr`   r	   r'  r	   r
   r0         r0   c                       r&  )zVTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.OtherTestableTestc                    rf   )NsetUp2rX   r(   ri   r	   r
   rU     rZ   z\TestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.OtherTestableTest.setUpc                    r[   r  r5   r(   r^   r	   r
   r*     r_   zbTestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.OtherTestableTest.testNothingc                    r[   )N	tearDown2r5   r(   r^   r	   r
   r]     r_   z_TestModuleCleanUp.test_module_cleanUp_with_multiple_classes.<locals>.OtherTestableTest.tearDownNr`   r	   ri   r	   r
   OtherTestableTest  r(  r+  )r   rU   rJ   r]   r>   r)  r  r*  rY   r   r;   )r   r   rD   r.   r   r   r   rE   )r)   r   r0   r+  r	   )r;   r>   rY   r"   r
   )test_module_cleanUp_with_multiple_classes  s   			

z;TestModuleCleanUp.test_module_cleanUp_with_multiple_classesN)r-   r.   r/   r   r   r   r   r  r  r  r  r  r  r  r!  r"  r%  r,  r	   r	   r	   r
   r     s     'K )-!Or   c                   @   s   e Zd 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S )Test_TextTestRunnerzTests for TextTestRunner.c                 C   s$   t jd| _| jrt jd= d S d S NZPYTHONWARNINGS)osenvirongetpythonwarningsr(   r	   r	   r
   rU     s   zTest_TextTestRunner.setUpc                 C   s   | j r| j tjd< d S d S r.  )r2  r/  r0  r(   r	   r	   r
   r]     s   zTest_TextTestRunner.tearDownc                 C   sh   t  }| |j | |j | |jd | |jd  | |j	 | |j
t j | |j d S r3   )r   r   rO   failfastbufferrE   	verbositywarningsrH   descriptionsr   TextTestResult	tb_localsr)   r   r	   r	   r
   	test_init  s   zTest_TextTestRunner.test_initc                    s:   G  fdddt j G dd dt j }|d d d d S )Nc                       s   e Zd Z fddZ  ZS )z>Test_TextTestRunner.test_multiple_inheritance.<locals>.AResultc                    s   t  | ||| d S r   )super__init__)r)   r   r7  r5  )AResult	__class__r	   r
   r=  +     zGTest_TextTestRunner.test_multiple_inheritance.<locals>.AResult.__init__)r-   r.   r/   r=  __classcell__r	   r>  r?  r
   r>  *  s    r>  c                   @   s   e Zd ZdS )zBTest_TextTestRunner.test_multiple_inheritance.<locals>.ATextResultN)r-   r.   r/   r	   r	   r	   r
   ATextResult.  s    rD  r4   )r   r   r8  )r)   rD  r	   rB  r
   test_multiple_inheritance)  s   z-Test_TextTestRunner.test_multiple_inheritancec                    sf   G dd dt j}t   t jt ddd} fdd|_||d |  j	 |  j
 d S )Nc                   @   r&   )z7Test_TextTestRunner.testBufferAndFailfast.<locals>.Testc                 S   r'   r   r	   r(   r	   r	   r
   testFoo7  r+   z?Test_TextTestRunner.testBufferAndFailfast.<locals>.Test.testFooNr-   r.   r/   rF  r	   r	   r	   r
   Test6  r1   rH  T)r   r3  r4  c                          S r   r	   r	   rd   r	   r
   <lambda>=      z;Test_TextTestRunner.testBufferAndFailfast.<locals>.<lambda>rF  )r   rD   r   r   r   r   _makeResultr   rH   r3  r4  )r)   rH  r   r	   rJ  r
   testBufferAndFailfast5  s   z)Test_TextTestRunner.testBufferAndFailfastc                 C   s2   t jt dd}|t  }| d|j d S )NT)r   r9  )r   r   r   r   r   r   rE   r9  )r)   r   rd   r	   r	   r
   test_localsC  s   zTest_TextTestRunner.test_localsc                    s   G dd dt j}t jj  fdd}| t  t jt d}fdd|_	d_
fd	d
}|t j_|t   j
d d S )Nc                   @   r&   )z;Test_TextTestRunner.testRunnerRegistersResult.<locals>.Testc                 S   r'   r   r	   r(   r	   r	   r
   rF  J  r+   zCTest_TextTestRunner.testRunnerRegistersResult.<locals>.Test.testFooNrG  r	   r	   r	   r
   rH  I  r1   rH  c                      s    t j_d S r   )r   r   registerResultr	   )originalRegisterResultr	   r
   r$   M  s   z>Test_TextTestRunner.testRunnerRegistersResult.<locals>.cleanup)r   c                      rI  r   r	   r	   rJ  r	   r
   rK  T  rL  z?Test_TextTestRunner.testRunnerRegistersResult.<locals>.<lambda>r   c                    s    j d7  _ |   d S r3   )wasRegisteredrE   )Z
thisResult)rd   r)   r	   r
   fakeRegisterResultW  s   zITest_TextTestRunner.testRunnerRegistersResult.<locals>.fakeRegisterResultr4   )r   rD   r   rP  rF   r   r   r   r   rM  rR  r   r   rE   )r)   rH  r$   r   rS  r	   )rQ  rd   r)   r
   testRunnerRegistersResultH  s   
z-Test_TextTestRunner.testRunnerRegistersResultc                    s@   G dd dt  G  fdddtj }|t  d S )Nc                   @      e Zd ZdZdd ZdS )zbTest_TextTestRunner.test_works_with_result_without_startTestRun_stopTestRun.<locals>.OldTextResult c                 S   r'   r   r	   r(   r	   r	   r
   printErrorsb  r+   znTest_TextTestRunner.test_works_with_result_without_startTestRun_stopTestRun.<locals>.OldTextResult.printErrorsNr-   r.   r/   Z
separator2rW  r	   r	   r	   r
   OldTextResult`      rY  c                       s*   e Zd Z fddZfddZ  ZS )z[Test_TextTestRunner.test_works_with_result_without_startTestRun_stopTestRun.<locals>.Runnerc                    s   t  | t  d S r   )r<  r=  r   r   r(   )Runnerr?  r	   r
   r=  f  r@  zdTest_TextTestRunner.test_works_with_result_without_startTestRun_stopTestRun.<locals>.Runner.__init__c                    s     S r   r	   r(   )rY  r	   r
   rM  i  s   zgTest_TextTestRunner.test_works_with_result_without_startTestRun_stopTestRun.<locals>.Runner._makeResultr-   r.   r/   r=  rM  rA  r	   rY  r[  rC  r
   r[  e  s    r[  )r   r   r   r   r   r:  r	   r]  r
   7test_works_with_result_without_startTestRun_stopTestRun_  s   zKTest_TextTestRunner.test_works_with_result_without_startTestRun_stopTestRunc                    sZ   G dd dt G  fdddtj g } |}|t  ddg}| || d S )Nc                   @   rU  )zSTest_TextTestRunner.test_startTestRun_stopTestRun_called.<locals>.LoggingTextResultrV  c                 S   r'   r   r	   r(   r	   r	   r
   rW  r  r+   z_Test_TextTestRunner.test_startTestRun_stopTestRun_called.<locals>.LoggingTextResult.printErrorsNrX  r	   r	   r	   r
   LoggingTextResultp  rZ  r_  c                       s*   e Zd Z fddZfddZ  ZS )zOTest_TextTestRunner.test_startTestRun_stopTestRun_called.<locals>.LoggingRunnerc                    s   t  | t  || _d S r   )r<  r=  r   r   _events)r)   events)LoggingRunnerr?  r	   r
   r=  v  s   
zXTest_TextTestRunner.test_startTestRun_stopTestRun_called.<locals>.LoggingRunner.__init__c                    s
    | j S r   )r`  r(   )r_  r	   r
   rM  z  s   
z[Test_TextTestRunner.test_startTestRun_stopTestRun_called.<locals>.LoggingRunner._makeResultr\  r	   rb  r_  rC  r
   rb  u  s    rb  ZstartTestRunZstopTestRun)r   r   r   r   r   rE   )r)   ra  r   Zexpectedr	   rc  r
   $test_startTestRun_stopTestRun_calledo  s   z8Test_TextTestRunner.test_startTestRun_stopTestRun_calledc                 C   sZ   t d}t|}tdtjd D ]}t||}t|}| 	|j
 |  qd S )NrL   r=   r4   )r   r   r   r   rangepickleHIGHEST_PROTOCOLdumpsloadsrE   r   getvalue)r)   r   r   protocolsobjr	   r	   r
   test_pickle_unpickle  s   


z(Test_TextTestRunner.test_pickle_unpicklec                 C   sZ   dd }t  }t  }t  }tj||||d}| |j| |j||f}| | | d S )Nc                  W   s   | S r   r	   )r7   r	   r	   r
   MockResultClass  r+   z=Test_TextTestRunner.test_resultclass.<locals>.MockResultClass)r   )r   r   r   rE   r   r   rM  )r)   ro  ZSTREAMZDESCRIPTIONSZ	VERBOSITYr   Zexpectedresultr	   r	   r
   test_resultclass  s   
z$Test_TextTestRunner.test_resultclassc              	   C   s   dd }t tjtjtjtd}d}d}tjtj	ddgfi |}| ||\}}W d   n1 s5w   Y  | 
d	| | t|d
 dD ]}| ||d qJ||dfD ]}| ||d q[tj	ddgtj	dddgtj	ddgf}	|	D ]1}
tj|
fi |}| ||\}}W d   n1 sw   Y  | 
d	| | t|d q{tjtj	ddgfi |}| ||\}}W d   n1 sw   Y  | 
d	| | t|d dD ]}| ||d q||fD ]}| ||d qdS )zx
        Check that warnings argument of TextTestRunner correctly affects the
        behavior of the warnings.
        c                 S   s   dd |   D S )Nc                 S   s   g | ]}|  qS r	   )r   ).0br	   r	   r
   
<listcomp>  s    zPTest_TextTestRunner.test_warnings.<locals>.get_parse_out_err.<locals>.<listcomp>)communicate)pr	   r	   r
   get_parse_out_err  r   z<Test_TextTestRunner.test_warnings.<locals>.get_parse_out_err)stdoutstderrcwds   Please use assertEqual instead.s   Please use assertTrue instead.z-Ez_test_warnings.pyNs   OK   )   dw   iw   uwr?      rwr4   ignorez-Waz-Wir   always   )r{  r|  r}  r~  )rG   
subprocessPIPEr/  pathdirname__file__Popenr   
executableZassertInrE   lencount)r)   rv  ZoptsZae_msgZat_msgru  outerrmsgZ	args_listr7   r	   r	   r
   test_warnings  sP   



	z!Test_TextTestRunner.test_warningsc                 C   sD   t j}t }|t _zt }| |jj|u  W |t _d S |t _w r   )r   rx  r   r   r   r   rH   r   )r)   Z
old_stderrfr   r	   r	   r
   %testStdErrLookedUpAtInstantiationTime  s   z9Test_TextTestRunner.testStdErrLookedUpAtInstantiationTimec                 C   s(   t  }t|}| |jj|u  d S r   )r   r   r   r   rH   r   )r)   r  r   r	   r	   r
   testSpecifiedStreamUsed  s   
z+Test_TextTestRunner.testSpecifiedStreamUsedN)r-   r.   r/   __doc__rU   r]   r;  rE  rN  rO  rT  r^  rd  rn  rp  r  r  r  r	   r	   r	   r
   r-    s     
9r-  __main__)F)r   r/  r   rf  r  r   Zunittest.caser   Zunittest.test.supportr   r   r   r   r   r$   rD   r%   rn   r   r-  r-   mainr	   r	   r	   r
   <module>   s6    
   5    , W