
    daf0                       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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 d dlZd dlmZmZmZmZmZ d dlmZmZ  ej2                  d      Z ej2                  d      Z ej2                  d      Z G d	 d
e      Z G d dej>                  ee      Z e!dk(  r ejD                          yy)    N)deepcopy)support)TestEqualityTestHashingLoggingResultLegacyLoggingResult#ResultWithNoStartTestRunStopTestRun)captured_stderr
gc_collectfoofoo.barquuxc                   z    e Zd ZdZ G d dej
                        Z G d de      Z G d dej
                        Zy)	Testz5Keep these TestCase classes out of the main namespacec                       e Zd Zd Zd Zy)Test.Fooc                      y N selfs    7/root/Python-3.12.4/Lib/test/test_unittest/test_case.pyrunTestzTest.Foo.runTest"   s    4    c                      y r   r   r   s    r   test1zTest.Foo.test1#       r   N)__name__
__module____qualname__r   r   r   r   r   Foor   !   s    r   r!   c                       e Zd Zd Zy)Test.Barc                      y r   r   r   s    r   test2zTest.Bar.test2&   r   r   N)r   r   r    r%   r   r   r   Barr#   %   s    r   r&   c                   4     e Zd ZdZ fdZd Zd Zd Z xZS )Test.LoggingTestCasez!A test case which logs its calls.c                 N    t         t        j                  |   d       || _        y Ntest)superr   LoggingTestCase__init__events)r   r/   	__class__s     r   r.   zTest.LoggingTestCase.__init__+   s    $&&6v> DKr   c                 :    | j                   j                  d       y )NsetUpr/   appendr   s    r   r2   zTest.LoggingTestCase.setUp/   s    KKw'r   c                 :    | j                   j                  d       y r*   r3   r   s    r   r+   zTest.LoggingTestCase.test2   s    KKv&r   c                 :    | j                   j                  d       y )NtearDownr3   r   s    r   r7   zTest.LoggingTestCase.tearDown5   s    KKz*r   )	r   r   r    __doc__r.   r2   r+   r7   __classcell__)r0   s   @r   r-   r(   (   s    /	!	(	'	+r   r-   N)	r   r   r    r8   unittestTestCaser!   r&   r-   r   r   r   r   r      s5    ;h c +(++ +r   r   c                      e Zd Zej	                  d      ej	                  d      fgZej	                  d      ej	                  d      fej	                  d      ej                  d      fej	                  d      ej                  d      fg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d Zd Zd Z d Z!d Z"d Z#d  Z$d! Z%d" Z&d# Z'd$ Z(d% Z) e*jV                  e,jZ                  j\                  d&k\  d'      d(        Z/ e*jV                  e,jZ                  j\                  d&k\  d'      d)        Z0 e*jV                  e,jZ                  j\                  d&k\  d'      d*        Z1d+ Z2d, Z3d- Z4d. Z5d/ Z6d0 Z7d1 Z8d2 Z9d3 Z:d4 Z;d5 Z<d6 Z=d7 Z>d8 Z?d9 Z@d: ZAd; ZBd< ZCd= ZDd> ZEd? ZFd@ ZGdA ZHdB ZIdC ZJdD ZKdE ZLdF ZMdG ZNdH ZOdI ZPdJ ZQdK ZRdL ZSdM ZTdN ZUdO ZVdP ZWdQ ZXdR ZYdS ZZdT Z[dU Z\e]j                  dV        Z_dW Z`dX ZadY ZbdZ Zcd[ Zdd\ Zed] Zfd^ Zgd_ Zhd` Zida Zjdb Zkdc Zldd Zmde Zndf Zodg Zpdh Zqdi Zrdj Zsdk Ztdl Zudm Zvdn Zwdo Zxdp Zyezj                  dq        Z|dr Z}ys)tTest_TestCaser   r   r%   c                     G d dt         j                        }| j                   |       j                         dd  d       t        j                         }|j                  dd       |j	                  |j
                        5  |j                  dd       d d d        | j	                  t              5  |j                          d d d        y # 1 sw Y   8xY w# 1 sw Y   y xY w)Nc                       e Zd Zd Zd Zy)3Test_TestCase.test_init__no_test_name.<locals>.Testc                     t               r   MyExceptionr   s    r   r   z;Test_TestCase.test_init__no_test_name.<locals>.Test.runTestU   	    []2r   c                      y r   r   r   s    r   r+   z8Test_TestCase.test_init__no_test_name.<locals>.Test.testV       Dr   Nr   r   r    r   r+   r   r   r   r   r@   T       2 r   r   iz.Test.runTest      )r:   r;   assertEqualidassertRaisesfailureExceptionAttributeErrorrun)r   r   r+   s      r   test_init__no_test_namez%Test_TestCase.test_init__no_test_nameS   s    	!8$$ 	! 	ST*O<   "At445 	#Q"	# ~. 	HHJ	 		# 	#	 	s   C3CCC"c                      G d dt         j                        }| j                   |d      j                         dd  d       y )Nc                       e Zd Zd Zd Zy)7Test_TestCase.test_init__test_name__valid.<locals>.Testc                     t               r   rB   r   s    r   r   z?Test_TestCase.test_init__test_name__valid.<locals>.Test.runTestj   rD   r   c                      y r   r   r   s    r   r+   z<Test_TestCase.test_init__test_name__valid.<locals>.Test.testk   rF   r   NrG   r   r   r   r   rT   i   rH   r   r   r+   iz
.Test.test)r:   r;   rK   rL   r   r   s     r   test_init__test_name__validz)Test_TestCase.test_init__test_name__validh   s8    	!8$$ 	! 	f*340,?r   c                      G d dt         j                        }	  |d       | j                  d       y # t        $ r Y y w xY w)Nc                       e Zd Zd Zd Zy)9Test_TestCase.test_init__test_name__invalid.<locals>.Testc                     t               r   rB   r   s    r   r   zATest_TestCase.test_init__test_name__invalid.<locals>.Test.runTestu   rD   r   c                      y r   r   r   s    r   r+   z>Test_TestCase.test_init__test_name__invalid.<locals>.Test.testv   rF   r   NrG   r   r   r   r   r[   t   rH   r   r   testfoozFailed to raise ValueError)r:   r;   fail
ValueErrorrW   s     r   test_init__test_name__invalidz+Test_TestCase.test_init__test_name__invalids   sC    	!8$$ 	!	4O II23  		s   5 	A Ac                      G d dt         j                        }| j                   |d      j                         d       y )Nc                       e Zd Zd Zy).Test_TestCase.test_countTestCases.<locals>.Fooc                      y r   r   r   s    r   r+   z3Test_TestCase.test_countTestCases.<locals>.Foo.test   rF   r   Nr   r   r    r+   r   r   r   r!   rd      s     r   r!   r+      )r:   r;   rK   countTestCasesr   r!   s     r   test_countTestCasesz!Test_TestCase.test_countTestCases   s3    	!(## 	! 	V335q9r   c                      G d dt         j                        } |       j                         }| j                  t	        |      t         j
                         y )Nc                       e Zd Zd Zy)1Test_TestCase.test_defaultTestResult.<locals>.Fooc                      y r   r   r   s    r   r   z9Test_TestCase.test_defaultTestResult.<locals>.Foo.runTest       r   Nr   r   r    r   r   r   r   r!   rm          r   r!   )r:   r;   defaultTestResultrK   type
TestResult)r   r!   results      r   test_defaultTestResultz$Test_TestCase.test_defaultTestResult   s@    	(## 	 ((*fx':':;r   c                     g }t        |      } G fddt        j                         |      j                  |       g d}| j	                  ||       y )Nc                   "     e Zd Z fdZ xZS )>Test_TestCase.test_run_call_order__error_in_setUp.<locals>.Fooc                 6    t         |           t        d      Nzraised by Foo.setUpr,   r2   RuntimeErrorr   r!   r0   s    r   r2   zDTest_TestCase.test_run_call_order__error_in_setUp.<locals>.Foo.setUp       c4&("#899r   )r   r   r    r2   r9   r0   r!   s   @r   r!   ry      s    : :r   r!   )	startTestr2   addErrorstopTestr   r   r-   rP   rK   r   r/   ru   expectedr!   s       @r   #test_run_call_order__error_in_setUpz1Test_TestCase.test_run_call_order__error_in_setUp   sK    v&	:$&& 	:
 	FA*r   c                     g } G fddt         j                         |      j                          g d}| j                  ||       y )Nc                   (     e Zd Zd Z fdZ xZS )MTest_TestCase.test_run_call_order__error_in_setUp_default_result.<locals>.Fooc                 ,    t        | j                        S r   r   r/   r   s    r   rr   z_Test_TestCase.test_run_call_order__error_in_setUp_default_result.<locals>.Foo.defaultTestResult       $T[[11r   c                 6    t         |           t        d      r{   r|   r~   s    r   r2   zSTest_TestCase.test_run_call_order__error_in_setUp_default_result.<locals>.Foo.setUp   r   r   )r   r   r    rr   r2   r9   r   s   @r   r!   r      s    2: :r   r!   )startTestRunr   r2   r   r   stopTestRunr   r-   rP   rK   r   r/   r   r!   s      @r   2test_run_call_order__error_in_setUp_default_resultz@Test_TestCase.test_run_call_order__error_in_setUp_default_result   sA    	:$&& 	: 	F/*r   c                     g }t        |      } G fddt        j                        g d} |      j                  |       | j	                  ||       y )Nc                   "     e Zd Z fdZ xZS )=Test_TestCase.test_run_call_order__error_in_test.<locals>.Fooc                 6    t         |           t        d      Nraised by Foo.testr,   r+   r}   r~   s    r   r+   zBTest_TestCase.test_run_call_order__error_in_test.<locals>.Foo.test       c4%'"#788r   r   r   r    r+   r9   r   s   @r   r!   r      s    9 9r   r!   )r   r2   r+   r   r7   r   r   r   s       @r   "test_run_call_order__error_in_testz0Test_TestCase.test_run_call_order__error_in_test   sK    v&	9$&& 	9
8F*r   c                     g } G fddt         j                        g d} |      j                          | j                  ||       y )Nc                   (     e Zd Zd Z fdZ xZS )LTest_TestCase.test_run_call_order__error_in_test_default_result.<locals>.Fooc                 ,    t        | j                        S r   r   r   s    r   rr   z^Test_TestCase.test_run_call_order__error_in_test_default_result.<locals>.Foo.defaultTestResult   r   r   c                 6    t         |           t        d      r   r   r~   s    r   r+   zQTest_TestCase.test_run_call_order__error_in_test_default_result.<locals>.Foo.test   r   r   r   r   r    rr   r+   r9   r   s   @r   r!   r      s    29 9r   r!   )r   r   r2   r+   r   r7   r   r   r   r   s      @r   1test_run_call_order__error_in_test_default_resultz?Test_TestCase.test_run_call_order__error_in_test_default_result   s@    	9$&& 	9GF*r   c                     g }t        |      } G fddt        j                        g d} |      j                  |       | j	                  ||       y )Nc                   "     e Zd Z fdZ xZS )?Test_TestCase.test_run_call_order__failure_in_test.<locals>.Fooc                 D    t         |           | j                  d       y r   r,   r+   r_   r~   s    r   r+   zDTest_TestCase.test_run_call_order__failure_in_test.<locals>.Foo.test       c4%'		./r   r   r   s   @r   r!   r      s    0 0r   r!   r   r2   r+   
addFailurer7   r   r   r   s       @r   $test_run_call_order__failure_in_testz2Test_TestCase.test_run_call_order__failure_in_test   sK    v&	0$&& 	0
:F*r   c                      G fddt         j                        g d}g } |      j                          | j                  ||       y )Nc                   (     e Zd Zd Z fdZ xZS )NTest_TestCase.test_run_call_order__failure_in_test_default_result.<locals>.Fooc                 ,    t        | j                        S r   r   r   s    r   rr   z`Test_TestCase.test_run_call_order__failure_in_test_default_result.<locals>.Foo.defaultTestResult   r   r   c                 D    t         |           | j                  d       y r   r   r~   s    r   r+   zSTest_TestCase.test_run_call_order__failure_in_test_default_result.<locals>.Foo.test   r   r   r   r   s   @r   r!   r      s    20 0r   r!   )r   r   r2   r+   r   r7   r   r   r   )r   r   r/   r!   s      @r   3test_run_call_order__failure_in_test_default_resultzATest_TestCase.test_run_call_order__failure_in_test_default_result   s@    	0$&& 	0IF*r   c                     g }t        |      } G fddt        j                         |      j                  |       g d}| j	                  ||       y )Nc                   "     e Zd Z fdZ xZS )ATest_TestCase.test_run_call_order__error_in_tearDown.<locals>.Fooc                 6    t         |           t        d      Nzraised by Foo.tearDownr,   r7   r}   r~   s    r   r7   zJTest_TestCase.test_run_call_order__error_in_tearDown.<locals>.Foo.tearDown      c4)+"#;<<r   )r   r   r    r7   r9   r   s   @r   r!   r     s    = =r   r!   )r   r2   r+   r7   r   r   r   r   s       @r   &test_run_call_order__error_in_tearDownz4Test_TestCase.test_run_call_order__error_in_tearDown  sM    v&	=$&& 	=
 	F *r   c                      G fddt         j                        g } |      j                          g d}| j                  ||       y )Nc                   (     e Zd Zd Z fdZ xZS )PTest_TestCase.test_run_call_order__error_in_tearDown_default_result.<locals>.Fooc                 ,    t        | j                        S r   r   r   s    r   rr   zbTest_TestCase.test_run_call_order__error_in_tearDown_default_result.<locals>.Foo.defaultTestResult  r   r   c                 6    t         |           t        d      r   r   r~   s    r   r7   zYTest_TestCase.test_run_call_order__error_in_tearDown_default_result.<locals>.Foo.tearDown  r   r   )r   r   r    rr   r7   r9   r   s   @r   r!   r     s    2= =r   r!   )r   r   r2   r+   r7   r   r   r   r   r   s      @r   5test_run_call_order__error_in_tearDown_default_resultzCTest_TestCase.test_run_call_order__error_in_tearDown_default_result  sA    	=$&& 	= F;*r   c                      G d dt         j                        }| j                  t              5   |d      j	                          d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zd Zd Zy)=Test_TestCase.test_run_call_order_default_result.<locals>.Fooc                     t               S r   )r	   r   s    r   rr   zOTest_TestCase.test_run_call_order_default_result.<locals>.Foo.defaultTestResult.  s    :<<r   c                      y r   r   r   s    r   r+   zBTest_TestCase.test_run_call_order_default_result.<locals>.Foo.test0  ro   r   N)r   r   r    rr   r+   r   r   r   r!   r   -  s    =r   r!   r+   )r:   r;   assertWarnsRuntimeWarningrP   ri   s     r   "test_run_call_order_default_resultz0Test_TestCase.test_run_call_order_default_result+  sG    	(## 	 n- 	KOO	 	 	s   AAc                 P    G d d       G fddt         j                        }| j                  t              5 } |d      j	                          d d d        | j                  dt        j                               | j                  dt        |j                               | j                  |j                  t               | j                  t              5 } |d      j	                          d d d        | j                  dt        |j                               | j                  dt        |j                               | j                  |j                  t               | j                  t              5 } |d      j	                          d d d        | j                  dt        |j                               | j                  dt        |j                               | j                  |j                  t               y # 1 sw Y   xY w# 1 sw Y    xY w# 1 sw Y   xY w)	Nc                       e Zd Zd Zy)GTest_TestCase.test_deprecation_of_return_val_from_test.<locals>.Nothingc                 
    |d u S r   r   )r   os     r   __eq__zNTest_TestCase.test_deprecation_of_return_val_from_test.<locals>.Nothing.__eq__9  s    Dy r   N)r   r   r    r   r   r   r   Nothingr   8  s    !r   r   c                   $    e Zd Zd Zd Z fdZy)CTest_TestCase.test_deprecation_of_return_val_from_test.<locals>.Fooc                      yNrg   r   r   s    r   r   zITest_TestCase.test_deprecation_of_return_val_from_test.<locals>.Foo.test1<  s    r   c              3      K   d y wr   r   r   s    r   r%   zITest_TestCase.test_deprecation_of_return_val_from_test.<locals>.Foo.test2>  s     s   c                             S r   r   )r   r   s    r   test3zITest_TestCase.test_deprecation_of_return_val_from_test.<locals>.Foo.test3@  s    y r   N)r   r   r    r   r%   r   )r   s   r   r!   r   ;  s    !r   r!   r   z3It is deprecated to return a value that is not Noner%   r   )r:   r;   r   DeprecationWarningrP   assertInstrwarningrK   filename__file__)r   r!   wr   s      @r   (test_deprecation_of_return_val_from_testz6Test_TestCase.test_deprecation_of_return_val_from_test6  s   	! 	!	!(## 	! 01 	QL	KSQRQZQZ^\gs199~.X.01 	QL	KSQRQZQZ^\gs199~.X.01 	QL	KSQRQZQZ^\gs199~.X.!	 		 		 	s#   HH8HHHH%c                      G fddt         j                         |      j                  |       | j                  ||       y )Nc                   "     e Zd Z fdZ xZS )6Test_TestCase._check_call_order__subtests.<locals>.Fooc           	      :   t         |           dD ]j  }| j                  |      5  |dk(  r| j                  d       dD ]1  }| j                  |      5  ||z  dk(  rt	        d      	 d d d        3 	 d d d        l dd	z   y # 1 sw Y   NxY w# 1 sw Y   xY w)
Nrg   rJ   rI   irg   failurerJ   rI   j   r   r   )r,   r+   subTestr_   r}   r   r   r   r!   r0   s      r   r+   z;Test_TestCase._check_call_order__subtests.<locals>.Foo.testW  s    c4%'" MA* M6 IIi0!' MA!%!2 M#$q5A:*67K*L$L $.M MMM MM AM M	M Ms#   .BB	*
BB
BB	r   r   s   @r   r!   r   V  s    
 
r   r!   r   r   ru   r/   expected_eventsr!   s       @r   _check_call_order__subtestsz)Test_TestCase._check_call_order__subtestsU  s7    	$&& 	( 	F1r   c                 L    g }t        |      }g d}| j                  |||       y )N)r   r2   r+   addSubTestFailureaddSubTestSuccessr   r   r   r   r7   r   )r   r   r   r/   ru   r   s       r   test_run_call_order__subtestsz+Test_TestCase.test_run_call_order__subtestsm  s-    v&M 	((Br   c                 L    g }t        |      }g d}| j                  |||       y )Nr   )r   r   r   s       r   $test_run_call_order__subtests_legacyz2Test_TestCase.test_run_call_order__subtests_legacyv  s,     $V,:((Br   c                      G fddt         j                         |      j                  |       | j                  ||       y )Nc                   "     e Zd Z fdZ xZS )>Test_TestCase._check_call_order__subtests_success.<locals>.Fooc           	          t         |           dD ]A  }| j                  |      5  dD ]  }| j                  |      5  	 d d d          	 d d d        C y # 1 sw Y   6xY w# 1 sw Y   ZxY w)N)rg   rJ   r   r   r   )r,   r+   r   r   s      r   r+   zCTest_TestCase._check_call_order__subtests_success.<locals>.Foo.test  s    c4%' %A* %!' %A!%!2 % $% %%% %%% %% %s"   A#A	
A#A A##A,	r   r   s   @r   r!   r         % %r   r!   r   r   s       @r   #_check_call_order__subtests_successz1Test_TestCase._check_call_order__subtests_success  s7    	%$&& 	% 	F1r   c                 d    g }t        |      }g dddgz  z   g dz   }| j                  |||       y )N)r   r2   r+   r   r   )r7   
addSuccessr   )r   r   r   s       r   %test_run_call_order__subtests_successz3Test_TestCase.test_run_call_order__subtests_success  sE    v& 3.//0<= 	00Jr   c                 L    g }t        |      }g d}| j                  |||       y )N)r   r2   r+   r7   r   r   )r   r   r   s       r   ,test_run_call_order__subtests_success_legacyz:Test_TestCase.test_run_call_order__subtests_success_legacy  s*    $V,.00Jr   c                     g }t        |      }d|_         G fddt        j                        g d} |      j	                  |       | j                  ||       y )NTc                   "     e Zd Z fdZ xZS )ATest_TestCase.test_run_call_order__subtests_failfast.<locals>.Fooc                 $   t         |           | j                  d      5  | j                  d       d d d        | j                  d      5  | j                  d       d d d        | j                  d       y # 1 sw Y   GxY w# 1 sw Y   'xY w)Nrg   r   r   rJ   )r,   r+   r   r_   r~   s    r   r+   zFTest_TestCase.test_run_call_order__subtests_failfast.<locals>.Foo.test  sz    c4%'\\A\& )IIi()\\A\& )IIi()		)$	) )) )s   A:B:BBr   r   s   @r   r!   r    r   r   r!   )r   r2   r+   r   r7   r   )r   failfastr   r-   rP   rK   r   s       @r   &test_run_call_order__subtests_failfastz4Test_TestCase.test_run_call_order__subtests_failfast  sS    v&	%$&& 	%AF*r   c                 
   g  G fddt         j                        }t        j                         }d|_        t        j                         j                  |      }|j                  |       g d}| j                  |       y )Nc                   ,    e Zd Z fdZ fdZ fdZy)1Test_TestCase.test_subtests_failfast.<locals>.Fooc                     | j                         5  j                  d       d d d        j                  d       y # 1 sw Y   xY w)Na1a2)r   r4   r   r/   s    r   test_az8Test_TestCase.test_subtests_failfast.<locals>.Foo.test_a  s9    \\^ (MM$'(d#( (s	   >Ac                     | j                         5  j                  d       d d d        | j                         5  | j                  d       d d d        j                  d       y # 1 sw Y   ExY w# 1 sw Y   'xY w)Nb1r   b2)r   r4   r_   r  s    r   test_bz8Test_TestCase.test_subtests_failfast.<locals>.Foo.test_b  sc    \\^ (MM$'(\\^ )IIi()d#	( () )s   A(A4(A14A=c                 (    j                  d       y )Ncr4   r  s    r   test_cz8Test_TestCase.test_subtests_failfast.<locals>.Foo.test_c  s    c"r   N)r   r   r    r  r  r  r/   s   r   r!   r    s    $
$#r   r!   T)r  r  r  )r:   r;   rt   r  
TestLoaderloadTestsFromTestCaserP   rK   )r   r!   ru   suiter   r/   s        @r   test_subtests_failfastz$Test_TestCase.test_subtests_failfast  sk    	#(## 	#  $$&##%;;C@		&%*r   c                     g  G fddt         j                        } |d      j                          | j                  ddg       y )Nc                       e Zd Z fdZy).Test_TestCase.test_subtests_debug.<locals>.Fooc                     j                  d       | j                         5  j                  d       d d d        y # 1 sw Y   y xY w)N	test case	subtest 1)r4   r   r  s    r   r  z5Test_TestCase.test_subtests_debug.<locals>.Foo.test_a  s9    k*\\^ /MM+./ / /s	   >AN)r   r   r    r  r  s   r   r!   r     s    /r   r!   r  r"  r#  )r:   r;   debugrK   )r   r!   r/   s     @r   test_subtests_debugz!Test_TestCase.test_subtests_debug  sA    	/(## 	/ 	H+{!;<r   c                      G d dt         j                        }| j                   |d      j                  t               y )Nc                       e Zd Zd Zy)9Test_TestCase.test_failureException__default.<locals>.Fooc                      y r   r   r   s    r   r+   z>Test_TestCase.test_failureException__default.<locals>.Foo.test  ro   r   Nrf   r   r   r   r!   r(    rq   r   r!   r+   )r:   r;   assertIsrN   AssertionErrorri   s     r   test_failureException__defaultz,Test_TestCase.test_failureException__default  s.    	(## 	 	c&k22NCr   c                     g }t        |      } G d dt        j                        }| j                   |d      j                  t
                |d      j                  |       g d}| j                  ||       y )Nc                       e Zd Zd ZeZy)MTest_TestCase.test_failureException__subclassing__explicit_raise.<locals>.Fooc                     t               r   )r}   r   s    r   r+   zRTest_TestCase.test_failureException__subclassing__explicit_raise.<locals>.Foo.test  s
    "n$r   Nr   r   r    r+   r}   rN   r   r   r   r!   r/    s    %  ,r   r!   r+   r   r   r   r   r:   r;   r*  rN   r}   rP   rK   r   r/   ru   r!   r   s        r   2test_failureException__subclassing__explicit_raisez@Test_TestCase.test_failureException__subclassing__explicit_raise  d    v&	,(## 	, 	c&k22LA 	F:*r   c                     g }t        |      } G d dt        j                        }| j                   |d      j                  t
                |d      j                  |       g d}| j                  ||       y )Nc                       e Zd Zd ZeZy)MTest_TestCase.test_failureException__subclassing__implicit_raise.<locals>.Fooc                 &    | j                  d       y Nr   )r_   r   s    r   r+   zRTest_TestCase.test_failureException__subclassing__implicit_raise.<locals>.Foo.test	  s    		% r   Nr1  r   r   r   r!   r9    s    !  ,r   r!   r+   r2  r3  r4  s        r   2test_failureException__subclassing__implicit_raisez@Test_TestCase.test_failureException__subclassing__implicit_raise  r6  r   c                 `     G d dt         j                        } |       j                          y )Nc                       e Zd Zd Zy)%Test_TestCase.test_setUp.<locals>.Fooc                      y r   r   r   s    r   r   z-Test_TestCase.test_setUp.<locals>.Foo.runTest  ro   r   Nrp   r   r   r   r!   r?    rq   r   r!   )r:   r;   r2   ri   s     r   
test_setUpzTest_TestCase.test_setUp  s!    	(## 	
 	r   c                 `     G d dt         j                        } |       j                          y )Nc                       e Zd Zd Zy)(Test_TestCase.test_tearDown.<locals>.Fooc                      y r   r   r   s    r   r   z0Test_TestCase.test_tearDown.<locals>.Foo.runTest!  ro   r   Nrp   r   r   r   r!   rD     rq   r   r!   )r:   r;   r7   ri   s     r   test_tearDownzTest_TestCase.test_tearDown  s"    	(## 	
 	r   c                      G d dt         j                        }| j                   |       j                         t               y )Nc                       e Zd Zd Zy)"Test_TestCase.test_id.<locals>.Fooc                      y r   r   r   s    r   r   z*Test_TestCase.test_id.<locals>.Foo.runTest/  ro   r   Nrp   r   r   r   r!   rI  .  rq   r   r!   )r:   r;   assertIsInstancerL   r   ri   s     r   test_idzTest_TestCase.test_id-  s.    	(## 	 	cehhj#.r   c                     g t               G fddt        j                        } |d      j                         }| j	                  |       g d}| j                  |       y )Nc                   "    e Zd ZfdZ fdZy);Test_TestCase.test_run__uses_defaultTestResult.<locals>.Fooc                 (    j                  d       y r*   r  r  s    r   r+   z@Test_TestCase.test_run__uses_defaultTestResult.<locals>.Foo.test>  s    f%r   c                     S r   r   )r   defaultResults    r   rr   zMTest_TestCase.test_run__uses_defaultTestResult.<locals>.Foo.defaultTestResultA  s	    $$r   N)r   r   r    r+   rr   )rR  r/   s   r   r!   rO  =  s    &%r   r!   r+   )r   r   r+   r   r   r   )r   r:   r;   rP   r*  rK   )r   r!   ru   r   rR  r/   s       @@r    test_run__uses_defaultTestResultz.Test_TestCase.test_run__uses_defaultTestResult9  s[    %f-	%(## 	% V"fm,'*r   c                      G d dt         j                        }t        j                         } |d      j                  |      }| j	                  ||       y )Nc                       e Zd Zd Zy)9Test_TestCase.test_run__returns_given_result.<locals>.Fooc                      y r   r   r   s    r   r+   z>Test_TestCase.test_run__returns_given_result.<locals>.Foo.testQ  ro   r   Nrf   r   r   r   r!   rV  P  rq   r   r!   r+   )r:   r;   rt   rP   r*  )r   r!   ru   retvals       r   test_run__returns_given_resultz,Test_TestCase.test_run__returns_given_resultN  sD    	(## 	 $$&V(ff%r   c                     t        j                         t        j                          G fddt         j                        }  |d            }| j                  |       y )Nc                        e Zd Zd Z fdZy)KTest_TestCase.test_call__invoking_an_instance_delegates_to_run.<locals>.Fooc                      y r   r   r   s    r   r+   zPTest_TestCase.test_call__invoking_an_instance_delegates_to_run.<locals>.Foo.testa  ro   r   c                 ,    | j                  |       S r   )r*  )r   ru   resultIn	resultOuts     r   rP   zOTest_TestCase.test_call__invoking_an_instance_delegates_to_run.<locals>.Foo.rund  s    fh/  r   N)r   r   r    r+   rP   )r_  r`  s   r   r!   r\  `  s    !r   r!   r+   )r:   rt   r;   r*  )r   r!   rX  r_  r`  s      @@r   0test_call__invoking_an_instance_delegates_to_runz>Test_TestCase.test_call__invoking_an_instance_delegates_to_run\  sQ    &&('')		!(## 	! VX&fi(r   c                 B    | j                  | j                                y r   )assertIsNoneshortDescriptionr   s    r   $testShortDescriptionWithoutDocstringz2Test_TestCase.testShortDescriptionWithoutDocstringm  s    $//12r   rJ   z)Docstrings are omitted with -O2 and abovec                 D    | j                  | j                         d        y)z7Tests shortDescription() for a method with a docstring.NrK   rd  r   s    r   (testShortDescriptionWithOneLineDocstringz6Test_TestCase.testShortDescriptionWithOneLineDocstringp  s"     	%%'I	Kr   c                 D    | j                  | j                         d       y)zTests shortDescription() for a method with a longer docstring.

        This method ensures that only the first line of a docstring is
        returned used in the short description, no matter how long the
        whole thing is.
        z>Tests shortDescription() for a method with a longer docstring.Nrg  r   s    r   *testShortDescriptionWithMultiLineDocstringz8Test_TestCase.testShortDescriptionWithMultiLineDocstringx  s#     	%%'	r   c                 D    | j                  | j                         d       y)z
            Tests shortDescription() whitespace is trimmed, so that the first
            line of nonwhite-space text becomes the docstring.
        zATests shortDescription() whitespace is trimmed, so that the firstNrg  r   s    r   &testShortDescriptionWhitespaceTrimmingz4Test_TestCase.testShortDescriptionWhitespaceTrimming  s"     	!!#O	Qr   c                      G d dt                               }}| j                  ||k(         dfd	}| j                  |       | j                  ||       y )Nc                       e Zd ZdZy)7Test_TestCase.testAddTypeEqualityFunc.<locals>.SadSnakez)Dummy class for test_addTypeEqualityFunc.N)r   r   r    r8   r   r   r   SadSnakero    s    ;r   rp  c                 H    t        |       t        |      cxk(  xr k(  S c S r   )rs   )abmsgrp  s      r   AllSnakesCreatedEqualzDTest_TestCase.testAddTypeEqualityFunc.<locals>.AllSnakesCreatedEqual  s!    7d1g11111r   r   )objectassertFalseaddTypeEqualityFuncrK   )r   s1s2ru  rp  s       @r   testAddTypeEqualityFuncz%Test_TestCase.testAddTypeEqualityFunc  sT    	<v 	<XZBr"	2  +@AR r   c                     t               }| j                  ||       | j                  | j                  | j                  |t                      y r   )rv  r*  rM   rN   r   things     r   testAssertIszTest_TestCase.testAssertIs  s7    eU#$//vxPr   c                     t               }| j                  |t                      | j                  | j                  | j                  ||       y r   )rv  assertIsNotrM   rN   r}  s     r   testAssertIsNotzTest_TestCase.testAssertIsNot  s;    )$//1A1A5%Pr   c                     g }| j                  |t               | j                  | j                  | j                   |t               y r   )rK  listrM   rN   dictr}  s     r   testAssertIsInstancez"Test_TestCase.testAssertIsInstance  s:    eT*$//1F1F	'r   c                     g }| j                  |t               | j                  | j                  | j                   |t               y r   )assertNotIsInstancer  rM   rN   r  r}  s     r   testAssertNotIsInstancez%Test_TestCase.testAssertNotIsInstance  s:      -$//1I1I	'r   c                    dddd}| j                  dd       | j                  dg d       | j                  d	|       | j                  d
d       | j                  dg d       | j                  d|       | j                  | j                  | j                   dd       | j                  | j                  | j                   dg d       | j                  | j                  | j                   d|       | j                  | j                  | j                  dd       | j                  | j                  | j                  dg d       | j                  | j                  | j                  d|       y )Nbananagrassfish)monkeycowsealrr  abcrJ   r   r  dr   otterx   elephantr  rg   r  )r   assertNotInrM   rN   )r   animalss     r   testAssertInzTest_TestCase.testAssertIn  s*   %gvFc5!a#h(e$I&'*$//UK$//9M$//
!	# 	$//1A1A3N$//1A1A1iP$//1A1A5!	#r   c           	         di i fg g ft               t               ft               t               fg}|D ]A  \  }}	 | j                  ||       	 | j                  ||d       	 | j                  ||d       C d	g fi t               ft        d
dg      t        d
dg      ft        d
dg      t        ddg      ft        dd
g      t        dd
g      fg}|D ]  \  }}| j                  | j                  | j                  ||       | j                  | j                  | j                  ||d       | j                  | j                  | j                  ||d        y # | j                  $ r | j	                  d|d|d       Y 6w xY w# | j                  $ r | j	                  d|d|d       Y Ow xY w# | j                  $ r | j	                  d|d|d       Y w xY w)N)r   r   zassertEqual(z, z) failedr   rt  z) with msg= failedz) with third parameter failedr   r  rg   rJ      rI   )set	frozensetrK   rN   r_   rM   )r   equal_pairsrr  rs  unequal_pairss        r   testAssertEqualzTest_TestCase.testAssertEqual  s   RRik*,   	"DAqA  A&K  A5 1"  Au-	"$ BxCE{QqE
Iqe,-1Q% #qe*-QqE
C1J') " 	)DAqd33T5E5Eq!Ld33T5E5Eq!#%d33T5E5Eq!"'  )		)% (( A		!Q?@A (( K		AqIJK (( "		a! ""s5   EF!F3'FF'F0/F03'GGc                    | j                  g g        | j                  dd       | j                  g d       ddg g}g }| j                  t        j
                  j                  | j                   ||       | j                  t        j
                  j                  | j                   t        |      t        |             | j                  t        j
                  j                  | j                  |t        |             |j                  |       | j                  ||       | j                  t        |      t        |             | j                  |t        |             | j                  t        |      |       | j                  | j                  | j                   |t        |             | j                  | j                  | j                  t        |      |       | j                  | j                  | j                   d |       | j                  | j                  | j                  d t        |             | j                  | j                  | j                  d t        |             | j                  | j                  | j                   dd       | j                  | j                  | j                  dd       | j                  | j                  | j                  dd       | j                  i i        ddi}i }| j                  t        j
                  j                  | j                  ||       |j                  |       | j                  ||       d|d<   | j                  t        j
                  j                  | j                  ||d       | j                  | j                  | j                  d |       | j                  | j                  | j                  g |       | j                  | j                  | j                  dd       y )Nr   r   rr  rg   r  zThese are unequal)assertListEqualassertTupleEqualassertSequenceEqualrM   r:   r;   rN   tupleextendassertDictEqualupdate)r   rr  rs  r  r  s        r   testEqualityzTest_TestCase.testEquality  sE   R$b"%  R(RL(++<<..1	6(++<<..a%(	D(++<<22AuQx	A 	
Q"eAha1  E!H-  q1-$//1E1EU1X	'$//1F1F(A	'$//1E1EtQO$//1F1F(	$$//1I1Ia	*$//1E1Eq!L$//1F1F1M$//1I1IQ	  	R$1J(++<<..1	6 	
Q"#(++<<..16I	K 	$//1E1EtQO$//1E1Er1M$//1E1Eq!Lr   c                    | j                  | j                  d       dddz  z   }dddz  z   }dj                  t        j                  t        j                  |      j                         t        j                  |      j                                     }t        j                  j                  t        |      dz   fz  }t        |      dz  | _        	 | j                  ||       | j                  d	       | j!                  t              t        |             | j#                  ||       t        |      dz  | _        	 | j                  ||       | j                  d	       | j%                  t        |      t        |             | j'                  ||       d | _        	 | j                  ||       | j                  d	       | j%                  t        |      t        |             | j'                  ||       y # | j                  $ r}|j                  d
   }Y d }~)d }~ww xY w# | j                  $ r}|j                  d
   }Y d }~d }~ww xY w# | j                  $ r}|j                  d
   }Y d }~d }~ww xY w)Ni  rr  r  i   rs  
rg   rJ   z!assertSequenceEqual did not fail.r   )rK   maxDiffjoindifflibndiffpprintpformat
splitlinesr:   caseDIFF_OMITTEDlenr  r_   rN   args
assertLessr   assertGreaterr  )r   seq1seq2diffomittedert  s          r   testAssertSequenceEqualMaxDiffz,Test_TestCase.testAssertSequenceEqualMaxDiff"  s	   t,S5[ S5[ yyv~~d';'F'F'H'-~~d';'F'F'HJ K --,,D	A/??4y!|	;$$T40 II9:C#d),gs#4y1}	;$$T40 II9:3s8SY/#&	;$$T40 II9:3s8SY/#&3 $$ 	&&)C	 $$ 	&&)C	 $$ 	&&)C	sH   G: ?H&  I :H#	HH#&I5I		II9 I44I9c                 X   d| _         | j                  dd      }t        j                  j                  t        d      z  }| j                  |d|z          d | _         | j                  dd      }| j                  |d       d| _         | j                  dd      }| j                  |d       y )Nrg   r   barfoobarr  )r  _truncateMessager:   r  r  r  rK   )r   messager  s      r   testTruncateMessagez!Test_TestCase.testTruncateMessageJ  s    ''u5--,,s5z9%'/2''u5(+''u5(+r   c                     t        j                  d      }d }||_        	 |j                  i ddi       | j	                  d       y # | j
                  $ r%}| j                  t        |      d       Y d }~y d }~ww xY w)NrK   c                      yr;  r   rt  r  s     r   truncatez<Test_TestCase.testAssertDictEqualTruncates.<locals>.truncateZ      r   rg   r   zassertDictEqual did not failr   )r:   r;   r  r  r_   rN   rK   r   r   r+   r  r  s       r   testAssertDictEqualTruncatesz*Test_TestCase.testAssertDictEqualTruncatesX  sv      /	 (	6  aV, II45 $$ 	,SVU++	,s   A A;A66A;c                     t        j                  d      }d }||_        	 |j                  dd       | j	                  d       y # | j
                  $ r%}| j                  t        |      d       Y d }~y d }~ww xY w)NrK   c                      yr;  r   r  s     r   r  zATest_TestCase.testAssertMultiLineEqualTruncates.<locals>.truncatef  r  r   r   r  z!assertMultiLineEqual did not fail)r:   r;   r  assertMultiLineEqualr_   rN   rK   r   r  s       r   !testAssertMultiLineEqualTruncatesz/Test_TestCase.testAssertMultiLineEqualTruncatesd  sr      /	 (	;%%eU3 II9: $$ 	,SVU++	,s   A A9A44A9c                 p     j                   j                  d       d  _         j                  d _         j                   fd       d} j	                   j
                        5 } j                  |dz   |dz          d d d         j                  dt        j                                j                  |dz   |dz          d}d	 } j                  | _	         j                   fd
       |dz   |dz   }} j	                   j
                        5 } j                  ||       d d d         j                  dt        |j                                j                  t        |j                        |d|        j                  |dz   |dz          y # 1 sw Y   xY w# 1 sw Y   ~xY w)Ni       c                      t        d       S N_diffThresholdsetattrold_thresholdr   s   r   <lambda>z=Test_TestCase.testAssertEqual_diffThreshold.<locals>.<lambda>y      .> N r   xxxxxxxxxxxxxxxxrr  rs  ^@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc                     t        d      )Nzthis should not be raised)SystemError)r  r  s     r   explodingTruncationzHTest_TestCase.testAssertEqual_diffThreshold.<locals>.explodingTruncation  s    9::r   c                      t        d       S )Nr  r  )old_truncater   s   r   r  z=Test_TestCase.testAssertEqual_diffThreshold.<locals>.<lambda>  s    .@, O r   z != )rK   r  r  
addCleanuprM   rN   r   r   	exceptionr  r  )r   scmr  ry  rz  r  r  s   `     @@r   testAssertEqual_diffThresholdz+Test_TestCase.testAssertEqual_diffThresholdp  s   ,,e4 ++"NO t445 	/QWa#g.	/c3r||,-S!c'* 	;,, 3OPS!c'Bt445 	%R$	%c",,/0R\\*"b,ABS!c'*+	/ 	/"	% 	%s   ,FF,F),F5c                      j                   d _          j                   fd       d}|dz   |dz   }} j                   j                        5 } j	                  ||       d d d        d} j	                  t        j                        d|d|d	        j	                  |dz   |dz          d
}|dz   |z   |dz   |z   }} j                   j                        5 } j	                  ||       d d d        d} j	                  t        |j                        d|d|d|d|d	       d}|dz   |z   |dz   |z   }} j                   j                        5 } j	                  ||       d d d        d}d} j	                  t        |j                        d|d|d|d|d	       y # 1 sw Y   KxY w# 1 sw Y   xY w# 1 sw Y   YxY w)Nr   c                      t        d       S r  r  r  s   r   r  z7Test_TestCase.testAssertEqual_shorten.<locals>.<lambda>  r  r   dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrr  rs  zKxxxx[35 chars]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'za' != 'zb'2yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzxxxx[85 chars]xxxxxxxxxxxz' != 'dyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzxxxx[91 chars]xxxxxz6yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy[56 chars]yyyy)r  r  rM   rN   rK   r   r  )	r   r  ry  rz  r  r  pr  r  s	   `       @r   testAssertEqual_shortenz%Test_TestCase.testAssertEqual_shorten  s   ++NOS!c'Bt445 	%R$	%'R\\*1,EFS!c'*S1a#gkBt445 	%R$	%'R\\*Aq!Q,OPS1a#gkBt445 	%R$	%!'R\\*Aq!Q,OP'	% 	%	% 	%	% 	%s$   F. F;G.F8;GGc                    t               }| j                  g dg d       | j                  g dg d       | j                  ||dddg|dd|df       | j                  g dg d       | j                  | j                  | j                  d	dgdgd
z  z   d	gd
z  ddgz          | j                  | j                  | j                  g dg d       | j                  | j                  | j                  dgddg       | j                  | j                  | j                  ddgdg       | j                  | j                  | j                  g dddg       | j                  d	dgddgdgdddgd	dgg       | j                  t	        d	dg ddg      t	        d	dg ddg             | j                  | j                  | j                  g t
        dd	ddt               g       | j                  dd	iddigddidd	ig       | j                  d	dt
        g gt
        g dd	g       | j                  | j                  | j                  g t
        g dd	ddt               g       | j                  | j                  | j                  d	ggdgg       | j                  | j                  | j                  g ddd	g       | j                  | j                  | j                  g dg d       | j                  | j                  | j                  d	ddid dgddidd g       ddhd	dhg}|d d d   }| j                  ||       t        t        j                  j                  dd            }h d}| j                  ||       t        j                  j                  g gg       }| j                  |d	dg fg       t        t        j                  j                  dd            }h d}| j                  ||       y )Nr   )rI   rJ   rg   )r   r  baz)r  r  r   rJ   rI   )rg   2rr  rr  )rr  r  Trr  rg   d   )rr  r  Trg   
      )r  r  r  r  r   Fr  y              @y               @rr  rs  )rg   rg   rJ   )rg   rg   r  rr  rr  )r  r  Trr  Taaabccdabbbcce>   r   rg   r  rg   r   r  rg   rI   rs  rI   rg   rr  )rv  assertCountEqualrM   rN   iterdivmodr  r  r:   util_count_diff_all_purposerK   _count_diff_hashable)r   rr  rs  diffsr   s        r   testAssertCountEqualz"Test_TestCase.testAssertCountEqual  s   Hi335JKq!Q1o1aA?02GH$//1F1Fa&A39,qcCi1a&.@	B$//1F1F,.A	C$//1F1F$R	*$//1F1Fr(RD	*$//1F1F&R	2 	1v1vq1EAq6Aq63JKdAq"a#34"Aq"a#34	6 	$//1F1FvsAr2y{C	E 	Qx#q2c1XQx4HIq#vr2VRa4HI$//1F1Fvr32r35A	C$//1F1F3%1#	( 	$//1F1F#aV	-$//1F1F/1F	H$//1F1FsAhd3sAhd5K	M
 UQqENddGa# HMM99)YOP?)55rdB?!Q-HMM66y)LM?)r   c                    t               }t               }| j                  ||       | j                  | j                  | j                  d |       | j                  | j                  | j                  g |       | j                  | j                  | j                  |d        | j                  | j                  | j                  |g        t        dg      }t               }| j                  | j                  | j                  ||       t        dg      }t        dg      }| j                  ||       t        dg      }t        ddg      }| j                  | j                  | j                  ||       t        dg      }t	        ddg      }| j                  | j                  | j                  ||       t        ddg      }t	        ddg      }| j                  ||       t               }d}| j                  | j                  | j                  ||       | j                  | j                  | j                  ||       t        ddg      }t        dg      }| j                  | j                  | j                  ||       y )Nrr  rs  r   )r   rg   r   )r  r  )r  assertSetEqualrM   rN   r  )r   set1set2s      r   testAssertSetEqualz Test_TestCase.testAssertSetEqual  s   uuD$'$//1D1DdDQ$//1D1Db$O$//1D1DdDQ$//1D1DdBOC5zu$//1D1DdDQC5zC5zD$'C5zC:$//1D1DdDQC5z#s$$//1D1DdDQC:#s$D$'u$//1D1DdDQ$//1D1DdDQ FF#$F8}$//1D1DdDQr   c                 
   | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j	                  | j
                  | j                   dd       | j	                  | j
                  | j                   dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j	                  | j
                  | j                   dd       | j	                  | j
                  | j                   dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j	                  | j
                  | j                   dd       | j	                  | j
                  | j                   dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j	                  | j
                  | j                   dd       | j	                  | j
                  | j                   dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       | j	                  | j
                  | j                  dd       y )	NrJ   rg   g?g      ?bugants   bugs   ant)r  assertGreaterEqualr  assertLessEqualrM   rN   r   s    r   testInequalityzTest_TestCase.testInequality  st   1a 1%1%1Q"Q"$//1C1CQJ$//1C1CQJ$//1H1H!QO$//!QG$//!QG$//1E1Eq!L 	3$S)S)S!S#&S#&$//1C1CS#N$//1C1CS#N$//1H1H#sS$//#sK$//#sK$//1E1EsCP 	5%(u-u-u%UE*UE*$//1C1CUER$//1C1CUER$//1H1H%QVW$//%O$//%O$//1E1EueT 	66*//'VV,VV,$//1C1CVVT$//1C1CVVT$//1H1H& 	"$//&&Q$//&&Q$//1E1EvvVr   c                     d}d}d}d | _         	 | j                  ||       y # | j                  $ r:}t        |      j	                  dd      d   }| j                  ||       Y d }~y d }~ww xY w)Nzxhttp://www.python.org/doc/2.3/lib/module-unittest.html
test case
    A test case is the smallest unit of testing. [...]
zhttp://www.python.org/doc/2.4.1/lib/module-unittest.html
test case
    A test case is the smallest unit of testing. [...] You may provide your
    own implementation that does not subclass from TestCase, of course.
a  - http://www.python.org/doc/2.3/lib/module-unittest.html
?                             ^
+ http://www.python.org/doc/2.4.1/lib/module-unittest.html
?                             ^^^
  test case
-     A test case is the smallest unit of testing. [...]
+     A test case is the smallest unit of testing. [...] You may provide your
?                                                       +++++++++++++++++++++
+     own implementation that does not subclass from TestCase, of course.
r  rg   )r  r  rN   r   splitrK   r   sample_textrevised_sample_textsample_text_errorr  errors         r   testAssertMultiLineEqualz&Test_TestCase.testAssertMultiLineEqualQ  s{    

 	7%%k3FG$$ 	7FLLq)!,E.66	7s   " A+0A&&A+c                     d}d}d}	 | j                  ||       y # | j                  $ r:}t        |      j                  dd      d   }| j                  ||       Y d }~y d }~ww xY w)Nzladen swallows fly slowlyunladen swallows fly quicklyzr- laden swallows fly slowly
?                    ^^^^
+ unladen swallows fly quickly
? ++                   ^^^^^
r  rg   rK   rN   r   r  r  s         r   testAssertEqualSingleLinez'Test_TestCase.testAssertEqualSingleLinep  sn    1<	7[*=>$$ 	7FLLq)!,E.66	7    A$0AA$c                     d}d}d}	 | j                  ||       y# | j                  $ r:}t        |      j                  dd      d   }| j                  ||       Y d}~yd}~ww xY w)zVerify when there is an empty string involved, the diff output
         does not treat the empty string as a single empty line. It should
         instead be handled as a non-line.
         r  z+ unladen swallows fly quickly
r  rg   Nr  r  s         r   testAssertEqualwithEmptyStringz,Test_TestCase.testAssertEqualwithEmptyString  sp    
 <	7[*=>$$ 	7FLLq)!,E.66	7r  c                     d}d}d}	 | j                  ||       y# | j                  $ r:}t        |      j                  dd      d   }| j                  ||       Y d}~yd}~ww xY w)zVerifying format of diff output from assertEqual involving strings
         with multiple lines, but missing the terminating newline on both.
        zladen swallows
fly sloelyladen swallows
fly slowlyzA  laden swallows
- fly sloely
?        ^
+ fly slowly
?        ^
r  rg   Nr  r  s         r   4testAssertEqualMultipleLinesMissingNewlineTerminatorzBTest_TestCase.testAssertEqualMultipleLinesMissingNewlineTerminator  sp     3:	7[*=>$$ 	7FLLq)!,E.66	7r  c                     d}d}d}	 | j                  ||       y# | j                  $ r:}t        |      j                  dd      d   }| j                  ||       Y d}~yd}~ww xY w)zVerifying format of diff output from assertEqual involving strings
         with multiple lines and mismatched newlines. The output should
         include a - on it's own line to indicate the newline difference
         between the two strings
        zladen swallows
fly sloely
r"  zD  laden swallows
- fly sloely
?        ^
+ fly slowly
?        ^
- 
r  rg   Nr  r  s         r   9testAssertEqualMultipleLinesMismatchedNewlinesTerminatorszGTest_TestCase.testAssertEqualMultipleLinesMismatchedNewlinesTerminators  sp     5:	7[*=>$$ 	7FLLq)!,E.66	7r  c                 (    t         j                  j                  r fd}nd } |       5   j                   j                        5   j                  dd       d d d        d d d         |       5   j                  dd       d d d        ddg}ddg} |       5   j                   j                        5   j                  ||       d d d        d d d         |       5   j                   j                        5   j                  t        |      t        |             d d d        d d d         |       5   j                   j                        5   j                  |t        |             d d d        d d d         |       5   j                   j                        5   j                  t        |      |       d d d        d d d         |       5   j                   j                        5   j                  dd       d d d        d d d         |       5   j                   j                        5   j                  t        |      t        |             d d d        d d d         j                   j                        5   j                  |t        |             d d d         j                   j                        5   j                  t        |      |       d d d        ddg}dg} j                   j                        5   j                  ||       d d d         j                   j                        5   j                  t        |      t        |             d d d         j                   j                        5   j                  |t        |             d d d         j                   j                        5   j                  t        |      |       d d d         j                   j                        5   j                  t        |      t        |             d d d        dg}ddg} j                   j                        5   j                  ||       d d d         j                   j                        5   j                  t        |      t        |             d d d         j                   j                        5   j                  |t        |             d d d         j                   j                        5   j                  t        |      |       d d d         j                   j                        5   j                  t        |      t        |             d d d         |       5   j                   j                        5   j                  ddiddi       d d d        d d d         j                   j                        5   j                  i ddi       d d d         j                   j                        5   j                  ddii        d d d         j                   j                        5   j                  ddgg d       d d d         |       5   j                  ddgddg       d d d         |       5   j                   j                        5   j                  ddgddg       d d d        d d d         |       5   j                   j                        5   j                  ddg gddg g       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   TxY w# 1 sw Y   YxY w# 1 sw Y   xY w# 1 sw Y   $xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   SxY w# 1 sw Y   !xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   RxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   HxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ZxY w# 1 sw Y   AxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                  0     j                  t        d      S )Nz#Comparison between bytes and string)assertWarnsRegexBytesWarningr   s   r   bytes_warningz=Test_TestCase.testEqualityBytesWarning.<locals>.bytes_warning  s    ,,\AC Cr   c                  *    t        j                         S r   )
contextlib	ExitStackr   r   r   r*  z=Test_TestCase.testEqualityBytesWarning.<locals>.bytes_warning  s    !++--r   rr     ar   )r.  r.  r.  )sysflagsr*  rM   rN   rK   assertNotEqualr  r  r  r  r  r  r  r  )r   r*  rr  rs  s   `   r   testEqualityBytesWarningz&Test_TestCase.testEqualityBytesWarning  s   99""C. _ 	(d//0E0EF 	(S$'	( 	(_ 	+T*	+ HI_ 	'd//0E0EF 	'  A&	' 	'_ 	6d//0E0EF 	6!!%(E!H5	6 	6_ 	2d//0E0EF 	2$$Qa1	2 	2_ 	2d//0E0EF 	2$$U1Xq1	2 	2_ 	0d//0E0EF 	0$$S$/	0 	0_ 	0d//0E0EF 	0AA/	0 	0 t445 	.  E!H-	.t445 	/!!%(A.	/ ICt445 	'  A&	't445 	6!!%(E!H5	6t445 	2$$Qa1	2t445 	2$$U1Xq1	2t445 	0AA/	0 CIt445 	'  A&	't445 	6!!%(E!H5	6t445 	2$$Qa1	2t445 	2$$U1Xq1	2t445 	0AA/	0 _ 	6d//0E0EF 	6  #qD!95	6 	6t445 	0  dAY/	0t445 	0  $B/	0 t445 	D!!4,0BC	D_ 	<!!3+T{;	<_ 	<d//0E0EF 	<!!3*tTl;	< 	<_ 	Dd//0E0EF 	D!!3R.4r2BC	D 	D 	DA	( 	( 	( 	(	+ 	+
	' 	' 	' 	'	6 	6 	6 	6	2 	2 	2 	2	2 	2 	2 	2	0 	0 	0 	0	0 	0 	0 	0	. 	.	/ 	/
	' 	'	6 	6	2 	2	2 	2	0 	0
	' 	'	6 	6	2 	2	2 	2	0 	0	6 	6 	6 	6	0 	0	0 	0	D 	D	< 	<	< 	< 	< 	<	D 	D 	D 	Ds3  ]\4]2]](8]]("^>%]5#^:^^2^	^6%^)^6_4___*:%__*
_7	``%``+`8%aa%aa,a9%b
b &b=b (b- b:c>c$c. c!c..d
c;#d4\>	9]]]]%	 ]((]25]?	:^^^	^^&)^3	.^66_ _	___'	"_**_47````(+`58aaaa),a69bbb	b  b*-b7:ccc!c+	&c..c8;d	 ddc                     | j                  d        | j                  | j                  | j                   d       | j                  d       | j                  | j                  | j                  d        y )NFzDjZoPloGears on Rails)rc  rM   rN   assertIsNotNoner   s    r   testAssertIsNonezTest_TestCase.testAssertIsNone  s[    $$//1B1BEJ45$//1E1EtLr   c                 x    | j                  dd       | j                  | j                  | j                   dd       y )N
asdfabasdfzab+saaasaaaa)assertRegexrM   rN   r   s    r   testAssertRegexzTest_TestCase.testAssertRegex  s5    v.$//1A1A!7	,r   c                 2    G d dt               fd}| j                  |       | j                  t        f|       | j                  t        t        dd       | j                  | j                        5  | j                  d        d d d        | j                  t
              5  | j                  d        d d d        | j                        5  | j                  t        |       d d d        y # 1 sw Y   jxY w# 1 sw Y   FxY w# 1 sw Y   y xY w)Nc                       e Zd Zy)=Test_TestCase.testAssertRaisesCallable.<locals>.ExceptionMockNr   r   r    r   r   r   ExceptionMockr>        r   r@  c                        d      N	We expectr   r@  s   r   Stubz4Test_TestCase.testAssertRaisesCallable.<locals>.Stub      ,,r   19   basec                       yNr   r   r   r   r   r  z8Test_TestCase.testAssertRaisesCallable.<locals>.<lambda>      r   )	ExceptionrM   r`   intrN   	TypeErrorr   rF  r@  s     @r   testAssertRaisesCallablez&Test_TestCase.testAssertRaisesCallable  s    	I 		--.:}5t<*c4a8t445 	8mY7	8 y) 	3mT2	3 }- 	0j$/	0 	0	8 	8	3 	3	0 	0s$   8C5)DD5C>D
Dc                 n    G d dt               fd}| j                        5   |        d d d        | j                  t        f      5 } |        d d d        | j                  j                         | j                  |j                  j                  d   d       | j                  t              5  t        dd       d d d        | j                  | j                        5  | j                        5  	 d d d        d d d        | j                  | j                  d	      5  | j                  d	
      5  	 d d d        d d d        | j                  t        d	      5  | j                  d      5  	 d d d        d d d        | j                        5  | j                  t        |       d d d        y # 1 sw Y   xY w# 1 sw Y   uxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                       e Zd Zy)<Test_TestCase.testAssertRaisesContext.<locals>.ExceptionMockNr?  r   r   r   r@  rV  (  rA  r   r@  c                        d      rC  r   rE  s   r   rF  z3Test_TestCase.testAssertRaisesContext.<locals>.Stub*  rG  r   r   rD  rH  rI  rJ  r  r  *   r  )rO  rM   r`   rK  r  rK   r  rP  rN   assertRaisesRegexrQ  )r   rF  r  r@  s      @r   testAssertRaisesContextz%Test_TestCase.testAssertRaisesContext'  s   	I 		-}- 	F	 
M:; 	rF	 	bllM:**1-{;z* 	1	 t445 	""=1 	 ##D$9$98D 	""=h"? 	 ##Ix8 	""="< 	 }- 	0j$/	0 	01	 		 		 	 	 	
 	 	
 	 		0 	0s   F<G	8G)G/;G#=G/)H=G;?H%H9H;HH+<G	GG #G,	(G//G8;H	 HHH	HH(+H4c                 x   | j                  t              5  | j                          d d d        | j                  t              5  | j                  d       d d d        | j                  t              5  | j                  t               d d d        | j                  t              5  | j                  t        df       d d d        | j                  t              5  | j                  t        t        f       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   y xY wr   )rM   rQ  rv  r`   r   s    r   testAssertRaisesNoExceptionTypez-Test_TestCase.testAssertRaisesNoExceptionTypeG  s   y) 	 	 y) 	!a 	!y) 	&f%	&y) 	/z1o.	/y) 	4z623	4 	4	  	 	! 	!	& 	&	/ 	/	4 	4s;   D D3D&D$D0 D	DD!$D-0D9c                     d }t        j                  |      }| j                  t        |       | j	                  |t        j                  |             y )Nc                  6    	 t         # t         $ r t         w xY wr   )r`   r   r   r   funcz4Test_TestCase.testAssertRaisesRefcount.<locals>.funcV  s"    !   !  !s    )r/  getrefcountrM   r`   rK   )r   r`  refcounts      r   testAssertRaisesRefcountz&Test_TestCase.testAssertRaisesRefcountS  s@    	! ??4(*d+3??4#89r   c                     G d dt               fd}| j                  t        j                  d      |       | j                  d|       | j	                  t
              5  | j                  dd        d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zy):Test_TestCase.testAssertRaisesRegex.<locals>.ExceptionMockNr?  r   r   r   r@  rf  a  rA  r   r@  c                        d      rC  r   rE  s   r   rF  z1Test_TestCase.testAssertRaisesRegex.<locals>.Stubd  rG  r   zexpect$)rO  rZ  recompilerM   rQ  rR  s     @r   testAssertRaisesRegexz#Test_TestCase.testAssertRaisesRegex`  s|    	I 		- 	}bjj.CTJ}i>y) 	C""=)TB	C 	C 	Cs   $BB
c           	      V   | j                  | j                  d| j                   t        t        j                  d      d        | j                  | j                  d| j                   t        dd        | j                  | j                  d      5  | j                  t        dd      5  	 d d d        d d d        | j                  t
        d      5  | j                  t        dd	      5  	 d d d        d d d        y # 1 sw Y   SxY w# 1 sw Y   WxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)
Nz"^Exception not raised by <lambda>$r  c                       y r   r   r   r   r   r  z8Test_TestCase.testAssertNotRaisesRegex.<locals>.<lambda>p  rN  r   c                       y r   r   r   r   r   r  z8Test_TestCase.testAssertNotRaisesRegex.<locals>.<lambda>t  rN  r   r  expectr  rX  rY  )rZ  rN   rO  rh  ri  rQ  r   s    r   testAssertNotRaisesRegexz&Test_TestCase.testAssertNotRaisesRegexl  s   %%'K&&	2::c?	 	%%'K&&	3	
 ##D$9$98D 	''	8'J 	 ##Ix8 	''	8B'G 	 	 	 	
 	 	sH   D'C;)DD(D*D;D	 DDD	DD(c                 h     G d dt               }| j                  t        | j                  |d        y )Nc                       e Zd Zy)>Test_TestCase.testAssertRaisesRegexInvalidRegex.<locals>.MyExcNr?  r   r   r   MyExcrr    rA  r   rs  c                       yNTr   r   r   r   r  zATest_TestCase.testAssertRaisesRegexInvalidRegex.<locals>.<lambda>  rN  r   )rO  rM   rQ  rZ  )r   rs  s     r   !testAssertRaisesRegexInvalidRegexz/Test_TestCase.testAssertRaisesRegexInvalidRegex~  s(    	I 	)T%;%;ULQr   c                 h     G d dt               }| j                  t        | j                  |d        y )Nc                       e Zd Zy)>Test_TestCase.testAssertWarnsRegexInvalidRegex.<locals>.MyWarnNr?  r   r   r   MyWarnry    rA  r   rz  c                       yru  r   r   r   r   r  z@Test_TestCase.testAssertWarnsRegexInvalidRegex.<locals>.<lambda>  rN  r   )WarningrM   rQ  r(  )r   rz  s     r    testAssertWarnsRegexInvalidRegexz.Test_TestCase.testAssertWarnsRegexInvalidRegex  s(    	W 	)T%:%:FLQr   c                 F    G d dt         j                        } |d      t        j                  d<   	 | j	                  t
        t        j                  d       t        j                  d= t        j                  d= y # t        j                  d= t        j                  d= w xY w)Nc                       e Zd Zed        Zy):Test_TestCase.testAssertWarnsModifySysModules.<locals>.Fooc                 *    dt         j                  d<   y )Nr  @bar@)r/  modulesr   s    r   __warningregistry__zNTest_TestCase.testAssertWarnsModifySysModules.<locals>.Foo.__warningregistry__  s    ',G$r   N)r   r   r    propertyr  r   r   r   r!   r    s    - -r   r!   r   z@foo@r   r  )types
ModuleTyper/  r  r   UserWarningwarningswarnri   s     r   testAssertWarnsModifySysModulesz-Test_TestCase.testAssertWarnsModifySysModules  sw    	-%"" 	-
  #5zG	%[(--DG$G$ G$G$s   %A< <$B c           	          d }| j                  | j                  d| j                   t        d|       | j                  | j                  d| j                   t        t        j                  d      |       y )Nc                      t        d      N
Unexpected)rO  r   r   r   rF  z9Test_TestCase.testAssertRaisesRegexMismatch.<locals>.Stub  s    L))r   z*"\^Expected\$" does not match "Unexpected"z
^Expected$)rZ  rN   rO  rh  ri  )r   rF  s     r   testAssertRaisesRegexMismatchz+Test_TestCase.testAssertRaisesRegexMismatch  sh    	* 	%%=&&	<		
 	%%=&&	

<($		0r   c                     G d dt               fd}d}| j                        }|5   ||       d d d        |j                  }| j                  |       | j	                  |j
                  d   |       y # 1 sw Y   GxY w)Nc                       e Zd Zy)=Test_TestCase.testAssertRaisesExcValue.<locals>.ExceptionMockNr?  r   r   r   r@  r    rA  r   r@  c                      |       r   r   )r   r@  s    r   rF  z4Test_TestCase.testAssertRaisesExcValue.<locals>.Stub  s    $$r   zparticular valuer   )rO  rM   r  rK  rK   r  )r   rF  vctxr  r@  s        @r   testAssertRaisesExcValuez&Test_TestCase.testAssertRaisesExcValue  sy    	I 		%. 	G	MMa/A&		 	s   	A::Bc                     | j                  t              5  | j                          d d d        | j                  t              5  | j                  t               d d d        | j                  t              5  | j                  dd       d d d        | j                  t              5  | j                  t        d       d d d        | j                  t              5  | j                  t        dfd       d d d        | j                  t              5  | j                  t        t        fd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   uxY w# 1 sw Y   y xY wNrg   rn  )rM   rQ  rZ  r`   rv  r   s    r   $testAssertRaisesRegexNoExceptionTypez2Test_TestCase.testAssertRaisesRegexNoExceptionType  sA   y) 	%""$	%y) 	/"":.	/y) 	0""1h/	0y) 	5""684	5y) 	>""J?H=	>y) 	C""J#7B	C 	C	% 	%	/ 	/	0 	0	5 	5	> 	>	C 	CsG   D7E7E'EE(E47EEEE%(E14E=c                    d }| j                  t        |       | j                  t        |       | j                  t        t        f|       | j                  t        t        j                  dt               | j                  | j                        5  | j                  t        d        d d d        | j                  t              5  | j                  t        d        d d d        t        j                         5  t        j                  dt               | j                  | j                        5  | j                  t        |       d d d        d d d        t        j                         5  t        j                  dt               | j                  t              5  | j                  t        |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   CxY w# 1 sw Y   y xY w)Nc                  8    t        j                  dt               y r;  r  r  r   r   r   r   _runtime_warnz<Test_TestCase.testAssertWarnsCallable.<locals>._runtime_warn      MM%0r   r   categoryc                       yrM  r   r   r   r   r  z7Test_TestCase.testAssertWarnsCallable.<locals>.<lambda>  rN  r   defaultr  )
r   r   r   r  r  rM   rN   rQ  catch_warningssimplefilterr   r  s     r   testAssertWarnsCallablez%Test_TestCase.testAssertWarnsCallable  s   	1 	77,n=}M! 	 	H t445 	8^Y7	8 y) 	3^T2	3 $$& 	D!!)^<""4#8#89 D  !3]CD	D $$& 	D!!'>:"">2 D  !3]CD	D 	D	8 	8	3 	3D D	D 	DD D	D 	Ds`   GG:6G(0GG(+0H G42H GGG%	!G((G14G=	9H  H	c                    d }t        j                  |      d   }| j                  t              5 } |        d d d        | j                  t        t        f      5 } |        d d d        | j                  j                  t               | j                  |j                  j                  d   d       | j                  d|j                         | j                  |j                  |dz          | j                  t              5   |         |        d d d        | j                  t              5  t        j                  dt               d d d        | j                  | j                        5  | j                  t              5  	 d d d        d d d        | j!                  | j                  d      5  | j                  t        d      5  	 d d d        d d d        | j!                  t"        d      5  | j                  t        d	
      5  	 d d d        d d d        t        j$                         5  t        j&                  dt               | j                  | j                        5  | j                  t              5   |        d d d        d d d        d d d        t        j$                         5  t        j&                  dt               | j                  t              5  | j                  t              5   |        d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   !xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   uxY w# 1 sw Y   zxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   !xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                  8    t        j                  dt               y r;  r  r   r   r   r  z;Test_TestCase.testAssertWarnsContext.<locals>._runtime_warn  r  r   rg   r   r   test_case.pyr  r  r  rX  rY  r  r  )inspectgetsourcelinesr   r   r   rK  r   rK   r  r   r   linenor  r  rM   rN   rZ  rQ  r  r  r   r  _runtime_warn_linenor  s       r   testAssertWarnsContextz$Test_TestCase.testAssertWarnsContext  s=   	1&55mDQGn- 	O	 1>BC 	rO	 	bjj.9+U3nbkk2$81$<=n- 	OO	 n- 	:MM%.9	: t445 	!!.1 	 ##D$9$98D 	!!.h!? 	 ##Ix8 	!!.!< 	 $$& 	$!!)^<""4#8#89 $%%&89 $!O$$	$ $$& 	$!!'>:"">2 $%%&89 $!O$$	$ 	$I	 		 		 		: 	: 	 	
 	 	
 	 	$ $$ $	$ 	$$ $$ $	$ 	$s  LL&L31M 0MMM4M4M'M44NNN26N5(N(>NN(N520O"O8O OOL#&L03L= M
M	MM$'M1	,M44M>N	NNN% N((N2	-N55N?OOO	OO#c                    | j                  t              5  | j                          d d d        | j                  t              5  | j                  d       d d d        | j                  t              5  | j                  t               d d d        | j                  t              5  | j                  t        df       d d d        | j                  t              5  | j                  t        t        f       d d d        | j                  t              5  | j                  t        t
        f       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY wr   )rM   rQ  r   rv  r  rO  r   s    r   testAssertWarnsNoExceptionTypez,Test_TestCase.testAssertWarnsNoExceptionType  s:   y) 		y) 	 Q	 y) 	%V$	%y) 	/k1-.	/y) 	4k623	4y) 	7k956	7 	7	 		  	 	% 	%	/ 	/	4 	4	7 	7sG   D9E3E&EE*E69EEEE'*E36E?c                    d }| j                  t        d|d       | j                  | j                        5  | j                  t        dd        d d d        | j                  t              5  | j                  t        dd        d d d        t        j                         5  t        j                  dt               | j                  | j                        5  | j                  t        d|d       d d d        d d d        | j                  | j                        5  | j                  t        d|d       d d d        t        j                         5  t        j                  dt               | j                  t        | j                  f      5  | j                  t        d|d       d d d        d d d        y # 1 sw Y   hxY w# 1 sw Y   @xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   PxY w# 1 sw Y   y xY w)Nc                 8    t        j                  | t               y r   r  r  s    r   r  zATest_TestCase.testAssertWarnsRegexCallable.<locals>._runtime_warn       MM#~.r   o+fooxc                       yrM  r   r   r   r   r  z<Test_TestCase.testAssertWarnsRegexCallable.<locals>.<lambda>'  rN  r   r  barzr  )	r(  r   rM   rN   rQ  r  r  r  r   r  s     r   testAssertWarnsRegexCallablez*Test_TestCase.testAssertWarnsRegexCallable  s   	/nd+V	5 t445 	-!!.$"+-	- y) 	>!!.$=	> $$& 	=!!)^<""4#8#89 =%%&8$&3V==	= t445 	9!!.$"/9	9 $$& 	=!!'>:""ND4I4I#JK =%%nd&3V==	= 	=+	- 	-	> 	>= =	= 	=	9 	9= =	= 	=sk   F6-G!6GG0GG(<H G4%H 6G GG	GG%(G14G=	9H  H	c                 R   d }t        j                  |      d   }| j                  t        d      5 } |d       d d d        | j	                  j
                  t               | j                  |j
                  j                  d   d       | j                  d|j                         | j                  |j                  |dz          | j                  | j                        5  | j                  t        d      5  	 d d d        d d d        | j                  | j                  d      5  | j                  t        dd      5  	 d d d        d d d        | j                  t        d      5  | j                  t        dd	
      5  	 d d d        d d d        t        j                          5  t        j"                  dt               | j                  | j                        5  | j                  t$        d      5   |d       d d d        d d d        d d d        | j                  | j                        5  | j                  t        d      5   |d       d d d        d d d        t        j                          5  t        j"                  dt               | j                  t        | j                  f      5  | j                  t        d      5   |d       d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   IxY w# 1 sw Y   NxY w# 1 sw Y   SxY w# 1 sw Y   xY w# 1 sw Y   "xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                 8    t        j                  | t               y r   r  r  s    r   r  z@Test_TestCase.testAssertWarnsRegexContext.<locals>._runtime_warnB  r  r   rg   r  r  r   r  r  r  rX  rY  r  r  r  )r  r  r(  r   rK  r   rK   r  r   r   r  rM   rN   rZ  rQ  r  r  r  r   r  s       r   testAssertWarnsRegexContextz)Test_TestCase.testAssertWarnsRegexContext@  s   	/&55mDQG"">48 	"B&!	"bjj.9+V4nbkk2$81$<=t445 	&&~t< 	 ##D$9$98D 	&&~t&J 	 ##Ix8 	&&~tB&G 	 $$& 	*!!)^<""4#8#89 ***+=tD *!&)**	* t445 	&&&~t< &f%&	& $$& 	*!!'>:""ND4I4I#JK ***>4@ *!&)**	* 	*C	" 	" 	 	
 	 	
 	 	* ** *	* 	*& &	& 	&* ** *	* 	*s  	K)"L9K6;L'L LL(L7L*L7'6MM4	M=MM0M8	M+M84<N0N	NNN)K36L 	;LLL	LL'*L4	/L77MM	MM	MM(+M5	0M88NN
NN	NN&c                    | j                  t              5  | j                          d d d        | j                  t              5  | j                  t               d d d        | j                  t              5  | j                  dd       d d d        | j                  t              5  | j                  t        d       d d d        | j                  t              5  | j                  t        dfd       d d d        | j                  t              5  | j                  t        t        fd       d d d        | j                  t              5  | j                  t        t
        fd       d d d        y # 1 sw Y   LxY w# 1 sw Y   &xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY wr  )rM   rQ  r(  r  rv  rO  r   s    r   #testAssertWarnsRegexNoExceptionTypez1Test_TestCase.testAssertWarnsRegexNoExceptionTypel  s~   y) 	$!!#	$y) 	/!!+.	/y) 	/!!!X.	/y) 	4!!&(3	4y) 	>!!;"2H=	>y) 	C!!;"7B	Cy) 	F!!;	":HE	F 	F	$ 	$	/ 	/	/ 	/	4 	4	> 	>	C 	C	F 	FsS   E1E>7F'FF$F0F<1E;>FFF!$F-0F9<Gc              #      K   t               5 }d  d d d        | j                  j                         d       y # 1 sw Y   *xY ww)Nr  )r
   rK   getvalue)r   bufs     r   assertNoStderrzTest_TestCase.assertNoStderr|  s;      	#	,	 	s   A;)AA Ac                    | j                  t        |      t        |             t        ||      D ]Y  \  }}| j                  |t        j
                         |j                         D ]!  \  }}| j                  t        ||      |       # [ y r   )rK   r  ziprK  logging	LogRecorditemsgetattr)r   recordsmatchesrecmatchkr  s          r   assertLogRecordszTest_TestCase.assertLogRecords  sy    Ws7|4gw/ 	5JC!!#w'8'89 51  a!45	5r   c                 d   | j                         5  | j                         5 }t        j                  d       t        j                  d       d d d        | j                  j                  dg       | j                  |j                  ddig       d d d        y # 1 sw Y   NxY w# 1 sw Y   y xY w)N1r  
INFO:foo:1namer   )
r  
assertLogslog_fooinfo
log_foobarr$  rK   outputr  r  r   r  s     r   testAssertLogsDefaultsz$Test_TestCase.testAssertLogsDefaults  s      " 	A" &bS!  %& RYY7!!"**.?@	A 	A& &	A 	As#   B&+BAB&B#	B&&B/c                    | j                         5  | j                         5 }t        j                  d       t        j                  d       t        j                  d       d d d        | j                  j                  ddg       | j                  |j                  ddiddig       d d d        y # 1 sw Y   RxY w# 1 sw Y   y xY w)	Nr  r  3r  WARNING:quux:3r  r   r   r  r  r  r  r  r$  log_quuxr   rK   r  r  r  r  s     r   !testAssertLogsTwoMatchingMessagesz/Test_TestCase.testAssertLogsTwoMatchingMessages  s      " 	H" &bS!  %  %& RYY7G(HI!!"**%+UOff5E#FH	H 	H& &	H 	Hs$   B?A B3"AB?3B<	8B??Cc                    | j                         5  | j                  |      5 }t        j                  d       t        j                  d       t        j                  d       d d d        | j                  j                  ddg       | j                  |j                  ddidd	ig       d d d        y # 1 sw Y   RxY w# 1 sw Y   y xY w)
Nlevelr  r  r  zERROR:foo.bar:2zCRITICAL:quux:3r  r   r   )r  r  r  r   r  r  r  criticalrK   r  r  r  )r   r  r  s      r   checkAssertLogsPerLevelz%Test_TestCase.checkAssertLogsPerLevel  s      " 	Lu- '$  %!!#&' RYY):<M(NO!!"**%+Y$7&&9I#JL	L 	L' '	L 	Ls$   CA B5$AC5B>	:CC
c                 d    | j                  t        j                         | j                  d       y )NERROR)r  r  r  r   s    r   testAssertLogsPerLevelz$Test_TestCase.testAssertLogsPerLevel  s"    $$W]]3$$W-r   c                 $   | j                         5  | j                  d      5 }| j                  |d      5 }t        j                  d       t        j                  d       t        j                  d       d d d        | j                  j                  ddg       | j                  |j                  dd	idd
ig       d d d        | j                  j                  dg       d d d        y # 1 sw Y   wxY w# 1 sw Y   ;xY w# 1 sw Y   y xY w)NDEBUGr  r  r  r  r  zDEBUG:foo.bar:2r  r   r   r  r  )r   loggerouter_cmr  s       r   checkAssertLogsPerLoggerz&Test_TestCase.checkAssertLogsPerLogger  s     " 
	Bw/ O8__V7_; *rLL%$$S)$$S)*   \;L,MN%%bjj)/&)9L'MOO X__/?.@A
	B 
	B* *O O
	B 
	Bs;   DC:A C.8AC: %D.C73C::D	?DDc                 n    | j                  t        j                  d             | j                  d       y r;  )r  r  	getLoggerr   s    r   testAssertLogsPerLoggerz%Test_TestCase.testAssertLogsPerLogger  s)    %%g&7&7&>?%%e,r   c                     | j                         5  | j                  | j                        5  | j                         5  	 d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY wr   )r  rM   rN   r  r   s    r   testAssertLogsFailureNoLogsz)Test_TestCase.testAssertLogsFailureNoLogs  ss      " 	""4#8#89 __& 	 	  	 	s9   A1A%A A%A1A"A%%A.	*A11A:c                 &   | j                         5  | j                  | j                        5  | j                  d      5  t        j                  d       d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY wNWARNINGr  r  )r  rM   rN   r  r  r  r   s    r   !testAssertLogsFailureLevelTooHighz/Test_TestCase.testAssertLogsFailureLevelTooHigh  s      " 	&""4#8#89 &__9_5 &LL%&&	& 	&& && &	& 	&s:   BA; A/A;B/A84A;;B	 BBc                    | j                         5  t        j                  }t        j                  t        j
                         	 | j                  | j                        5  | j                  d      5  t        j                  d       d d d        d d d        t        j                  |       	 d d d        y # 1 sw Y   0xY w# 1 sw Y   4xY w# t        j                  |       w xY w# 1 sw Y   y xY wr  )
r  r  r  setLevelr  INFOrM   rN   r  r  )r   oldLevels     r   4testAssertLogsFailureLevelTooHigh_FilterInRootLoggerzBTest_TestCase.testAssertLogsFailureLevelTooHigh_FilterInRootLogger  s      " 	+}}HW\\*+&&t'<'<= *y9 *S)**   *	+ 	+
* ** *   *	+ 	+sS   4C+C!C4B9
CCC+9C>CC	
CC((C++C4c                 *   | j                  dd      5  | j                  | j                        5  | j                  d      5  t        j	                  d       d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r  r  r   r  )r  rM   rN   r  r  r   s    r   &testAssertLogsFailureMismatchingLoggerz4Test_TestCase.testAssertLogsFailureMismatchingLogger  s     __V7_3 	(""4#8#89 (__U+ (NN3'((	( 	(( (( (	( 	(s:   B	A=A1A= B	1A:6A==B	B		Bc                     | j                  t              5  | j                         5  t        d      # 1 sw Y   nxY w	 d d d        y # 1 sw Y   y xY wr  )rM   ZeroDivisionErrorr  r   s    r   !testAssertLogsUnexpectedExceptionz/Test_TestCase.testAssertLogsUnexpectedException  sP    01 	6" 6'556 6 6	6 	6 	6   A	3<	A		Ac                 L   | j                  | j                        5 }| j                         5  t        j	                  d       t
        j                  d       d d d        d d d        | j                  t        j                        d       y # 1 sw Y   7xY w# 1 sw Y   ;xY w)Nr  r  z%Unexpected logs found: ['INFO:foo:1'])
rM   rN   assertNoLogsr  r  r  r$  rK   r   r  r  s     r   testAssertNoLogsDefaultz%Test_TestCase.testAssertNoLogsDefault  s    t445 	&""$ &S!  %&	& 	3	
& &	& 	&"   B+BBB	BB#c                 L   | j                  | j                        5 }| j                         5  t        j	                  d       t
        j	                  d       d d d        d d d        | j                  t        j                        d       y # 1 sw Y   7xY w# 1 sw Y   ;xY w)Nr  r   z8Unexpected logs found: ['ERROR:quux:1', 'ERROR:foo:foo'])	rM   rN   r  r  r  r  rK   r   r  r  s     r    testAssertNoLogsFailureFoundLogsz.Test_TestCase.testAssertNoLogsFailureFoundLogs  s    t445 	%""$ %s#e$%	%
 	F	
	% %	% 	%r  c                 "   | j                         5  | j                  t              5  | j                  t              5  t        j                  d       d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r  )r  r  r  r  r  r  r   s    r   testAssertNoLogsPerLoggerz'Test_TestCase.testAssertNoLogsPerLogger  s{      " 	(* (&&g&6 (NN3'((	( 	(( (( (	( 	(s9   BA9A-A9B-A62A99B	>BBc                    | j                  | j                        5 }| j                  t              5  | j	                  t
              5  t        j                  d       t        j                  d       d d d        d d d        d d d        | j                  t        j                        d       y # 1 sw Y   ?xY w# 1 sw Y   CxY w# 1 sw Y   GxY w)Nr	  r  r  z)Unexpected logs found: ['INFO:foo.bar:2'])rM   rN   r  r  r  r  r  r  r  rK   r   r  r  s     r    testAssertNoLogsFailurePerLoggerz.Test_TestCase.testAssertNoLogsFailurePerLogger  s     t445 	)* )&&g&6 )NN3'OOC())	)
 	7	
) )) )	) 	)s:   C
B>	+B24B><C
2B;7B>>C	C

Cc                     | j                         5  | j                  d      5  t        j                  d       t        j                  d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r  r   r  )r  r  r  r  r  r$  r   s    r   testAssertNoLogsPerLevelz&Test_TestCase.testAssertNoLogsPerLevel  sf      " 	$"""1 $U#s#$	$ 	$$ $	$ 	$s"   A,+A A, A)	%A,,A5c                 P   | j                  | j                        5 }| j                  d      5  t        j	                  d       t
        j	                  d       d d d        d d d        | j                  t        j                        d       y # 1 sw Y   7xY w# 1 sw Y   ;xY w)Nr  r  r   r  z8Unexpected logs found: ['DEBUG:foo:foo', 'DEBUG:quux:1'])	rM   rN   r  r  r$  r  rK   r   r  r  s     r   testAssertNoLogsFailurePerLevelz-Test_TestCase.testAssertNoLogsFailurePerLevel  s    t445 	$"""1 $e$s#$	$ 	F	
$ $	$ 	$s"   B+BBB	BB%c                     | j                  t              5  | j                         5  t        d      # 1 sw Y   nxY w	 d d d        y # 1 sw Y   y xY wr  )rM   r  r  r   s    r   #testAssertNoLogsUnexpectedExceptionz1Test_TestCase.testAssertNoLogsUnexpectedException   sR    01 	6""$ 6'556 6 6	6 	6 	6r  c                 r    | j                         5 }	 d d d        | j                         y # 1 sw Y   xY wr   )r  rc  )r   values     r   testAssertNoLogsYieldsNonez(Test_TestCase.testAssertNoLogsYieldsNone&  s6      	E	% 	 	s   -6c                     g d}|D ],  }| j                  t              5  t        | |       ddd       . y# 1 sw Y   9xY w)z:Test that the deprecated fail* methods get removed in 3.12)failIfEqualfailUnlessEqualfailUnlessAlmostEqualfailIfAlmostEqual
failUnlessfailUnlessRaisesfailIfassertNotEqualsassertEqualsassertAlmostEqualsassertNotAlmostEqualsassert_assertDictContainsSubsetassertRaisesRegexpassertRegexpMatchesN)rM   rO   r  )r   deprecated_namesdeprecated_names      r   testDeprecatedFailMethodsz'Test_TestCase.testDeprecatedFailMethods+  sM    
  0 	/O"">2 /o./ /	// /s	   7A 	c                 \     G d dt         j                        } |d      }t        |       y )Nc                       e Zd Zd Zy)0Test_TestCase.testDeepcopy.<locals>.TestableTestc                      y r   r   r   s    r   testNothingz<Test_TestCase.testDeepcopy.<locals>.TestableTest.testNothing;  ro   r   N)r   r   r    r-  r   r   r   TestableTestr+  :  rq   r   r.  r-  )r:   r;   r   )r   r.  r+   s      r   testDeepcopyzTest_TestCase.testDeepcopy8  s)    	8,, 	 M* 	r   c                 0   t        j                  d      }t        t        j                  dz         D ]b  }t        j
                  ||      }t        j                  |      }| j                  ||       |j                  t               t                      d y )NrP   rg   )protocol)	r:   r;   rangepickleHIGHEST_PROTOCOLdumpsloadsrK   r  )r   r+   r1  pickled_testunpickled_tests        r   
testPicklezTest_TestCase.testPickleC  sy    
   'f559: 		5H "<<x@L#\\,7NT>2 &&suce4		5r   c                    ddd  G fddt         j                        } G fddt         j                        } G fddt         j                        } G fd	d
t         j                        }||||fD ]6  }| j                  t              5   |d      j	                          d d d        8 y # 1 sw Y   CxY w)Nc                     t         r   )KeyboardInterruptr   s    r   _raisez3Test_TestCase.testKeyboardInterrupt.<locals>._raiseU  s    ##r   c                      y r   r   r   s    r   nothingz4Test_TestCase.testKeyboardInterrupt.<locals>.nothingW      r   c                       e Zd ZW  Zy)2Test_TestCase.testKeyboardInterrupt.<locals>.Test1Nr   r   r    test_somethingr=  s   r   Test1rB  Z      #Nr   rF  c                       e Zd ZW  ZW Zy)2Test_TestCase.testKeyboardInterrupt.<locals>.Test2Nr   r   r    r2   rD  r=  r?  s   r   Test2rI  ]      E$Nr   rL  c                       e Zd ZW ZW  Zy)2Test_TestCase.testKeyboardInterrupt.<locals>.Test3Nr   r   r    rD  r7   rK  s   r   Test3rO  a      $NHr   rQ  c                       e Zd Z fdZy)2Test_TestCase.testKeyboardInterrupt.<locals>.Test4c                 (    | j                         y r   r  r   r=  s    r   rD  zATest_TestCase.testKeyboardInterrupt.<locals>.Test4.test_somethingf      'r   NrC  rE  s   r   Test4rT  e      (r   rY  rD  r   )r:   r;   rM   r<  rP   )r   rF  rL  rQ  rY  klassr=  r?  s         @@r   testKeyboardInterruptz#Test_TestCase.testKeyboardInterruptT  s    	$		$H%% 	$	%H%% 	%	H%% 		(H%% 	( UE51 	.E""#45 .&'++-. .	.. .s   B88C	c                    ddd  G fddt         j                        } G fddt         j                        } G fddt         j                        } G fd	d
t         j                        }||||fD ]n  }t        j                         } |d      j                  |       | j	                  t        |j                        d       | j	                  |j                  d       p y )Nc                 ,    t        j                  d      )Nzsome reason)r:   SkipTestr   s    r   _skipz3Test_TestCase.testSkippingEverywhere.<locals>._skipn  s    ##M22r   c                      y r   r   r   s    r   r?  z5Test_TestCase.testSkippingEverywhere.<locals>.nothingp  r@  r   c                       e Zd ZW  Zy)3Test_TestCase.testSkippingEverywhere.<locals>.Test1NrC  r`  s   r   rF  rc  s  s    "Nr   rF  c                       e Zd ZW  ZW Zy)3Test_TestCase.testSkippingEverywhere.<locals>.Test2NrJ  r`  r?  s   r   rL  rf  v  s    E$Nr   rL  c                       e Zd ZW ZW  Zy)3Test_TestCase.testSkippingEverywhere.<locals>.Test3NrP  rg  s   r   rQ  ri  z  s    $NHr   rQ  c                       e Zd Z fdZy)3Test_TestCase.testSkippingEverywhere.<locals>.Test4c                 (    | j                         y r   rV  )r   r`  s    r   rD  zBTest_TestCase.testSkippingEverywhere.<locals>.Test4.test_something  s    &r   NrC  rd  s   r   rY  rk  ~  s    'r   rY  rD  rg   r   )r:   r;   rt   rP   rK   r  skippedtestsRun)	r   rF  rL  rQ  rY  r[  ru   r`  r?  s	          @@r   testSkippingEverywherez$Test_TestCase.testSkippingEverywherem  s    	3		#H%% 	#	%H%% 	%	H%% 		'H%% 	' UE51 	1E((*F"#''/S0!4V__a0		1r   c                    ddd  G fddt         j                        } G fddt         j                        } G fddt         j                        } G fd	d
t         j                        }||||fD ]n  }t        j                         } |d      j                  |       | j	                  t        |j                        d       | j	                  |j                  d       p y )Nc                     t         r   )
SystemExitr   s    r   r=  z,Test_TestCase.testSystemExit.<locals>._raise  s    r   c                      y r   r   r   s    r   r?  z-Test_TestCase.testSystemExit.<locals>.nothing  r@  r   c                       e Zd ZW  Zy)+Test_TestCase.testSystemExit.<locals>.Test1NrC  rE  s   r   rF  ru    rG  r   rF  c                       e Zd ZW  ZW Zy)+Test_TestCase.testSystemExit.<locals>.Test2NrJ  rK  s   r   rL  rw    rM  r   rL  c                       e Zd ZW ZW  Zy)+Test_TestCase.testSystemExit.<locals>.Test3NrP  rK  s   r   rQ  ry    rR  r   rQ  c                       e Zd Z fdZy)+Test_TestCase.testSystemExit.<locals>.Test4c                 (    | j                         y r   rV  rW  s    r   rD  z:Test_TestCase.testSystemExit.<locals>.Test4.test_something  rX  r   NrC  rE  s   r   rY  r{    rZ  r   rY  rD  rg   r   )r:   r;   rt   rP   rK   r  errorsrn  )	r   rF  rL  rQ  rY  r[  ru   r=  r?  s	          @@r   testSystemExitzTest_TestCase.testSystemExit  s    			$H%% 	$	%H%% 	%	H%% 		(H%% 	( UE51 	1E((*F"#''/S/3V__a0		1r   c                     t        j                         }t        j                  |      }t	        j
                         5  ~| j                   |              d d d        y # 1 sw Y   y xY wr   )r:   r;   weakrefrefr   
disable_gcrw  )r   r  wrs      r   testNoCycleszTest_TestCase.testNoCycles  sR      "[[! 	#RT"	# 	# 	#s   AA(c                      G fddt                G fddt        j                        }dD ]@  } ||      }|j                          t	                | j                  j                  d       B y )Nc                   &    e Zd ZdZ fdZ fdZy)9Test_TestCase.test_no_exception_leak.<locals>.MyExceptionr   c                 Z    xj                   dz  c_         t        j                  |        y r   )	ninstancerO  r.   r   rC   s    r   r.   zBTest_TestCase.test_no_exception_leak.<locals>.MyException.__init__  s"    %%*%""4(r   c                 0    xj                   dz  c_         y r   )r  r  s    r   __del__zATest_TestCase.test_no_exception_leak.<locals>.MyException.__del__  s    %%*%r   N)r   r   r    r  r.   r  rB   s   r   rC   r    s    I)+r   rC   c                   @    e Zd Z fdZej
                   fd       Zy)6Test_TestCase.test_no_exception_leak.<locals>.TestCasec                             r   r   r  s    r   r   z<Test_TestCase.test_no_exception_leak.<locals>.TestCase.test1  s    !m#r   c                             r   r   r  s    r   r%   z<Test_TestCase.test_no_exception_leak.<locals>.TestCase.test2  s    !m#r   N)r   r   r    r   r:   expectedFailurer%   rB   s   r   r;   r    s"    $ %%$ &$r   r;   )r   r%   r   )rO  r:   r;   rP   r   rK   r  )r   r;   method_nametestcaserC   s       @r   test_no_exception_leakz$Test_TestCase.test_no_exception_leak  s`    	+) 	+	$x(( 	$ . 	7K,HLLNL[22A6		7r   N)~r   r   r    r   r!   eq_pairsr&   ne_pairsrQ   rX   ra   rj   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r%  r,  r5  r<  rA  rF  rL  rS  rY  ra  re  r:   skipIfr/  r0  optimizerh  rj  rl  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r   r#  r%  r2  r5  r;  rS  r[  r]  rc  rj  ro  rv  r}  r  r  r  r  r  r  r  r  r  r  r,  contextmanagerr  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r
  r  r  r  r  r  r(  r/  r9  r\  ro  r~  r   cpython_onlyr  r  r   r   r   r=   r=   9   s~    '"DHHW$567H '"DHHY$78'"DHHW$56'"DHHW$568H"*@
4:<++.+ +.++,++"	/>20CC2KK+&+8=&D+.+$/+*	&)"3 X__SYY''1,@BKBK X__SYY''1,@B
B
 X__SYY''1,@BQBQ!Q
Q
''#*#)J2Mh&'P,
6
;"+HQ:<*|&RP8Wt7>7 7"7(7.JDXM,
0(0@
4:
C$RR%0'CD:.$`7=B**XF  - -
5A	H	L.B-&
+(6
	
(
$	
6!
/	5".21616 # #7r   r=   __main__)#r,  r  r  r3  rh  r/  r  r  r  r  r  copyr   r+   r   r:   test.test_unittest.supportr   r   r   r   r	   test.supportr
   r   r  r  r  r  rv  r   r;   r=   r   mainr   r   r   <module>r     s        	 
          5 '

E
"Wy)
7V$+6 +6K7H%%|[ K7\< zHMMO r   