
    daf                        d dl Z d dlZd dlZd dlmZmZ d dlZd dlZd dlmZ d dl	m
Z
 d dlmZ  G d de      Zd Zd	 Zd
 Z G d dej$                        Z G d dej$                        Z eej,                  j.                        ZdD ]  Zee=  ddZeed<    edefe      Z G d dej$                        Z G d dej$                        Zedk(  r ej@                          yy)    N)warnings_helpercaptured_stdout)mock)strclass)BufferedWriterc                        e Zd Z G d d      Zy)MockTracebackc                       e Zd Zd Zd Zy) MockTraceback.TracebackExceptionc                 2    |j                  dd      | _        y )Ncapture_localsF)getr   )selfargskwargss      9/root/Python-3.12.4/Lib/test/test_unittest/test_result.py__init__z)MockTraceback.TracebackException.__init__   s    "(**-=u"ED    c                 F    dg}| j                   r|j                  d       |S )NA tracebacklocals)r   appendr   results     r   formatz'MockTraceback.TracebackException.format   s#    #_F""h'Mr   N)__name__
__module____qualname__r   r    r   r   TracebackExceptionr      s    	F	r   r    N)r   r   r   r    r   r   r   r	   r	      s     r   r	   c                  6    t         t        j                  _         y N)	tracebackunittestr   r   r   r   restore_tracebackr%      s     )HOOr   c                  .    t        d       t        d      )Nzdo cleanup1zbad cleanup1)print	TypeErrorr   r   r   bad_cleanup1r)      s    	-
N
##r   c                  .    t        d       t        d      )Nzdo cleanup2zbad cleanup2)r'   
ValueErrorr   r   r   bad_cleanup2r,   !   s    	-
^
$$r   c                   r    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)Test_TestResultc                    t        j                         }| j                  |j                                | j	                  t        |j                        d       | j	                  t        |j                        d       | j	                  |j                  d       | j	                  |j                  d       | j                  |j                         | j                  |j                         y Nr   F)r$   
TestResult
assertTruewasSuccessfulassertEquallenerrorsfailurestestsRun
shouldStopassertIsNone_stdout_buffer_stderr_bufferr   s     r   	test_initzTest_TestResult.test_init0   s    $$&,,./V]]+Q/V__-q1!,**E2&//0&//0r   c                     t        j                         }|j                          | j                  |j                  d       y NT)r$   r1   stopr4   r9   r   s     r   	test_stopzTest_TestResult.test_stop>   s/    $$&**D1r   c                     G d dt         j                        } |d      }t        j                         }|j                  |       | j	                  |j                                | j                  t        |j                        d       | j                  t        |j                        d       | j                  |j                  d       | j                  |j                  d       |j                  |       y )Nc                       e Zd Zd Zy)+Test_TestResult.test_startTest.<locals>.Fooc                      y r"   r   r   s    r   test_1z2Test_TestResult.test_startTest.<locals>.Foo.test_1I       r   Nr   r   r   rG   r   r   r   FoorD   H       r   rJ   rG   r      Fr$   TestCaser1   	startTestr2   r3   r4   r5   r6   r7   r8   r9   stopTestr   rJ   testr   s       r   test_startTestzTest_TestResult.test_startTestG   s    	(## 	 8}$$&,,./V]]+Q/V__-q1!,**E2r   c                 6    G d dt         j                        } |d      }t        j                         }|j                  |       | j	                  |j                                | j                  t        |j                        d       | j                  t        |j                        d       | j                  |j                  d       | j                  |j                  d       |j                  |       | j	                  |j                                | j                  t        |j                        d       | j                  t        |j                        d       | j                  |j                  d       | j                  |j                  d       y )Nc                       e Zd Zd Zy)*Test_TestResult.test_stopTest.<locals>.Fooc                      y r"   r   rF   s    r   rG   z1Test_TestResult.test_stopTest.<locals>.Foo.test_1^   rH   r   NrI   r   r   r   rJ   rV   ]   rK   r   rJ   rG   r   rL   FrM   rQ   s       r   test_stopTestzTest_TestResult.test_stopTest\   s+   	(## 	 8}$$&,,./V]]+Q/V__-q1!,**E2 	,,./V]]+Q/V__-q1!,**E2r   c                 l    t        j                         }|j                          |j                          y r"   )r$   r1   startTestRunstopTestRunr   s     r   test_startTestRun_stopTestRunz-Test_TestResult.test_startTestRun_stopTestRunw   s(    $$&r   c                     G d dt         j                        } |d      }t        j                         }|j                  |       |j	                  |       |j                  |       | j                  |j                                | j                  t        |j                        d       | j                  t        |j                        d       | j                  |j                  d       | j                  |j                  d       y )Nc                       e Zd Zd Zy),Test_TestResult.test_addSuccess.<locals>.Fooc                      y r"   r   rF   s    r   rG   z3Test_TestResult.test_addSuccess.<locals>.Foo.test_1   rH   r   NrI   r   r   r   rJ   r_      rK   r   rJ   rG   r   rL   F)r$   rN   r1   rO   
addSuccessrP   r2   r3   r4   r5   r6   r7   r8   r9   rQ   s       r   test_addSuccesszTest_TestResult.test_addSuccess   s    	(## 	 8}$$&$,,./V]]+Q/V__-q1!,**E2r   c                     G d dt         j                        } |d      }	 |j                  d       t        j
                         }|j                  |       |j                  |       |j                  |       | j                  |j                                | j                  t        |j                        d       | j                  t        |j                        d       | j                  |j                  d       | j                  |j                   d       |j                  d   \  }}| j#                  ||       | j%                  |t&               y #  t        j                         }Y =xY w)Nc                       e Zd Zd Zy),Test_TestResult.test_addFailure.<locals>.Fooc                      y r"   r   rF   s    r   rG   z3Test_TestResult.test_addFailure.<locals>.Foo.test_1   rH   r   NrI   r   r   r   rJ   re      rK   r   rJ   rG   foor   rL   F)r$   rN   failsysexc_infor1   rO   
addFailurerP   assertFalser3   r4   r5   r6   r7   r8   r9   assertIsassertIsInstancestrr   rJ   rR   exc_info_tupler   	test_caseformatted_excs          r   test_addFailurezTest_TestResult.test_addFailure   s    	(## 	 8}	,IIe $$&$/--/0V]]+Q/V__-q1!,**E2#)??1#5 	=i&mS1#	, \\^Ns   E E1c                   	  G d dt         j                        } |d      		fd} |       }t        j                  | }t        j                         }|j                  	       |j                  	|       |j                  	       |j                  d   d   }|D cg c]	  }||vs| }}| j                  t        |      d       | j                  d|d          y c c}w )Nc                       e Zd Zd Zy)DTest_TestResult.test_addFailure_filter_traceback_frames.<locals>.Fooc                      y r"   r   rF   s    r   rG   zKTest_TestResult.test_addFailure_filter_traceback_frames.<locals>.Foo.test_1   rH   r   NrI   r   r   r   rJ   rw      rK   r   rJ   rG   c                  `    	  j                  d       y #  t        j                         cY S xY w)Nrg   )rh   ri   rj   rR   s   r   get_exc_infozMTest_TestResult.test_addFailure_filter_traceback_frames.<locals>.get_exc_info   s'    &		% &||~%s    -r   rL    raise self.failureException(msg)r$   rN   r#   format_exceptionr1   rO   rk   rP   r7   r4   r5   assertIn
r   rJ   r{   rq   full_excr   rs   ldroppedrR   s
            @r   'test_addFailure_filter_traceback_framesz7Test_TestResult.test_addFailure_filter_traceback_frames   s    	(## 	 8}	& &--~>$$&$/*1-&A!=*@1AAWq)8'!*E B   	C )C c                   	  G d dt         j                        } |d      		fd} |       }t        j                  | }t        j                         }|j                  	       |j                  	|       |j                  	       |j                  d   d   }|D cg c]	  }||vs| }}| j                  t        |      d       | j                  d|d          y c c}w )Nc                       e Zd Zd Zy)LTest_TestResult.test_addFailure_filter_traceback_frames_context.<locals>.Fooc                      y r"   r   rF   s    r   rG   zSTest_TestResult.test_addFailure_filter_traceback_frames_context.<locals>.Foo.test_1   rH   r   NrI   r   r   r   rJ   r      rK   r   rJ   rG   c                      	 	  j                  d       y #  t        d      xY w#  t        j                         cY S xY w)Nrg   *   )rh   r+   ri   rj   rz   s   r   r{   zUTest_TestResult.test_addFailure_filter_traceback_frames_context.<locals>.get_exc_info   s<    &)IIe$)$R.(&||~%s    #& >r   rL   r|   r}   r   s
            @r   /test_addFailure_filter_traceback_frames_contextz?Test_TestResult.test_addFailure_filter_traceback_frames_context   s    	(## 	 8}	& &--~>$$&$/*1-&A!=*@1AAWq)8'!*E Br   c                 P    G d dt         j                        }d } |       } |d      }t        j                         }|j                  |       |j	                  ||       |j                  |       |j                  d   d   }| j                  |j                  d      d       y )Nc                       e Zd Zd Zy)`Test_TestResult.test_addFailure_filter_traceback_frames_chained_exception_self_loop.<locals>.Fooc                      y r"   r   rF   s    r   rG   zgTest_TestResult.test_addFailure_filter_traceback_frames_chained_exception_self_loop.<locals>.Foo.test_1
  rH   r   NrI   r   r   r   rJ   r   	  rK   r   rJ   c                  p    	 t        d      } | | _        | | _        | #  t        j                         cY S xY w)NLoop	Exception	__cause____context__ri   rj   )loops    r   r{   ziTest_TestResult.test_addFailure_filter_traceback_frames_chained_exception_self_loop.<locals>.get_exc_info  s8    & (!%#' 
&||~%s    5rG   r   rL   zException: Loop
	r$   rN   r1   rO   rk   rP   r7   r4   countr   rJ   r{   rq   rR   r   rs   s          r   Ctest_addFailure_filter_traceback_frames_chained_exception_self_loopzSTest_TestResult.test_addFailure_filter_traceback_frames_chained_exception_self_loop  s    	(## 		& &8}$$&$/*1-,,-@A1Er   c                     G d dt         j                        }d } |       } |d      }t        j                         }|j                  |       |j	                  ||       |j                  |       |j                  d   d   }| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d	      d       y )
Nc                       e Zd Zd Zy)\Test_TestResult.test_addFailure_filter_traceback_frames_chained_exception_cycle.<locals>.Fooc                      y r"   r   rF   s    r   rG   zcTest_TestResult.test_addFailure_filter_traceback_frames_chained_exception_cycle.<locals>.Foo.test_1#  rH   r   NrI   r   r   r   rJ   r   "  rK   r   rJ   c                      	 t        d      t        d      t        d      }}} ||f|| f| |fg}|D ]  \  }}||_        ||_         |#  t        j                         cY S xY w)NABCr   )r   r   r   edgesex1ex2s         r   r{   zeTest_TestResult.test_addFailure_filter_traceback_frames_chained_exception_cycle.<locals>.get_exc_info&  su    
& $C.)C.)C.a1Q!Q!Q0 % *HC$'CM&)CO* &||~%s   AA A rG   r   rL   zException: A
zException: B
zException: C
r   r   s          r   ?test_addFailure_filter_traceback_frames_chained_exception_cyclezOTest_TestResult.test_addFailure_filter_traceback_frames_chained_exception_cycle!  s    	(## 		& &8}$$&$/*1-,,-=>B,,-=>B,,-=>Br   c                     G d dt         j                        } |d      }	 t               #  t        j                         }Y nxY wt        j
                         }|j                  |       |j                  ||       |j                  |       | j                  |j                                | j                  t        |j                        d       | j                  t        |j                        d       | j                  |j                  d       | j                  |j                   d       |j                  d   \  }}| j#                  ||       | j%                  |t&               y )Nc                       e Zd Zd Zy)*Test_TestResult.test_addError.<locals>.Fooc                      y r"   r   rF   s    r   rG   z1Test_TestResult.test_addError.<locals>.Foo.test_1W  rH   r   NrI   r   r   r   rJ   r   V  rK   r   rJ   rG   rL   r   F)r$   rN   r(   ri   rj   r1   rO   addErrorrP   rl   r3   r4   r5   r6   r7   r8   r9   rm   rn   ro   rp   s          r   test_addErrorzTest_TestResult.test_addErrorU  s   	(## 	 8}	,+	, \\^N$$&n---/0V]]+Q/V__-q1!,**E2#)==#3 	=i&mS1s	   
- Ac                     G d dt         j                        } |d      }t        j                         }d|_        t        t         j
                  _        | j                  t               |j                          |j                  |       |j                          | j                  t        |j                        d       |j                  d   \  }}| j                  d|       y )Nc                       e Zd Zd Zy)1Test_TestResult.test_addError_locals.<locals>.Fooc                     ddz   y )NrL   r   r   rF   s    r   rG   z8Test_TestResult.test_addError_locals.<locals>.Foo.test_1r  s	    !r   NrI   r   r   r   rJ   r   q  s    r   rJ   rG   TrL   r   zA tracebacklocals)r$   rN   r1   	tb_localsr	   r   r#   
addCleanupr%   rZ   runr[   r4   r5   r6   )r   rJ   rR   r   rr   rs   s         r   test_addError_localsz$Test_TestResult.test_addError_localsp  s    	(## 	 8}$$&$1!)*V]]+Q/#)==#3 	=,m<r   c                     G fddt         j                        }d  |d      t        j                         j                         | j	                  j                                | j                  t        j                        d       | j                  t        j                        d       | j                  j                  d       | j                  j                  d       j                  d   \  }}| j                  |       | j                  d|       j                  d   \  }}| j                  |       | j                  d|       y )	Nc                       e Zd Z fdZy),Test_TestResult.test_addSubTest.<locals>.Fooc                    | j                  d      5  | j                  	 ddz   j                         | j                  d       d d d        y # t        $ r t        j                         }Y Lw xY w# 1 sw Y   y xY w)NrL   rg   r   some recognizable failure)subTest_subtestZeroDivisionErrorri   rj   
addSubTestrh   )r   rq   r   subtestrR   s     r   rG   z3Test_TestResult.test_addSubTest.<locals>.Foo.test_1  s}    \\a\( 	;"mmG8! %%dG^DII9:	; 	; - 8),8		; 	;s-   A7A$A7A41A73A44A77B NrI   )r   r   rR   s   r   rJ   r     s    ;r   rJ   rG   rL   Fr   r   r   )r$   rN   r1   r   rl   r3   r4   r5   r6   r7   r8   r9   rm   r   )r   rJ   rr   rs   r   r   rR   s       @@@r   test_addSubTestzTest_TestResult.test_addSubTest  s   	; 	;(## 	; 8}$$&--/0V]]+Q/V__-q1!,**E2#)==#3 	=i))=9#)??1#5 	=i)1=Ar   c                      G d dt               }t        j                         }| j                  |j	                  |             d|j
                  j                  d<   | j                  |j	                  |             y )Nc                   "    e Zd Z G d de      Zy)5Test_TestResult.testStackFrameTrimming.<locals>.Framec                       e Zd Zi Zy)>Test_TestResult.testStackFrameTrimming.<locals>.Frame.tb_frameN)r   r   r   	f_globalsr   r   r   tb_framer     s    	r   r   N)r   r   r   objectr   r   r   r   Framer     s    6 r   r   T
__unittest)r   r$   r1   rl   _is_relevant_tb_levelr   r   r2   )r   r   r   s      r   testStackFrameTrimmingz&Test_TestResult.testStackFrameTrimming  sb    	F 	 $$&55e<=15  .44U;<r   c                    t        j                         }d |_        d|_        |j	                  d d        | j                  |j                         t        j                         }d |_        d|_        |j                  d d        | j                  |j                         t        j                         }d |_        d|_        |j                  d        | j                  |j                         y )Nc                       yN r   _s    r   <lambda>z.Test_TestResult.testFailFast.<locals>.<lambda>      r   Tc                       yr   r   r   s    r   r   z.Test_TestResult.testFailFast.<locals>.<lambda>  r   r   c                       yr   r   r   s    r   r   z.Test_TestResult.testFailFast.<locals>.<lambda>  r   r   )	r$   r1   _exc_info_to_stringfailfastr   r2   r9   rk   addUnexpectedSuccessr   s     r   testFailFastzTest_TestResult.testFailFast  s    $$&%2"d#))*$$&%2"$%))*$$&%2"##D)))*r   c                      t               }t        j                  |d      } fd}|j                  |      }|j	                           j                  |j                         j                  d             y )NT)streamr   c                 f    | xj                   dz  c_         j                  | j                         y )NrL   )r8   r2   r   )r   r   s    r   rR   z5Test_TestResult.testFailFastSetByRunner.<locals>.test  s!    OOq OOOFOO,r   z

OK
)r   r$   TextTestRunnerr   flushr2   getvalueendswith)r   r   runnerrR   r   s   `    r   testFailFastSetByRunnerz'Test_TestResult.testFailFastSetByRunner  sY    !((F	- D!)22:>?r   N)r   r   r   r=   rA   rS   rX   r\   rb   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r.   r.   &   s`    	12*3603N26F4F:F2Ch26=& BD=+&@r   r.   c                      e Zd ZdZd Zd Zd Zd Zd Zd Z	 e
j                  ej                  j                  dk\  d	      d
        Z e
j                  ej                  j                  dk\  d	      d        Z e
j                  ej                  j                  dk\  d	      d        Z e
j                  ej                  j                  dk\  d	      d        Z G d de
j&                        ZddZd Zd Zd Zd Zd Zd Zd Zd Zy)Test_TextTestResultNc                     t        j                  d dd      }| j                  |j                  |       dt        z   dz          y )NTrL   z$testGetDescriptionWithoutDocstring (z8.Test_TextTestResult.testGetDescriptionWithoutDocstring)r$   TextTestResultr4   getDescriptionr   r   s     r   "testGetDescriptionWithoutDocstringz6Test_TextTestResult.testGetDescriptionWithoutDocstring  sD    ((tQ7%%d+6AJK	Lr   c                    | j                  dd      5  t        j                  d dd      }| j                  |j	                  | j
                        dt        z   dz          d d d        | j                  d      5  t        j                  d dd      }| j                  |j	                  | j
                        dt        z   dz          d d d        y # 1 sw Y   pxY w# 1 sw Y   y xY w)	NrL      rg   barTz+testGetSubTestDescriptionWithoutDocstring (zN.Test_TextTestResult.testGetSubTestDescriptionWithoutDocstring) (foo=1, bar=2)zsome messagezN.Test_TextTestResult.testGetSubTestDescriptionWithoutDocstring) [some message]r   r$   r   r4   r   r   r   r   s     r   )testGetSubTestDescriptionWithoutDocstringz=Test_TextTestResult.testGetSubTestDescriptionWithoutDocstring  s    \\aQ\' 	f,,T4;F))$--8AHLdef	f \\.) 	f,,T4;F))$--8AHLdef	f 	f	f 	f	f 	fs   AC:ACCC%c                     | j                         5  t        j                  d dd      }| j                  |j	                  | j
                        dt        z   dz          d d d        y # 1 sw Y   y xY w)NTrL   z4testGetSubTestDescriptionWithoutDocstringAndParams (zT.Test_TextTestResult.testGetSubTestDescriptionWithoutDocstringAndParams) (<subtest>)r   r   s     r   2testGetSubTestDescriptionWithoutDocstringAndParamszFTest_TextTestResult.testGetSubTestDescriptionWithoutDocstringAndParams  sk    \\^ 	#,,T4;F))$--8"#&""#	# 	# 	#s   AA''A0c                     d}t        j                  d dd      }dd g fD ]P  }| j                  |      5  | j                  |j	                  | j
                        |t        |fz         d d d        R y # 1 sw Y   ]xY w)NzmtestGetSubTestDescriptionForFalseValues (%s.Test_TextTestResult.testGetSubTestDescriptionForFalseValues) [%s]TrL   r   r$   r   r   r4   r   r   r   )r   expectedr   args       r   'testGetSubTestDescriptionForFalseValuesz;Test_TextTestResult.testGetSubTestDescriptionForFalseValues  s     C((tQ7tR= 	Cc"   ))$--8#. 	 s   5A33A<	c                 :   | j                  d      5  | j                  dd      5  t        j                  d dd      }| j                  |j	                  | j
                        dt        z   dz          d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	NrL   r   r      bazr   Tz1testGetNestedSubTestDescriptionWithoutDocstring (z[.Test_TextTestResult.testGetNestedSubTestDescriptionWithoutDocstring) (baz=2, bar=3, foo=1)r   r   s     r   /testGetNestedSubTestDescriptionWithoutDocstringzCTest_TextTestResult.testGetNestedSubTestDescriptionWithoutDocstring  s    \\a\  	1!+ 1!00tQ?  --dmm<&'*0011	1 	11 1	1 	1s#   BAB4BB	
BBc                 <   | j                  dd      5  | j                  dd      5  t        j                  d dd      }| j                  |j	                  | j
                        dt        z   d	z          d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
NrL   r   r   r      r   Tz;testGetDuplicatedNestedSubTestDescriptionWithoutDocstring (ze.Test_TextTestResult.testGetDuplicatedNestedSubTestDescriptionWithoutDocstring) (baz=3, bar=4, foo=1)r   r   s     r   9testGetDuplicatedNestedSubTestDescriptionWithoutDocstringzMTest_TextTestResult.testGetDuplicatedNestedSubTestDescriptionWithoutDocstring  s    \\aQ\' 	R!+ R!00tQ?  --dmm<&' *QQRR	R 	RR R	R 	Rs#   BAB5BB	BBr   z)Docstrings are omitted with -O2 and abovec                     t        j                  ddd      }| j                  |j                  |       dt        z   dz          y)5Tests getDescription() for a method with a docstring.NTrL   z(testGetDescriptionWithOneLineDocstring (zr.Test_TextTestResult.testGetDescriptionWithOneLineDocstring)
Tests getDescription() for a method with a docstring.r   r   s     r   &testGetDescriptionWithOneLineDocstringz:Test_TextTestResult.testGetDescriptionWithOneLineDocstring  sN     ((tQ7%%d+"HH	Jr   c                     t        j                  ddd      }| j                  dd      5  | j                  |j	                  | j
                        dt        z   dz          ddd       y# 1 sw Y   yxY w)r  NTrL   r   r   z/testGetSubTestDescriptionWithOneLineDocstring (z.Test_TextTestResult.testGetSubTestDescriptionWithOneLineDocstring) (foo=1, bar=2)
Tests getDescription() for a method with a docstring.r   r   s     r   -testGetSubTestDescriptionWithOneLineDocstringzATest_TextTestResult.testGetSubTestDescriptionWithOneLineDocstring  s{     ((tQ7\\aQ\' 	J%%dmm4"HHJ	J 	J 	J   6A**A3c                     t        j                  ddd      }| j                  |j                  |       dt        z   dz          y)oTests getDescription() for a method with a longer docstring.
        The second line of the docstring.
        NTrL   z*testGetDescriptionWithMultiLineDocstring (z{.Test_TextTestResult.testGetDescriptionWithMultiLineDocstring)
Tests getDescription() for a method with a longer docstring.r   r   s     r   (testGetDescriptionWithMultiLineDocstringz<Test_TextTestResult.testGetDescriptionWithMultiLineDocstring%  sK     ((tQ7%%d+"	r   c                     t        j                  ddd      }| j                  dd      5  | j                  |j	                  | j
                        dt        z   dz          ddd       y# 1 sw Y   yxY w)r  NTrL   r   r   z1testGetSubTestDescriptionWithMultiLineDocstring (z.Test_TextTestResult.testGetSubTestDescriptionWithMultiLineDocstring) (foo=1, bar=2)
Tests getDescription() for a method with a longer docstring.r   r   s     r   /testGetSubTestDescriptionWithMultiLineDocstringzCTest_TextTestResult.testGetSubTestDescriptionWithMultiLineDocstring3  st     ((tQ7\\aQ\' 	%%dmm4"	 	 	r  c                       e Zd Zd Zd Zd Zd Zej                  d        Z	ej                  d        Z
d Zd Zd	Zd
 Zy	)Test_TextTestResult.Testc                      y r"   r   rF   s    r   testSuccessz$Test_TextTestResult.Test.testSuccessD  s    r   c                 &    | j                  d       y )NskipskipTestrF   s    r   testSkipz!Test_TextTestResult.Test.testSkipF  s    MM&!r   c                 &    | j                  d       y Nrh   rh   rF   s    r   testFailz!Test_TextTestResult.Test.testFailH  s    IIfr   c                     t        d      )Nerror)r   rF   s    r   	testErrorz"Test_TextTestResult.Test.testErrorJ  s    G$$r   c                 &    | j                  d       y r  r  rF   s    r   testExpectedFailurez,Test_TextTestResult.Test.testExpectedFailureL  s    IIfr   c                      y r"   r   rF   s    r   testUnexpectedSuccessz.Test_TextTestResult.Test.testUnexpectedSuccessO  s    r   c                     | j                  dd      5  	 d d d        | j                  dd      5  	 d d d        y # 1 sw Y   'xY w# 1 sw Y   y xY w)NonerL   atwor   b)r   rF   s    r   testSubTestSuccessz+Test_TextTestResult.Test.testSubTestSuccessR  sW    eq) eq)    s   <AAAc                    | j                  dd      5  	 d d d        | j                  dd      5  | j                  d       d d d        | j                  dd	      5  | j                  d       d d d        | j                  d
d      5  t        d
      # 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   @xY w# 1 sw Y   y xY w)NsuccessrL   r"  r  r   r%  rh   r   )cr  r   )d)r   r  rh   r   rF   s    r   testSubTestMixedz)Test_TextTestResult.Test.testSubTestMixedW  s    i1- f* &f%&f* "		&!"g+ )(( & &" ") )s.   BB#B/B;B #B,/B8;CNc                 4    | j                   | j                   y r"   )tearDownErrorrF   s    r   tearDownz!Test_TextTestResult.Test.tearDownb  s    !!-((( .r   )r   r   r   r  r  r  r  r$   expectedFailurer  r  r'  r,  r.  r/  r   r   r   Testr  C  s\    		"		%		!	!	 
"			!	!	 
"		
	) 	)r   r1  c                     t               }t        j                  j                  |      }t        j                  |d|      }| j                  |      }||_        |j                  |       |j                         S r?   )	r   r$   r   _WritelnDecoratorr   r1  r.  r   r   )r   	test_name	verbosityr.  r   r   rR   s          r   	_run_testzTest_TextTestResult._run_testf  sa    !226:((yAyy#*  r   c                    | j                  | j                  dd      d       | j                  | j                  dd      d       | j                  | j                  dd      d       | j                  | j                  dd      d	       | j                  | j                  d
d      d       | j                  | j                  dd      d       y )Nr  rL   .r  sr  Fr  Er  xr  ur4   r6  rF   s    r   testDotsOutputz"Test_TextTestResult.testDotsOutputo  s    q93?
A6<
A6<Q7=(=qA3G(?CSIr   c                 
   t          d| j                  j                   }| j                  | j	                  dd      d| d       | j                  | j	                  dd      d| d       | j                  | j	                  d	d      d
| d       | j                  | j	                  dd      d| d       | j                  | j	                  dd      d| d       | j                  | j	                  dd      d| d       y )Nr8  r  r   testSuccess (z.testSuccess) ... ok
r  
testSkip (z.testSkip) ... skipped 'skip'
r  
testFail (z.testFail) ... FAIL
r  testError (z.testError) ... ERROR
r  ztestExpectedFailure (z+.testExpectedFailure) ... expected failure
r  ztestUnexpectedSuccess (z/.testUnexpectedSuccess) ... unexpected success
r   r1  r   r4   r6  r   	classnames     r   testLongOutputz"Test_TextTestResult.testLongOutputw  s   j$))"8"8!9:	q9(3IJ	L
A6%i[0OP	R
A6%i[0EF	HQ7&yk1HI	K(=qA0;gh	j(?C29+=mn	pr   c                 H    | j                  | j                  dd      d       y )Nr'  rL   r8  r>  rF   s    r   testDotsOutputSubTestSuccessz0Test_TextTestResult.testDotsOutputSubTestSuccess  s    (<a@#Fr   c                     t          d| j                  j                   }| j                  | j	                  dd      d| d       y )Nr8  r'  r   ztestSubTestSuccess (z.testSubTestSuccess) ... ok
rE  rF  s     r   testLongOutputSubTestSuccessz0Test_TextTestResult.testLongOutputSubTestSuccess  sG    j$))"8"8!9:	(<a@/	{:WX	Zr   c                 H    | j                  | j                  dd      d       y )Nr,  rL   sFEr>  rF   s    r   testDotsOutputSubTestMixedz.Test_TextTestResult.testDotsOutputSubTestMixed  s    (:A>Fr   c                     t          d| j                  j                   }| j                  | j	                  dd      d| d| d| d| d	       y )	Nr8  r,  r   ztestSubTestMixed (z,.testSubTestMixed) ... 
  testSubTestMixed (zG.testSubTestMixed) [skip] (b=2) ... skipped 'skip'
  testSubTestMixed (z=.testSubTestMixed) [fail] (c=3) ... FAIL
  testSubTestMixed (z+.testSubTestMixed) [error] (d=4) ... ERROR
rE  rF  s     r   testLongOutputSubTestMixedz.Test_TextTestResult.testLongOutputSubTestMixed  sh    j$))"8"8!9:	(:A>$YK 0''0k 2''0k 2''0k1]_	`r   c                 t   | j                  ddt        d            }| j                  |d       | j                  ddt        d            }| j                  |d       | j                  ddt        d            }| j                  |d	       | j                  d
dt        d            }| j                  |d       y )Nr  rL   rh   r:  r  EFr  r  FEr  sF)r6  AssertionErrorr4   r   )r   outs     r   testDotsOutputTearDownFailz.Test_TextTestResult.testDotsOutputTearDownFail  s    nn]A~f/EFc"nn[!^F-CDd#nnZIg,>?d#nnZN6,BCd#r   c                    t          d| j                  j                   }| j                  ddt	        d            }| j                  |d| d       | j                  ddt	        d            }| j                  |d| d	| d
       | j                  ddt        d            }| j                  |d| d| d       | j                  ddt	        d            }| j                  |d| d| d       y )Nr8  r  r   rh   rA  z.testSuccess) ... FAIL
r  rD  z!.testError) ... ERROR
testError (z.testError) ... FAIL
r  r  rC  z.testFail) ... FAIL
testFail (z.testFail) ... ERROR
r  rB  z(.testSkip) ... skipped 'skip'
testSkip (z.testSkip) ... FAIL
)r   r1  r   r6  rV  r4   r   )r   rG  rW  s      r   testLongOutputTearDownFailz.Test_TextTestResult.testLongOutputTearDownFail  s   j$))"8"8!9:	nn]A~f/EF(3KL	Nnn[!^F-CD&yk 2''0k1GI	J nnZIg,>?%i[ 1&&/[0FH	I nnZN6,BC%i[ 1&&/[0EG	Hr   r"   )r   r   r   maxDiffr   r   r   r   r   r   r$   skipIfri   flagsoptimizer  r  r	  r  rN   r1  r6  r?  rH  rJ  rL  rO  rQ  rX  rZ  r   r   r   r   r     sG   GLf#1R X__SYY''1,@BJBJ X__SYY''1,@B
JB
J X__SYY''1,@B
B
 X__SYY''1,@BB!)x   !)F!JpGZ
G`$Hr   r   )addSkipaddExpectedFailurer   r   c                 X    g | _         g | _        d| _        d| _        d| _        d| _        y r0   )r7   r6   r8   r9   bufferr   )r   r   descriptionsr5  s       r   r   r     s,    DMDKDMDODKDNr   r   	OldResultc                   *    e Zd Zd Zd Zd Zd Zd Zy)Test_OldTestResultc                     t        j                  dt        f      5  t               }|j	                  |       | j                  t        |j                        |       d d d        y # 1 sw Y   y xY w)NzTestResult has no add.+ method,)r   check_warningsRuntimeWarningrd  r   r4   r5   r7   )r   rR   r7   r   s       r   assertOldResultWarningz)Test_OldTestResult.assertOldResultWarning  sZ    ++2NCE 	=[FHHVS18<		= 	= 	=s   AA&&A/c                      G d dt         j                        }dD ])  \  }} ||      }| j                  |t        |              + y )Nc                   Z    e Zd Zd Zej
                  d        Zej
                  d        Zy)2Test_OldTestResult.testOldTestResult.<locals>.Testc                 &    | j                  d       y )Nfoobarr  rF   s    r   r  z;Test_OldTestResult.testOldTestResult.<locals>.Test.testSkip  s    h'r   c                     t         r"   )r(   rF   s    r   testExpectedFailzCTest_OldTestResult.testOldTestResult.<locals>.Test.testExpectedFail  s    r   c                      y r"   r   rF   s    r   r  zHTest_OldTestResult.testOldTestResult.<locals>.Test.testUnexpectedSuccess  s    r   N)r   r   r   r  r$   r0  rq  r  r   r   r   r1  rm    s7    (%%  & %% &r   r1  ))r  T)rq  T)r  F)r$   rN   rj  int)r   r1  r4  should_passrR   s        r   testOldTestResultz$Test_OldTestResult.testOldTestResult  sO    	8$$ 	'I 	D"I{ 	?D''ck/.BC		Dr   c                 f     G d dt         j                        }| j                   |d      d       y )Nc                       e Zd Zd Zd Zy)7Test_OldTestResult.testOldTestTesultSetup.<locals>.Testc                 &    | j                  d       y )N	no reasonr  rF   s    r   setUpz=Test_OldTestResult.testOldTestTesultSetup.<locals>.Test.setUp  s    k*r   c                      y r"   r   rF   s    r   testFooz?Test_OldTestResult.testOldTestTesultSetup.<locals>.Test.testFoo  rH   r   N)r   r   r   r{  r}  r   r   r   r1  rx    s    +r   r1  r}  r   )r$   rN   rj  r   r1  s     r   testOldTestTesultSetupz)Test_OldTestResult.testOldTestTesultSetup  s*    	8$$ 	
 	##DOQ7r   c                     t        j                  d       G d dt         j                               }| j                   |d      d       y )Nrz  c                       e Zd Zd Zy)7Test_OldTestResult.testOldTestResultClass.<locals>.Testc                      y r"   r   rF   s    r   r}  z?Test_OldTestResult.testOldTestResultClass.<locals>.Test.testFoo  rH   r   Nr   r   r   r}  r   r   r   r1  r    s    r   r1  r}  r   )r$   r  rN   rj  r~  s     r   testOldTestResultClassz)Test_OldTestResult.testOldTestResultClass  s@    	{	#	8$$ 	 
$	 	##DOQ7r   c                      G d dt         j                        }t        j                  t        t	        j
                               }|j                   |d             y )Nc                       e Zd Zd Zy)8Test_OldTestResult.testOldResultWithRunner.<locals>.Testc                      y r"   r   rF   s    r   r}  z@Test_OldTestResult.testOldResultWithRunner.<locals>.Test.testFoo  rH   r   Nr  r   r   r   r1  r    rK   r   r1  )resultclassr   r}  )r$   rN   r   rd  ioStringIOr   )r   r1  r   s      r   testOldResultWithRunnerz*Test_OldTestResult.testOldResultWithRunner  sD    	8$$ 	 ((Y13@ 	

4	?#r   N)r   r   r   rj  ru  r  r  r  r   r   r   rf  rf    s    =D"88$r   rf  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestOutputBufferingc                 X    t         j                  | _        t         j                  | _        y r"   )ri   stdout	_real_outstderr	_real_errrF   s    r   r{  zTestOutputBuffering.setUp  s    r   c                 X    | j                   t        _        | j                  t        _        y r"   )r  ri   r  r  r  rF   s    r   r/  zTestOutputBuffering.tearDown   s    ^^
^^
r   c                    | j                   }| j                  }t        j                         }| j	                  |j
                         | j                  |t        j                         | j                  |t        j                         |j                  |        | j                  |t        j                         | j                  |t        j                         y r"   )r  r  r$   r1   rl   rb  rm   ri   r  r  rO   )r   real_outreal_errr   s       r   testBufferOutputOffz'TestOutputBuffering.testBufferOutputOff  s    >>>>$$&'h

+h

+h

+h

+r   c                    | j                   }| j                  }t        j                         }| j	                  |j
                         d|_        | j                  |t        j                         | j                  |t        j                         |j                  |        | j                  |t        j                         | j                  |t        j                         | j                  t        j                  t        j                         | j                  t        j                  t        j                         | j                  t        j                  t        j                         t        j                  }t        j                  }t        j                         |_        t        j                         |_        t#        d       t#        dt        j                         | j%                  |j'                         d       | j%                  |j'                         d       | j%                  |j                  j'                         d       | j%                  |j                   j'                         d       |j)                  |        |j+                  |        | j                  t        j                  |j                         | j                  t        j                  |j                          | j%                  |j                  j'                         d       | j%                  |j                   j'                         d       | j%                  |j'                         d       | j%                  |j'                         d       y )NTrg   r   filezfoo
zbar
r   )r  r  r$   r1   rl   rb  rm   ri   r  r  rO   assertIsNotrn   r  r  _original_stdout_original_stderrr'   r4   r   ra   rP   )r   r  r  r   
out_stream
err_streams         r   #testBufferOutputStartTestAddSuccessz7TestOutputBuffering.testBufferOutputStartTestAddSuccess  sJ   >>>>$$&'h

+h

+3::.3::.cjj"++6cjj"++6SZZ0ZZ
ZZ
"$++-"$++-ee#**%,,.8,,.80099;R@0099;R@$cjj&"9"9:cjj&"9"9:0099;R@0099;R@,,.3,,.3r   c                 ^    t        j                         }d|_        |j                  |        |S r?   )r$   r1   rb  rO   r   s     r   getStartedResultz$TestOutputBuffering.getStartedResultC  s*    $$&r   c                    t         t        j                  _        | j	                  t
               dD ]  \  }}}| j                         }t        j                  }t        j                  }t        j                         |_        t        j                         |_        t        dt        j                         |rt        dt        j                         t        ||      } || d       |j!                  |        t        ||      }| j#                  t%        |      d       |d   \  }	}
t'        j(                  d      }d	}|rt'        j(                  d
      }d||}| j+                  |	|        | j#                  |j                  j-                         |       | j#                  |j                  j-                         |       | j/                  |
|        y )N)r6   r   Tr7   rk   Fr  r  rg   r  r   NNNrL   r   z9
                Stdout:
                foo
            r   z9
                Stderr:
                bar
            r   )r	   r$   r   r#   r   r%   r  ri   r  r  r  r  r  r  r'   getattrrP   r4   r5   textwrapdedentrm   r   assertMultiLineEqual)r   message_attradd_attrinclude_errorr   buffered_outbuffered_erraddFunctionresult_listrR   messageexpectedOutMessageexpectedErrMessageexpectedFullMessages                 r   !testBufferOutputAddErrorOrFailurez5TestOutputBuffering.testBufferOutputAddErrorOrFailureI  s   $1!)*6
 )	D1L(M **,F::L::L&(kkmF#&(kkmF#%cjj)e#**- "&(3K01OOD!!&,7KS-q1'NMD'!) 2 " "$%-__ 6 &"
 8JK]"^MM$%V44==?ASTV44==?AST%%g/BCS)	Dr   c                 @   t               5 }t        j                         }d d d        d_         G d dt        j                        }t        j
                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       dt        |       d}|j                  d	   \  }}| j                  t        |      |       | j                  d
|       | j                  ||       y # 1 sw Y   xY w)NTc                       e Zd Zd Zd Zy)0TestOutputBuffering.testBufferSetUp.<locals>.Fooc                 $    t        d       ddz   y Nset uprL   r   r'   rF   s    r   r{  z6TestOutputBuffering.testBufferSetUp.<locals>.Foo.setUp~  s    h!r   c                      y r"   r   rF   s    r   test_fooz9TestOutputBuffering.testBufferSetUp.<locals>.Foo.test_foo  rH   r   Nr   r   r   r{  r  r   r   r   rJ   r  }      r   rJ   r  
Stdout:
set up
rL   
test_foo (
.test_foo)r   #ZeroDivisionError: division by zeror   r$   r1   rb  rN   	TestSuiter4   r   r5   r6   r   ro   r   	r   r  r   rJ   suiteexpected_outdescriptionrr   rs   s	            r   testBufferSetUpz#TestOutputBuffering.testBufferSetUpx  s     	+&((*F	+	(## 	 ""C
O#45f,*L9V]]+Q/"8C=/<#)==#3 	=Y5;]KlM2'	+ 	+   DDc                 @   t               5 }t        j                         }d d d        d_         G d dt        j                        }t        j
                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       dt        |       d}|j                  d	   \  }}| j                  t        |      |       | j                  d
|       | j                  ||       y # 1 sw Y   xY w)NTc                       e Zd Zd Zd Zy)3TestOutputBuffering.testBufferTearDown.<locals>.Fooc                 $    t        d       ddz   y Nz	tear downrL   r   r  rF   s    r   r/  z<TestOutputBuffering.testBufferTearDown.<locals>.Foo.tearDown      k"!r   c                      y r"   r   rF   s    r   r  z<TestOutputBuffering.testBufferTearDown.<locals>.Foo.test_foo  rH   r   N)r   r   r   r/  r  r   r   r   rJ   r    r  r   rJ   r  z
Stdout:
tear down
rL   r  r  r   r  r  r  s	            r   testBufferTearDownz&TestOutputBuffering.testBufferTearDown  s     	+&((*F	+	(## 	 ""C
O#45f/*L9V]]+Q/"8C=/<#)==#3 	=Y5;]KlM2'	+ 	+r  c                 P   t               5 }t        j                         }d d d        d_         G d dt        j                        }t        j
                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       dt        |       d}|j                  d	   \  }}| j                  t        |      |       | j                  d
|       | j                  d|       | j                  d|       | j                  d|       |j                  d   \  }}| j                  t        |      |       | j                  d|       | j                  d|       | j                  ||       y # 1 sw Y   }xY w)NTc                       e Zd Zd Zd Zy)5TestOutputBuffering.testBufferDoCleanups.<locals>.Fooc                 n    t        d       | j                  t               | j                  t               y Nr  r'   r   r)   r,   rF   s    r   r{  z;TestOutputBuffering.testBufferDoCleanups.<locals>.Foo.setUp  !    h--r   c                      y r"   r   rF   s    r   r  z>TestOutputBuffering.testBufferDoCleanups.<locals>.Foo.test_foo  rH   r   Nr  r   r   r   rJ   r    s    .r   rJ   r  (
Stdout:
set up
do cleanup2
do cleanup1
r   r  r  r   ValueError: bad cleanup2r(   
Stdout:
set up
do cleanup2

do cleanup1
rL   TypeError: bad cleanup1r+   r   r$   r1   rb  rN   r  r4   r   r5   r6   r   ro   r   assertNotInr  s	            r   testBufferDoCleanupsz(TestOutputBuffering.testBufferDoCleanups  sg    	+&((*F	+	(## 	 ""C
O#45fF*L9V]]+Q/"8C=/<#)==#3 	=Y50-@m48-H*M:#)==#3 	=Y5/?}5lM27	+ 	+s   FF%c                    t               5 }t        j                         }d d d        d_         G d dt        j                        }t        j
                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       dt        |       d}|j                  d	   \  }}| j                  t        |      |       | j                  d
|       | j                  d|       | j                  d|       | j                  d|       | j                  d|       | j                  d|       |j                  d   \  }}| j                  t        |      |       | j                  d|       | j                  d|       | j                  d|       | j                  d|       | j                  d|       |j                  d   \  }}| j                  t        |      |       | j                  d|       | j                  d|       | j                  d|       | j                  ||       y # 1 sw Y   :xY w)NTc                       e Zd Zd Zd Zy);TestOutputBuffering.testBufferSetUp_DoCleanups.<locals>.Fooc                 x    t        d       | j                  t               | j                  t               ddz   y r  r  rF   s    r   r{  zATestOutputBuffering.testBufferSetUp_DoCleanups.<locals>.Foo.setUp  s(    h--!r   c                      y r"   r   rF   s    r   r  zDTestOutputBuffering.testBufferSetUp_DoCleanups.<locals>.Foo.test_foo  rH   r   Nr  r   r   r   rJ   r    s    
r   rJ   r  r  r   r  r  r   r  r+   r(   r  
do cleanup2
r  rL   r  r   r  r   r  r  r  s	            r   testBufferSetUp_DoCleanupsz.TestOutputBuffering.testBufferSetUp_DoCleanups  s    	+&((*F	+	(## 	 ""C
O#45fF*L9V]]+Q/"8C=/<#)==#3 	=Y5;]K}5m4+];*M:*M:#)==#3 	=Y50-@,m<m48-H*M:#)==#3 	=Y5/?,m<}5lM2M	+ 	+   II"c                    t               5 }t        j                         }d d d        d_         G d dt        j                        }t        j
                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       dt        |       d}|j                  d	   \  }}| j                  t        |      |       | j                  d
|       | j                  d|       | j                  d|       | j                  d|       | j                  d|       | j                  d|       |j                  d   \  }}| j                  t        |      |       | j                  d|       | j                  d|       | j                  d|       | j                  d|       | j                  d|       |j                  d   \  }}| j                  t        |      |       | j                  d|       | j                  d|       | j                  d|       | j                  ||       y # 1 sw Y   :xY w)NTc                       e Zd Zd Zd Zd Zy)>TestOutputBuffering.testBufferTearDown_DoCleanups.<locals>.Fooc                 n    t        d       | j                  t               | j                  t               y r  r  rF   s    r   r{  zDTestOutputBuffering.testBufferTearDown_DoCleanups.<locals>.Foo.setUp  r  r   c                 $    t        d       ddz   y r  r  rF   s    r   r/  zGTestOutputBuffering.testBufferTearDown_DoCleanups.<locals>.Foo.tearDown  r  r   c                      y r"   r   rF   s    r   r  zGTestOutputBuffering.testBufferTearDown_DoCleanups.<locals>.Foo.test_foo  rH   r   N)r   r   r   r{  r/  r  r   r   r   rJ   r    s    .r   rJ   r  z2
Stdout:
set up
tear down
do cleanup2
do cleanup1
r   r  r  r   r  r+   r(   z
Stdout:
set up
tear down
r  r  rL   r  r   z&
Stdout:
set up
tear down
do cleanup2
r   r  r  r  s	            r   testBufferTearDown_DoCleanupsz1TestOutputBuffering.testBufferTearDown_DoCleanups  s    	+&((*F	+		(## 		 ""C
O#45fQ*L9V]]+Q/"8C=/<#)==#3 	=Y5;]K}5m46F*M:*M:#)==#3 	=Y50-@,m<m4C]S*M:#)==#3 	=Y5/?,m<}5lM2Q	+ 	+r  c                 B   t               5 }t        j                         }d d d        d_         G d dt        j                        }t        j
                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       dt        |       d}|j                  d	   \  }}| j                  |j                  |       | j                  d
|       | j                  ||       y # 1 sw Y   xY w)NTc                   "    e Zd Zed        Zd Zy)5TestOutputBuffering.testBufferSetupClass.<locals>.Fooc                 $    t        d       ddz   y Nset up classrL   r   r  clss    r   
setUpClassz@TestOutputBuffering.testBufferSetupClass.<locals>.Foo.setUpClass  s    n%!r   c                      y r"   r   rF   s    r   r  z>TestOutputBuffering.testBufferSetupClass.<locals>.Foo.test_foo   rH   r   Nr   r   r   classmethodr  r  r   r   r   rJ   r         r   rJ   r  
Stdout:
set up class
rL   setUpClass ()r   r  r   r$   r1   rb  rN   r  r4   r   r5   r6   r   r  r   r  s	            r   testBufferSetupClassz(TestOutputBuffering.testBufferSetupClass  s     	+&((*F	+	(## 	 ""C
O#45f2*L9V]]+Q/$Xc]O15#)==#3 	=..<;]KlM2)	+ 	+   DDc                 B   t               5 }t        j                         }d d d        d_         G d dt        j                        }t        j
                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       dt        |       d}|j                  d	   \  }}| j                  |j                  |       | j                  d
|       | j                  ||       y # 1 sw Y   xY w)NTc                   "    e Zd Zed        Zd Zy)8TestOutputBuffering.testBufferTearDownClass.<locals>.Fooc                 $    t        d       ddz   y Ntear down classrL   r   r  r  s    r   tearDownClasszFTestOutputBuffering.testBufferTearDownClass.<locals>.Foo.tearDownClass3      '(!r   c                      y r"   r   rF   s    r   r  zATestOutputBuffering.testBufferTearDownClass.<locals>.Foo.test_foo7  rH   r   N)r   r   r   r  r  r  r   r   r   rJ   r  2  r  r   rJ   r  
Stdout:
tear down class
rL   tearDownClass (r  r   r  r  r  s	            r   testBufferTearDownClassz+TestOutputBuffering.testBufferTearDownClass-  s     	+&((*F	+	(## 	 ""C
O#45f5*L9V]]+Q/'a8#)==#3 	=..<;]KlM2)	+ 	+r	  c                 0   t               5 }t        j                         }d d d        d_         G d dt        j                        }t        j
                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       dt        |       d}|j                  d	   \  }}| j                  |j                  |       | j                  d
|       | j                  d|       | j                  ||       |j                  d   \  }}| j                  |j                  |       | j                  d|       | j                  d|       | j                  ||       y # 1 sw Y   mxY w)NTc                   2    e Zd Zed        Zed        Zd Zy):TestOutputBuffering.testBufferDoClassCleanups.<locals>.Fooc                 n    t        d       | j                  t               | j                  t               y Nr  r'   addClassCleanupr)   r,   r  s    r   r  zETestOutputBuffering.testBufferDoClassCleanups.<locals>.Foo.setUpClassJ  &    n%##L1##L1r   c                     t        d       y )Nr  r  r  s    r   r  zHTestOutputBuffering.testBufferDoClassCleanups.<locals>.Foo.tearDownClassO  s    '(r   c                      y r"   r   rF   s    r   r  zCTestOutputBuffering.testBufferDoClassCleanups.<locals>.Foo.test_fooR  rH   r   Nr   r   r   r  r  r  r  r   r   r   rJ   r  I  s-    2 2 ) )r   rJ   r  1
Stdout:
tear down class
do cleanup2
do cleanup1
r   r  r  r   r  r(   rL   r  r+   r   r$   r1   rb  rN   r  r4   r   r5   r6   r   r  r   r  r  s	            r   testBufferDoClassCleanupsz-TestOutputBuffering.testBufferDoClassCleanupsD  sY    	+&((*F	+
	(## 
	 ""C
O#45fO*L9V]]+Q/'a8#)==#3 	=..<0-@m4lM2#)==#3 	=..</?}5lM2=	+ 	+s   FFc                 d   t               5 }t        j                         }d d d        d_         G d dt        j                        }t        j
                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       dt        |       d}|j                  d	   \  }}| j                  |j                  |       | j                  d
|       | j                  d|       | j                  d|       | j                  d|       |j                  d   \  }}| j                  |j                  |       | j                  d|       | j                  d|       | j                  d|       | j                  ||       |j                  d   \  }}| j                  |j                  |       | j                  d|       | j                  d|       | j                  d|       | j                  ||       y # 1 sw Y   xY w)NTc                   "    e Zd Zed        Zd Zy)ETestOutputBuffering.testBufferSetupClass_DoClassCleanups.<locals>.Fooc                 x    t        d       | j                  t               | j                  t               ddz   y r  r  r  s    r   r  zPTestOutputBuffering.testBufferSetupClass_DoClassCleanups.<locals>.Foo.setUpClassk  s-    n%##L1##L1!r   c                      y r"   r   rF   s    r   r  zNTestOutputBuffering.testBufferSetupClass_DoClassCleanups.<locals>.Foo.test_fooq  rH   r   Nr  r   r   r   rJ   r&  j  s     
r   rJ   r  z.
Stdout:
set up class
do cleanup2
do cleanup1
r   r  r  r   r  r+   r(   r  rL   r  r   r   r  r"  r  s	            r   $testBufferSetupClass_DoClassCleanupsz8TestOutputBuffering.testBufferSetupClass_DoClassCleanupse  s    	+&((*F	+	(## 	 ""C
O#45fL*L9V]]+Q/$Xc]O15#)==#3 	=..<;]K}5m41=A#)==#3 	=..<0-@,m<m4lM2#)==#3 	=..</?,m<}5lM2I	+ 	+   H%%H/c                 d   t               5 }t        j                         }d d d        d_         G d dt        j                        }t        j
                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       dt        |       d}|j                  d	   \  }}| j                  |j                  |       | j                  d
|       | j                  d|       | j                  d|       | j                  d|       |j                  d   \  }}| j                  |j                  |       | j                  d|       | j                  d|       | j                  d|       | j                  ||       |j                  d   \  }}| j                  |j                  |       | j                  d|       | j                  d|       | j                  d|       | j                  ||       y # 1 sw Y   xY w)NTc                   2    e Zd Zed        Zed        Zd Zy)HTestOutputBuffering.testBufferTearDownClass_DoClassCleanups.<locals>.Fooc                 n    t        d       | j                  t               | j                  t               y r  r  r  s    r   r  zSTestOutputBuffering.testBufferTearDownClass_DoClassCleanups.<locals>.Foo.setUpClass  r  r   c                 $    t        d       ddz   y r  r  r  s    r   r  zVTestOutputBuffering.testBufferTearDownClass_DoClassCleanups.<locals>.Foo.tearDownClass  r  r   c                      y r"   r   rF   s    r   r  zQTestOutputBuffering.testBufferTearDownClass_DoClassCleanups.<locals>.Foo.test_foo  rH   r   Nr   r   r   r   rJ   r-    s-    2 2  r   rJ   r  r!  r   r  r  r   r  r+   r(   r  rL   r  r   r   r  r"  r  s	            r   'testBufferTearDownClass_DoClassCleanupsz;TestOutputBuffering.testBufferTearDownClass_DoClassCleanups  s    	+&((*F	+	(## 	 ""C
O#45fO*L9V]]+Q/'a8#)==#3 	=..<;]K}5m44mD#)==#3 	=..<0-@,m<m4lM2#)==#3 	=..</?,m<}5lM2O	+ 	+r*  c                    t               5 }t        j                         }d d d        d_         G d dt        j                        } G d dt
              }d|_        |t        j                  d<   | j                  t        j                  j                  d       t        j                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       d	}|j                  d
   \  }}	| j                  |j                   |       | j#                  d|	       | j#                  ||	       y # 1 sw Y   =xY w)NTc                       e Zd Zd Zy)6TestOutputBuffering.testBufferSetUpModule.<locals>.Fooc                      y r"   r   rF   s    r   r  z?TestOutputBuffering.testBufferSetUpModule.<locals>.Foo.test_foo  rH   r   Nr   r   r   r  r   r   r   rJ   r4    rK   r   rJ   c                       e Zd Zed        Zy)9TestOutputBuffering.testBufferSetUpModule.<locals>.Modulec                  $    t        d       ddz   y Nset up modulerL   r   r  r   r   r   setUpModulezETestOutputBuffering.testBufferSetUpModule.<locals>.Module.setUpModule  s    o&!r   Nr   r   r   staticmethodr<  r   r   r   Moduler8         r   r?  r  
Stdout:
set up module
rL   setUpModule (Module)r   r  r   r$   r1   rb  rN   r   r   ri   modulesr   popr  r4   r   r5   r6   r  r   
r   r  r   rJ   r?  r  r  r  rr   rs   s
             r   testBufferSetUpModulez)TestOutputBuffering.testBufferSetUpModule  s    	+&((*F	+	(## 		V 	 " &H2""C
O#45f3*L9V]]+Q/,#)==#3 	=..<;]KlM23	+ 	+   EE%c                    t               5 }t        j                         }d d d        d_         G d dt        j                        } G d dt
              }d|_        |t        j                  d<   | j                  t        j                  j                  d       t        j                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       d	}|j                  d
   \  }}	| j                  |j                   |       | j#                  d|	       | j#                  ||	       y # 1 sw Y   =xY w)NTc                       e Zd Zd Zy)9TestOutputBuffering.testBufferTearDownModule.<locals>.Fooc                      y r"   r   rF   s    r   r  zBTestOutputBuffering.testBufferTearDownModule.<locals>.Foo.test_foo  rH   r   Nr6  r   r   r   rJ   rK    rK   r   rJ   c                       e Zd Zed        Zy)<TestOutputBuffering.testBufferTearDownModule.<locals>.Modulec                  $    t        d       ddz   y Nztear down modulerL   r   r  r   r   r   tearDownModulezKTestOutputBuffering.testBufferTearDownModule.<locals>.Module.tearDownModule      ()!r   N)r   r   r   r>  rQ  r   r   r   r?  rN    r@  r   r?  r  
Stdout:
tear down module
rL   tearDownModule (Module)r   r  rC  rF  s
             r   testBufferTearDownModulez,TestOutputBuffering.testBufferTearDownModule  s    	+&((*F	+	(## 		V 	 " &H2""C
O#45f6*L9V]]+Q//#)==#3 	=..<;]KlM23	+ 	+rH  c                    t               5 }t        j                         }d d d        d_         G d dt        j                        } G d dt
              }d|_        |t        j                  d<   | j                  t        j                  j                  d       t        j                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       d	}|j                  d
   \  }}	| j                  |j                   |       | j#                  d|	       | j%                  d|	       | j#                  ||	       y # 1 sw Y   OxY w)NTc                       e Zd Zd Zy);TestOutputBuffering.testBufferDoModuleCleanups.<locals>.Fooc                      y r"   r   rF   s    r   r  zDTestOutputBuffering.testBufferDoModuleCleanups.<locals>.Foo.test_foo  rH   r   Nr6  r   r   r   rJ   rX    rK   r   rJ   c                       e Zd Zed        Zy)>TestOutputBuffering.testBufferDoModuleCleanups.<locals>.Modulec                  ~    t        d       t        j                  t               t        j                  t               y Nr;  r'   r$   addModuleCleanupr)   r,   r   r   r   r<  zJTestOutputBuffering.testBufferDoModuleCleanups.<locals>.Module.setUpModule  &    o&)),7)),7r   Nr=  r   r   r   r?  r[    s    8 8r   r?  r  z!
Stdout:
do cleanup2
do cleanup1
rL   rT  r   r  r(   r   r$   r1   rb  rN   r   r   ri   rD  r   rE  r  r4   r   r5   r6   r  r   r  rF  s
             r   testBufferDoModuleCleanupsz.TestOutputBuffering.testBufferDoModuleCleanups  s-    	+&((*F	+	(## 		8V 	8 " &H2""C
O#45f>*L9V]]+Q//#)==#3 	=..<0-@m4lM27	+ 	+s   E--E7c                 (   t               5 }t        j                         }d d d        d_         G d dt        j                        } G d dt
              }d|_        |t        j                  d<   | j                  t        j                  j                  d       t        j                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       d	}|j                  d
   \  }}	| j                  |j                   |       | j#                  d|	       | j%                  d|	       | j%                  d|	       | j#                  d|	       |j                  d   \  }}	| j#                  ||	       | j                  |j                   |       | j#                  d|	       | j%                  d|	       | j%                  d|	       | j#                  ||	       y # 1 sw Y   xY w)NTc                       e Zd Zd Zy)GTestOutputBuffering.testBufferSetUpModule_DoModuleCleanups.<locals>.Fooc                      y r"   r   rF   s    r   r  zPTestOutputBuffering.testBufferSetUpModule_DoModuleCleanups.<locals>.Foo.test_foo  rH   r   Nr6  r   r   r   rJ   re    rK   r   rJ   c                       e Zd Zed        Zy)JTestOutputBuffering.testBufferSetUpModule_DoModuleCleanups.<locals>.Modulec                      t        d       t        j                  t               t        j                  t               ddz   y r:  r^  r   r   r   r<  zVTestOutputBuffering.testBufferSetUpModule_DoModuleCleanups.<locals>.Module.setUpModule  s-    o&)),7)),7!r   Nr=  r   r   r   r?  rh    s     r   r?  r  z/
Stdout:
set up module
do cleanup2
do cleanup1
r   rB  r   r  r+   r(   rA  rL   r  r   ra  rF  s
             r   &testBufferSetUpModule_DoModuleCleanupsz:TestOutputBuffering.testBufferSetUpModule_DoModuleCleanups  s    	+&((*F	+	(## 		V 	 " &H2""C
O#45fM*L9V]]+Q/,#)==#3 	=..<;]K}5m42MB#)==#3 	=lM2..<0-@,m<m4lM2I	+ 	+s   HHc                    t               5 }t        j                         }d d d        d_         G d dt        j                        } G d dt
              }d|_        |t        j                  d<   | j                  t        j                  j                  d       t        j                   |d      g      } ||       d}| j                  j                         |       | j                  t        |j                        d       d	}|j                  d
   \  }}	| j                  |j                   |       | j#                  d|	       | j%                  d|	       | j%                  d|	       | j#                  d|	       |j                  d   \  }}	| j                  |j                   |       | j#                  d|	       | j%                  d|	       | j%                  d|	       | j#                  ||	       y # 1 sw Y   xY w)NTc                       e Zd Zd Zy)JTestOutputBuffering.testBufferTearDownModule_DoModuleCleanups.<locals>.Fooc                      y r"   r   rF   s    r   r  zSTestOutputBuffering.testBufferTearDownModule_DoModuleCleanups.<locals>.Foo.test_foo9  rH   r   Nr6  r   r   r   rJ   rm  8  rK   r   rJ   c                   ,    e Zd Zed        Zed        Zy)MTestOutputBuffering.testBufferTearDownModule_DoModuleCleanups.<locals>.Modulec                  ~    t        d       t        j                  t               t        j                  t               y r]  r^  r   r   r   r<  zYTestOutputBuffering.testBufferTearDownModule_DoModuleCleanups.<locals>.Module.setUpModule<  r`  r   c                  $    t        d       ddz   y rP  r  r   r   r   rQ  z\TestOutputBuffering.testBufferTearDownModule_DoModuleCleanups.<locals>.Module.tearDownModuleA  rR  r   N)r   r   r   r>  r<  rQ  r   r   r   r?  rp  ;  s(    8 8  r   r?  r  z2
Stdout:
tear down module
do cleanup2
do cleanup1
r   rT  r   r  r+   r(   rS  rL   r  r   ra  rF  s
             r   )testBufferTearDownModule_DoModuleCleanupsz=TestOutputBuffering.testBufferTearDownModule_DoModuleCleanups3  s    	+&((*F	+	(## 			V 		 " &H2""C
O#45fP*L9V]]+Q//#)==#3 	=..<;]K}5m45}E#)==#3 	=..<0-@,m<m4lM2M	+ 	+s   G55G?N)r   r   r   r{  r/  r  r  r  r  r  r  r  r  r  r  r  r#  r)  r1  rG  rU  rb  rj  rs  r   r   r   r  r    st    $$,-4`-D^3,3,3<'3R)3V3.3.3B%3N(3T38383<%3N'3r   r  __main__r  )!r  ri   r  test.supportr   r   r#   r$   r   unittest.utilr   test.test_unittest.supportr   r   r	   r%   r)   r,   rN   r.   r   dictr1   __dict__	classDictmr   typerd  rf  r  r   mainr   r   r   <module>r~     s    	 
  9    " 5F *$
%
d@h'' d@NfH(++ fHR $$--.	
 A! !	* vi3	1$** 1$h`	3(++ `	3F zHMMO r   