
    z%i0                       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                   x    e Zd Z	  G d dej                        Z G d de      Z G d dej                        Zy)Testc                       e Zd Zd Zd Zy)Test.Fooc                      y N selfs    P/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_unittest/test_case.pyrunTestzTest.Foo.runTest"           c                      y r   r   r   s    r   test1zTest.Foo.test1#   r   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                   2     e Zd Z	  fdZd Zd Zd Z xZS )Test.LoggingTestCasec                 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    r.   r2   r+   r7   __classcell__)r0   s   @r   r-   r(   (   s    /	!	(	'	+r   r-   N)r   r   r    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   r   r   Nr   r   r    r   r+   r   r   r   r   r?   T       2 r   r   iz.Test.runTest      )r9   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   rA   r   s    r   r   z?Test_TestCase.test_init__test_name__valid.<locals>.Test.runTestj   rC   r   c                      y r   r   r   s    r   r+   z<Test_TestCase.test_init__test_name__valid.<locals>.Test.testk   r   r   NrE   r   r   r   r   rR   i   rF   r   r   r+   iz
.Test.test)r9   r:   rI   rJ   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   rA   r   s    r   r   zATest_TestCase.test_init__test_name__invalid.<locals>.Test.runTestu   rC   r   c                      y r   r   r   s    r   r+   z>Test_TestCase.test_init__test_name__invalid.<locals>.Test.testv   r   r   NrE   r   r   r   r   rY   t   rF   r   r   testfoozFailed to raise ValueError)r9   r:   fail
ValueErrorrU   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   r   r   Nr   r   r    r+   r   r   r   r!   rb      s     r   r!   r+      )r9   r:   rI   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!   rk          r   r!   )r9   r:   defaultTestResultrI   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   r8   r0   r!   s   @r   r!   rw      s    : :r   r!   )	startTestr2   addErrorstopTestr   r   r-   rN   rI   r   r/   rs   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   rp   z_Test_TestCase.test_run_call_order__error_in_setUp_default_result.<locals>.Foo.defaultTestResult       $T[[11r   c                 6    t         |           t        d      ry   rz   r|   s    r   r2   zSTest_TestCase.test_run_call_order__error_in_setUp_default_result.<locals>.Foo.setUp   r}   r   )r   r   r    rp   r2   r8   r~   s   @r   r!   r      s    2: :r   r!   )startTestRunr   r2   r   r   stopTestRunr   r-   rN   rI   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+   r8   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   rp   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    rp   r+   r8   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   rp   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   r8   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   rp   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    rp   r7   r8   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   rp   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  rm   r   N)r   r   r    rp   r+   r   r   r   r!   r   -  s    =r   r!   r+   )r9   r:   assertWarnsRuntimeWarningrN   rg   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Nre   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   )r9   r:   r   DeprecationWarningrN   assertInstrwarningrI   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re   rH   rG   ire   failurerH   rG   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   rs   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/   rs   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)re   rH   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)Nre   r   r   rH   )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-   rN   rI   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  )r9   r:   rr   r  
TestLoaderloadTestsFromTestCaserN   rI   )r   r!   rs   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!  )r9   r:   debugrI   )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  rm   r   Nrd   r   r   r   r!   r&    ro   r   r!   r+   )r9   r:   assertIsrL   AssertionErrorrg   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{   rL   r   r   r   r!   r-    s    %  ,r   r!   r+   r   r   r   r   r9   r:   r(  rL   r{   rN   rI   r   r/   rs   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   Nr/  r   r   r   r!   r7    s    !  ,r   r!   r+   r0  r1  r2  s        r   2test_failureException__subclassing__implicit_raisez@Test_TestCase.test_failureException__subclassing__implicit_raise  r4  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  rm   r   Nrn   r   r   r   r!   r=    ro   r   r!   )r9   r:   r2   rg   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!  rm   r   Nrn   r   r   r   r!   rB     ro   r   r!   )r9   r:   r7   rg   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/  rm   r   Nrn   r   r   r   r!   rG  .  ro   r   r!   )r9   r:   assertIsInstancerJ   r   rg   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   rp   zMTest_TestCase.test_run__uses_defaultTestResult.<locals>.Foo.defaultTestResultA  s	    $$r   N)r   r   r    r+   rp   )rP  r/   s   r   r!   rM  =  s    &%r   r!   r+   )r   r   r+   r   r   r   )r   r9   r:   rN   r(  rI   )r   r!   rs   r   rP  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  rm   r   Nrd   r   r   r   r!   rT  P  ro   r   r!   r+   )r9   r:   rr   rN   r(  )r   r!   rs   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  rm   r   c                 ,    | j                  |       S r   )r(  )r   rs   resultIn	resultOuts     r   rN   zOTest_TestCase.test_call__invoking_an_instance_delegates_to_run.<locals>.Foo.rund  s    fh/  r   N)r   r   r    r+   rN   )r]  r^  s   r   r!   rZ  `  s    !r   r!   r+   )r9   rr   r:   r(  )r   r!   rV  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   rH   z)Docstrings are omitted with -O2 and abovec                 F    	 | j                  | j                         d       y )Nz7Tests shortDescription() for a method with a docstring.rI   rb  r   s    r   (testShortDescriptionWithOneLineDocstringz6Test_TestCase.testShortDescriptionWithOneLineDocstringp  s&     	F%%'I	Kr   c                 F    	 | j                  | j                         d       y )Nz>Tests shortDescription() for a method with a longer docstring.re  r   s    r   *testShortDescriptionWithMultiLineDocstringz8Test_TestCase.testShortDescriptionWithMultiLineDocstringx  s(    	 	%%'	r   c                 F    	 | j                  | j                         d       y )NzATests shortDescription() whitespace is trimmed, so that the firstre  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y)7Test_TestCase.testAddTypeEqualityFunc.<locals>.SadSnakeNr   r   r    r   r   r   SadSnakerm    s    ;r   ro  c                 H    t        |       t        |      cxk(  xr k(  S c S r   )rq   )abmsgro  s      r   AllSnakesCreatedEqualzDTest_TestCase.testAddTypeEqualityFunc.<locals>.AllSnakesCreatedEqual  s!    7d1g11111r   r   )objectassertFalseaddTypeEqualityFuncrI   )r   s1s2rt  ro  s       @r   testAddTypeEqualityFuncz%Test_TestCase.testAddTypeEqualityFunc  sT    	<v 	<XZBr"	2  +@AR r   c                     t               }| j                  ||       | j                  | j                  | j                  |t                      y r   )ru  r(  rK   rL   r   things     r   testAssertIszTest_TestCase.testAssertIs  s7    eU#$//vxPr   c                     t               }| j                  |t                      | j                  | j                  | j                  ||       y r   )ru  assertIsNotrK   rL   r|  s     r   testAssertIsNotzTest_TestCase.testAssertIsNot  s;    )$//1A1A5%Pr   c                     g }| j                  |t               | j                  | j                  | j                   |t               y r   )rI  listrK   rL   dictr|  s     r   testAssertIsInstancez"Test_TestCase.testAssertIsInstance  s:    eT*$//1F1F	'r   c                     g }| j                  |t               | j                  | j                  | j                   |t               y r   )assertNotIsInstancer  rK   rL   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sealrq  abcrH   r   r  dr   otterx   elephantr  re   r  )r   assertNotInrK   rL   )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   rs  z) with msg= failedz) with third parameter failedr   r  re   rH      rG   )set	frozensetrI   rL   r]   rK   )r   equal_pairsrq  rr  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   rq  re   r  zThese are unequal)assertListEqualassertTupleEqualassertSequenceEqualrK   r9   r:   rL   tupleextendassertDictEqualupdate)r   rq  rr  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  rq  r  i   rr  
re   rH   z!assertSequenceEqual did not fail.r   )rI   maxDiffjoindifflibndiffpprintpformat
splitlinesr9   caseDIFF_OMITTEDlenr  r]   rL   args
assertLessr   assertGreaterr  )r   seq1seq2diffomitteders  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 )Nre   r   barfoobarr  )r  _truncateMessager9   r  r  r  rI   )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)NrI   c                      yr9  r   rs  r  s     r   truncatez<Test_TestCase.testAssertDictEqualTruncates.<locals>.truncateZ      r   re   r   zassertDictEqual did not failr   )r9   r:   r  r  r]   rL   rI   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)NrI   c                      yr9  r   r  s     r   r  zATest_TestCase.testAssertMultiLineEqualTruncates.<locals>.truncatef  r  r   r   r  z!assertMultiLineEqual did not fail)r9   r:   r  assertMultiLineEqualr]   rL   rI   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   xxxxxxxxxxxxxxxxrq  rr  ^@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 != )rI   r  r  
addCleanuprK   rL   r   r   	exceptionr  r  )r   scmr  rx  ry  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   dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrq  rr  zKxxxx[35 chars]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'za' != 'zb'2yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzxxxx[85 chars]xxxxxxxxxxxz' != 'dyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzxxxx[91 chars]xxxxxz6yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy[56 chars]yyyy)r  r  rK   rL   rI   r   r  )	r   r  rx  ry  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   )rG   rH   re   )r   r  baz)r  r  r   rH   rG   )re   2rq  rq  )rq  r  Trq  re   d   )rq  r  Tre   
      )r  r  r  r  r   Fr  y              @y               @rq  rr  )re   re   rH   )re   re   r  rq  rq  )r  r  Trq  Taaabccdabbbcce>   r   re   r  re   r   r  re   rG   rr  rG   re   rq  )ru  assertCountEqualrK   rL   iterdivmodr  r  r9   util_count_diff_all_purposerI   _count_diff_hashable)r   rq  rr  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 )Nrq  rr  r   )r   re   r   )r  r  )r  assertSetEqualrK   rL   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 )	NrH   re   g?g      ?bugants   bugs   ant)r  assertGreaterEqualr  assertLessEqualrK   rL   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  re   )r  r  rL   r   splitrI   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  re   rI   rL   r   r  r  s         r   testAssertEqualSingleLinez'Test_TestCase.testAssertEqualSingleLinep  sn    1<	7[*=>$$ 	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)N r  z+ unladen swallows fly quickly
r  re   r  r  s         r   testAssertEqualwithEmptyStringz,Test_TestCase.testAssertEqualwithEmptyString  su    	 <	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)Nzladen swallows
fly sloelyladen swallows
fly slowlyzA  laden swallows
- fly sloely
?        ^
+ fly slowly
?        ^
r  re   r  r  s         r   4testAssertEqualMultipleLinesMissingNewlineTerminatorzBTest_TestCase.testAssertEqualMultipleLinesMissingNewlineTerminator  su    	 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)Nzladen swallows
fly sloely
r!  zD  laden swallows
- fly sloely
?        ^
+ fly slowly
?        ^
- 
r  re   r  r  s         r   9testAssertEqualMultipleLinesMismatchedNewlinesTerminatorszGTest_TestCase.testAssertEqualMultipleLinesMismatchedNewlinesTerminators  su    	
 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   rq     ar   )r-  r-  r-  )sysflagsr)  rK   rL   rI   assertNotEqualr  r  r  r  r  r  r  r  )r   r)  rq  rr  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)ra  rK   rL   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)assertRegexrK   rL   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>.ExceptionMockNrn  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   r   )	ExceptionrK   r^   intrL   	TypeErrorr   rD  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>.ExceptionMockNrn  r   r   r   r>  rS  (  r?  r   r>  c                        d      rA  r   rC  s   r   rD  z3Test_TestCase.testAssertRaisesContext.<locals>.Stub*  rE  r   r   rB  rF  rG  rH  r  r  *   r  )rL  rK   r^   rI  r  rI   r  rM  rL   assertRaisesRegexrN  )r   rD  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   )rK   rN  ru  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.  getrefcountrK   r^   rI   )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>.ExceptionMockNrn  r   r   r   r>  rc  a  r?  r   r>  c                        d      rA  r   rC  s   r   rD  z1Test_TestCase.testAssertRaisesRegex.<locals>.Stubd  rE  r   zexpect$)rL  rW  recompilerK   rN  rO  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  r   r   c                       y r   r   r   r   r   r  z8Test_TestCase.testAssertNotRaisesRegex.<locals>.<lambda>t  r   r   r  expectr  rU  rV  )rW  rL   rL  re  rf  rN  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>.MyExcNrn  r   r   r   MyExcro    r?  r   rp  c                       yNTr   r   r   r   r  zATest_TestCase.testAssertRaisesRegexInvalidRegex.<locals>.<lambda>  r   r   )rL  rK   rN  rW  )r   rp  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>.MyWarnNrn  r   r   r   MyWarnrv    r?  r   rw  c                       yrr  r   r   r   r   r  z@Test_TestCase.testAssertWarnsRegexInvalidRegex.<locals>.<lambda>  r   r   )WarningrK   rN  r'  )r   rw  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warnrg   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)rL  r   r   r   rD  z9Test_TestCase.testAssertRaisesRegexMismatch.<locals>.Stub  s    L))r   z*"\^Expected\$" does not match "Unexpected"z
^Expected$)rW  rL   rL  re  rf  )r   rD  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>.ExceptionMockNrn  r   r   r   r>  r    r?  r   r>  c                      |       r   r   )r   r>  s    r   rD  z4Test_TestCase.testAssertRaisesExcValue.<locals>.Stub  s    $$r   zparticular valuer   )rL  rK   r  rI  rI   r  )r   rD  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Nre   rk  )rK   rN  rW  r^   ru  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 r9  r  r  r   r   r   r   _runtime_warnz<Test_TestCase.testAssertWarnsCallable.<locals>._runtime_warn      MM%0r   r   categoryc                       yrK  r   r   r   r   r  z7Test_TestCase.testAssertWarnsCallable.<locals>.<lambda>  r   r   defaultr  )
r   r   r   r  r  rK   rL   rN  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 r9  r  r   r   r   r  z;Test_TestCase.testAssertWarnsContext.<locals>._runtime_warn  r  r   re   r   r   test_case.pyr  r  r  rU  rV  r  r  )inspectgetsourcelinesr   r   r   rI  r   rI   r  r   r   linenor  r  rK   rL   rW  rN  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   )rK   rN  r   ru  r  rL  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rK  r   r   r   r   r  z<Test_TestCase.testAssertWarnsRegexCallable.<locals>.<lambda>'  r   r   r  barzr  )	r'  r   rK   rL   rN  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   re   r  r  r   r  r  r  rU  rV  r  r  r  )r  r  r'  r   rI  r   rI   r  r   r   r  rK   rL   rW  rN  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  )rK   rN  r'  r  ru  rL  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
   rI   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   )rI   r  ziprI  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"  rI   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   rI   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  criticalrI   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 r9  )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  rK   rL   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  rK   rL   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  INFOrK   rL   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  rK   rL   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  )rK   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'])
rK   rL   assertNoLogsr  r  r  r"  rI   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'])	rK   rL   r   r  r  r  rI   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'])rK   rL   r  r  r   r  r  r  r  rI   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'])	rK   rL   r   r  r"  r  rI   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  )rK   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   ra  )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)N)failIfEqualfailUnlessEqualfailUnlessAlmostEqualfailIfAlmostEqual
failUnlessfailUnlessRaisesfailIfassertNotEqualsassertEqualsassertAlmostEqualsassertNotAlmostEqualsassert_assertDictContainsSubsetassertRaisesRegexpassertRegexpMatches)rK   rM   r  )r   deprecated_namesdeprecated_names      r   testDeprecatedFailMethodsz'Test_TestCase.testDeprecatedFailMethods+  sP    H
  0 	/O"">2 /o./ /	// /s	   8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;  rm   r   N)r   r   r    r*  r   r   r   TestableTestr(  :  ro   r   r+  r*  )r9   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 )NrN   re   )protocol)	r9   r:   rangepickleHIGHEST_PROTOCOLdumpsloadsrI   r  )r   r+   r.  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   Test1r?  Z      #Nr   rC  c                       e Zd ZW  ZW Zy)2Test_TestCase.testKeyboardInterrupt.<locals>.Test2Nr   r   r    r2   rA  r:  r<  s   r   Test2rF  ]      E$Nr   rI  c                       e Zd ZW ZW  Zy)2Test_TestCase.testKeyboardInterrupt.<locals>.Test3Nr   r   r    rA  r7   rH  s   r   Test3rL  a      $NHr   rN  c                       e Zd Z fdZy)2Test_TestCase.testKeyboardInterrupt.<locals>.Test4c                 (    | j                         y r   r  r   r:  s    r   rA  zATest_TestCase.testKeyboardInterrupt.<locals>.Test4.test_somethingf      'r   Nr@  rB  s   r   Test4rQ  e      (r   rV  rA  r   )r9   r:   rK   r9  rN   )r   rC  rI  rN  rV  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)r9   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>.Test1Nr@  r]  s   r   rC  r`  s  s    "Nr   rC  c                       e Zd ZW  ZW Zy)3Test_TestCase.testSkippingEverywhere.<locals>.Test2NrG  r]  r<  s   r   rI  rc  v  s    E$Nr   rI  c                       e Zd ZW ZW  Zy)3Test_TestCase.testSkippingEverywhere.<locals>.Test3NrM  rd  s   r   rN  rf  z  s    $NHr   rN  c                       e Zd Z fdZy)3Test_TestCase.testSkippingEverywhere.<locals>.Test4c                 (    | j                         y r   rS  )r   r]  s    r   rA  zBTest_TestCase.testSkippingEverywhere.<locals>.Test4.test_something  s    &r   Nr@  ra  s   r   rV  rh  ~  s    'r   rV  rA  re   r   )r9   r:   rr   rN   rI   r  skippedtestsRun)	r   rC  rI  rN  rV  rX  rs   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>.Test1Nr@  rB  s   r   rC  rr    rD  r   rC  c                       e Zd ZW  ZW Zy)+Test_TestCase.testSystemExit.<locals>.Test2NrG  rH  s   r   rI  rt    rJ  r   rI  c                       e Zd ZW ZW  Zy)+Test_TestCase.testSystemExit.<locals>.Test3NrM  rH  s   r   rN  rv    rO  r   rN  c                       e Zd Z fdZy)+Test_TestCase.testSystemExit.<locals>.Test4c                 (    | j                         y r   rS  rT  s    r   rA  z:Test_TestCase.testSystemExit.<locals>.Test4.test_something  rU  r   Nr@  rB  s   r   rV  rx    rW  r   rV  rA  re   r   )r9   r:   rr   rN   rI   r  errorsrk  )	r   rC  rI  rN  rV  rX  rs   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   )r9   r:   weakrefrefr   
disable_gcrv  )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   )	ninstancerL  r.   r   rB   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  rA   s   r   rB   r    s    I)+r   rB   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   r9   expectedFailurer%   rA   s   r   r:   r    s"    $ %%$ &$r   r:   )r   r%   r   )rL  r9   r:   rN   r   rI   r  )r   r:   method_nametestcaserB   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_pairsrO   rV   r_   rh   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r#  r*  r3  r:  r?  rD  rJ  rQ  rW  r_  rc  r9   skipIfr.  r/  optimizerf  rh  rj  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r"  r$  r1  r4  r:  rP  rX  rZ  r`  rg  rl  rs  rz  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,  r6  rY  rl  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  r0  re  r.  r  r  r}  r  r  copyr   r+   r   r9   test.test_unittest.supportr   r   r   r   r	   test.supportr
   r   r  r  r  r  ru  r   r:   r<   r   mainr   r   r   <module>r     s        	 
          5 '

E
"Wy)
7V$+6 +6K7H%%|[ K7\< zHMMO r   