
    z%i5                        	 d dl Z d dlmZ d dlmZ dZ G d d      Z G d de      Z G d	 d
e      Z G d dee      Z	 G d de	      Z
 G d de
      Z G d de      Z G d de j                        Zedk(  r e j                           yy)    N)patch)shadowed_super   c                   "    e Zd Zd Zed        Zy)Ac                      yNr    selfs    C/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_super.pyfzA.f   s        c                 
    | dfS r	   r
   clss    r   cmzA.cm   s    Szr   N)__name__
__module____qualname__r   classmethodr   r
   r   r   r   r      s     r   r   c                   2     e Zd Z fdZe fd       Z xZS )Bc                 &    t         |          dz   S Nr   superr   r   	__class__s    r   r   zB.f       wy{S  r   c                 &    | t         |          dfS r   r   r   r   r   s    r   r   zB.cm       UWZ\3''r   r   r   r   r   r   r   __classcell__r   s   @r   r   r          !( (r   r   c                   2     e Zd Z fdZe fd       Z xZS )Cc                 &    t         |          dz   S Nr*   r   r   s    r   r   zC.f   r    r   c                 &    | t         |          dfS r,   r"   r#   s    r   r   zC.cm   r$   r   r%   r'   s   @r   r*   r*      r(   r   r*   c                   (     e Zd Z fdZ fdZ xZS )Dc                 &    t         |          dz   S Nr/   r   r   s    r   r   zD.f!   r    r   c                 &    | t         |          dfS r1   r"   r#   s    r   r   zD.cm#   s    UWZ\3''r   )r   r   r   r   r   r&   r'   s   @r   r/   r/       s    !( (r   r/   c                       e Zd Zy)ENr   r   r   r
   r   r   r4   r4   &       r   r4   c                   $    e Zd Zej                  Zy)FN)r   r   r   r4   r   r
   r   r   r8   r8   )   s    	Ar   r8   c                       e Zd Zy)GNr5   r
   r   r   r:   r:   ,   r6   r   r:   c                   
    e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
 fd	Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Z fdZd Z fdZ fdZ fdZd Zd Zd Zd Zd Zd Z  fdZ! fd Z" fd!Z#d" Z$d# Z% xZ&S )$	TestSuperc                     t         y N)r<   r   s    r   tearDownzTestSuper.tearDown2   s
     	r   c                 T    | j                  t               j                         d       y NABCDassertEqualr/   r   r   s    r   test_basics_workingzTestSuper.test_basics_working7   s    &)r   c                 ^    | j                  t        j                  t                     d       y rA   rC   r   s    r   test_class_getattr_workingz$TestSuper.test_class_getattr_working:   s    QS6*r   c                     | j                  t               j                         d       | j                  t        j                  t                     d       y rA   )rD   r4   r   r   s    r   !test_subclass_no_override_workingz+TestSuper.test_subclass_no_override_working=   4    &)QS6*r   c                     | j                  t               j                         d       | j                  t        j                  t                     d       y rA   )rD   r8   r   r   s    r   $test_unbound_method_transfer_workingz.TestSuper.test_unbound_method_transfer_workingA   rJ   r   c                 d   | j                  t        j                         t        df       | j                  t               j                         t        df       | j                  t        j                         t        df       | j                  t               j                         t        df       y r	   )rD   r   r   r:   r   s    r    test_class_methods_still_workingz*TestSuper.test_class_methods_still_workingE   sn    !S*As8,!S*As8,r   c                    t               }| j                  |j                         |t         t         t         dfdfdfdf       t               }| j                  |j                         |t        t        t        dfdfdfdf       y )Nr   r   r*   r/   )r/   rD   r   r4   )r   des      r   #test_super_in_class_methods_workingz-TestSuper.test_super_in_class_methods_workingK   sn    C!a!aXs);S%A3!GHC!a!aXs);S%A3!GHr   c                 l     G d dt               }| j                   |       j                         d       y )Nc                        e Zd Z fdZ xZS ),TestSuper.test_super_with_closure.<locals>.Ec                 2      fd}t                   dz   S )Nc                  
      y r>   r
   r   s   r   nestedz>TestSuper.test_super_with_closure.<locals>.E.f.<locals>.nestedV   s    r   r4   r   )r   rX   r   s   ` r   r   z.TestSuper.test_super_with_closure.<locals>.E.fU   s    wy{S((r   r   r   r   r   r&   r'   s   @r   r4   rU   T   s    ) )r   r4   AE)r   rD   r   )r   r4   s     r   test_super_with_closurez!TestSuper.test_super_with_closureQ   s(    	) 	) 	$'r   c                     G d dt               } |       }| j                  |j                         d       | j                  |j                  d        G fdd      }| j	                  |j
                  t        |              | j                  t              5 }t        dt               i        d d d        | j	                  t        j                        t                G d d      }| j                  t               d   d	       t               d= | j                  d|j                          G fd
d      }| j                  d	       y # 1 sw Y   xY w)Nc                   "     e Zd Z fdZdZ xZS )7TestSuper.test_various___class___pathologies.<locals>.Xc                      t         |          S r>   r   r   s    r   r   z9TestSuper.test_various___class___pathologies.<locals>.X.f_   s    wy{"r     )r   r   r   r   r   r&   r'   s   @r   Xr^   ^   s    #Ir   ra   r   r`   c                   &     e Zd ZW Z fdZ xZS )r^   c                  
      y r>   r
   r'   s   r   r   z9TestSuper.test_various___class___pathologies.<locals>.X.fg       r   )r   r   r   xr   r&   r   r   s   @r   ra   z7TestSuper.test_various___class___pathologies.<locals>.Xe   s    A r   zYclass X:
                __class__
                def f():
                    __class__c                   "     e Zd Zda fdZ xZS )r^   *   c                  
      y r>   r
   r'   s   r   r   z9TestSuper.test_various___class___pathologies.<locals>.X.fs   rd   r   )r   r   r   r   r   r&   r'   s   @r   ra   z7TestSuper.test_various___class___pathologies.<locals>.Xp   s    I r   r   rh   c                   $     e Zd Zd fdZ xZS )r^   rh   c                  
      y r>   r
   r'   s   r   r   z9TestSuper.test_various___class___pathologies.<locals>.X.f{   rd   r   rY   rf   s   @r   ra   z7TestSuper.test_various___class___pathologies.<locals>.Xx   s    I r   )r   rD   r   r   assertIsre   typeassertRaises	NameErrorexecglobals	exceptionassertNotIn__dict__)r   ra   re   rQ   r   s       r   "test_various___class___pathologiesz,TestSuper.test_various___class___pathologies\   s   	 	 C$c*	 	 	acc4:&y) 	1Q ! #*)R1	1
 	d1;;'3	 	
 	;/4Ik"ajj1	 	
 	B''	1 	1s   EEc                 b     G d d      }| j                   |       j                         |       y )Nc                        e Zd Z fdZ xZS )2TestSuper.test___class___instancemethod.<locals>.Xc                     S r>   r
   r   s    r   r   z4TestSuper.test___class___instancemethod.<locals>.X.f   	      r   rY   r'   s   @r   ra   rx          ! !r   ra   rl   r   r   ra   s     r   test___class___instancemethodz'TestSuper.test___class___instancemethod   s$    	! 	! 	aceegq!r   c                 X     G d d      }| j                  |j                         |       y )Nc                   (     e Zd Ze fd       Z xZS )/TestSuper.test___class___classmethod.<locals>.Xc                     S r>   r
   r#   s    r   r   z1TestSuper.test___class___classmethod.<locals>.X.f   	      r   )r   r   r   r   r   r&   r'   s   @r   ra   r      s    ! !r   ra   r|   r}   s     r   test___class___classmethodz$TestSuper.test___class___classmethod   "    	! 	! 	acceQr   c                 X     G d d      }| j                  |j                         |       y )Nc                   (     e Zd Ze fd       Z xZS )0TestSuper.test___class___staticmethod.<locals>.Xc                       S r>   r
   r'   s   r   r   z2TestSuper.test___class___staticmethod.<locals>.X.f   r   r   r   r   r   staticmethodr   r&   r'   s   @r   ra   r          ! !r   ra   r|   r}   s     r   test___class___staticmethodz%TestSuper.test___class___staticmethod   r   r   c                 h    d  G fddt               } G d d|      }| j                  |       y )Nc                   "     e Zd Z fdZ xZS )*TestSuper.test___class___new.<locals>.Metac                 L    t         |   | |||      }|j                         |S r>   )r   __new__r   )r   namebases	namespacer   r   
test_classs        r   r   z2TestSuper.test___class___new.<locals>.Meta.__new__   s'    wsD%C!VVX
r   r   r   r   r   r&   r   r   s   @r   Metar      s     r   r   c                   (     e Zd Ze fd       Z xZS )'TestSuper.test___class___new.<locals>.Ac                       S r>   r
   r'   s   r   r   z)TestSuper.test___class___new.<locals>.A.f   r   r   r   r'   s   @r   r   r      r   r   r   	metaclassrm   rl   r   r   r   r   s      @r   test___class___newzTestSuper.test___class___new   s2     
	4 		!$ 	!
 	j!$r   c                     d  G fddt               } G d d|      }| j                  |d        t        dd      }| j                  |j                         |       y )Nc                       e Zd Z fdZy).TestSuper.test___class___delayed.<locals>.Metac                 
    |y r>   r
   )r   r   r   r   test_namespaces       r   r   z6TestSuper.test___class___delayed.<locals>.Meta.__new__   s    !*r   N)r   r   r   r   )r   s   r   r   r      s    r   r   c                   (     e Zd Ze fd       Z xZS )+TestSuper.test___class___delayed.<locals>.Ac                       S r>   r
   r'   s   r   r   z-TestSuper.test___class___delayed.<locals>.A.f   r   r   r   r'   s   @r   r   r      r   r   r   r   r   r
   )rm   rl   r   )r   r   r   r   r   s       @r   test___class___delayedz TestSuper.test___class___delayed   sR    	4 		!$ 	!
 	ab.)acceQr   c                 h    d  G d dt               } G fdd|      }| j                  |       y )Nc                        e Zd Z fdZ xZS )*TestSuper.test___class___mro.<locals>.Metac                 H     | j                   d           t        | 	         S )Nr   )rt   r   mror   s    r   r   z.TestSuper.test___class___mro.<locals>.Meta.mro   s     "c"$w{}$r   )r   r   r   r   r&   r'   s   @r   r   r      s    % %r   r   c                   "     e Zd Z fdZ xZS )'TestSuper.test___class___mro.<locals>.Ac                  
     y r>   r
   r   s   r   r   z)TestSuper.test___class___mro.<locals>.A.f   s    &
r   rY   r   s   @r   r   r      s    ' 'r   r   r   r   r   s      @r   test___class___mrozTestSuper.test___class___mro   s0    
	%4 	%	'$ 	'
 	j!$r   c                     G fddt               }d  G d d|      }| j                  d       d  G d d|      }d   }|j                  j                  }| j	                  t        |      d	       | j                  ||d
          | j                  t              5  |j                   d d d        y # 1 sw Y   y xY w)Nc                   "     e Zd Z fdZ xZS )=TestSuper.test___classcell___expected_behaviour.<locals>.Metac                 H    |j                         t        | 	  | |||      S r>   )copyr   r   )r   r   r   r   r   namespace_snapshots       r   r   zETestSuper.test___classcell___expected_behaviour.<locals>.Meta.__new__   s%    %.^^%5"wsD%CCr   r   )r   r   s   @r   r   r      s    D Dr   r   c                       e Zd Zy)HTestSuper.test___classcell___expected_behaviour.<locals>.WithoutClassRefNr5   r
   r   r   WithoutClassRefr          r   r   r   r&   c                        e Zd Z fdZ xZS )ETestSuper.test___classcell___expected_behaviour.<locals>.WithClassRefc                     S r>   r
   r   s    r   r   zGTestSuper.test___classcell___expected_behaviour.<locals>.WithClassRef.f   rz   r   rY   r'   s   @r   WithClassRefr      r{   r   r      r   )
rm   rs   r   __closure__rD   lenrl   rn   AttributeErrorr&   )r   r   r   r   
class_cellmethod_closurer   s         @r   %test___classcell___expected_behaviourz/TestSuper.test___classcell___expected_behaviour   s    	D4 	D "	 	*<=
 "	!T 	! (8
%33^,a0j."34~. 	'&&	' 	' 	's   !B77C c                      G d dt               } G d d|      }d}| j                  t        |      5   G d d|      }d d d        y # 1 sw Y   y xY w)	Nc                        e Zd Z fdZ xZS )2TestSuper.test___classcell___missing.<locals>.Metac                 L    |j                  dd        t        | 	  | |||      S Nr&   )popr   r   )r   r   r   r   r   s       r   r   z:TestSuper.test___classcell___missing.<locals>.Meta.__new__   s&    ot4wsD%CCr   r   r'   s   @r   r   r          D Dr   r   c                       e Zd Zy)=TestSuper.test___classcell___missing.<locals>.WithoutClassRefNr5   r
   r   r   r   r      r   r   r   r   z+__class__ not set.*__classcell__ propagatedc                        e Zd Z fdZ xZS ):TestSuper.test___classcell___missing.<locals>.WithClassRefc                     S r>   r
   r   s    r   r   z<TestSuper.test___classcell___missing.<locals>.WithClassRef.f  	    $$r   rY   r'   s   @r   r   r          % %r   r   )rm   assertRaisesRegexRuntimeError)r   r   r   expected_errorr   s        r   test___classcell___missingz$TestSuper.test___classcell___missing   sU    	D4 	D	 	 G##L.A 	%% %	% 	% 	%s   A

Ac           	          G d dt               }d ddt               fD ]H  }| j                  |      5  | j                  t              5   G d d||      }d d d        d d d        J y # 1 sw Y   xY w# 1 sw Y   axY w)	Nc                        e Zd Z fdZ xZS )4TestSuper.test___classcell___overwrite.<locals>.Metac                 2    ||d<   t         |   | |||      S r   r   r   )r   r   r   r   cellr   s        r   r   z<TestSuper.test___classcell___overwrite.<locals>.Meta.__new__  s"    -1	/*wsD%CCr   r   r'   s   @r   r   r     r   r   r   r    )bad_cellc                       e Zd Zy)1TestSuper.test___classcell___overwrite.<locals>.ANr5   r
   r   r   r   r     s    r   r   )r   r   )rm   objectsubTestrn   	TypeError)r   r   r   r   s       r   test___classcell___overwritez&TestSuper.test___classcell___overwrite  s    	D4 	D
 q"fh/ 	Hx0 &&y1 d  	  s#   A6	A*A6*A3/A66A?	c                      G d dt               }| j                  t              5   G d d|      }d d d        y # 1 sw Y   y xY w)Nc                        e Zd Z fdZ xZS )5TestSuper.test___classcell___wrong_cell.<locals>.Metac                 F    t         |   | |||      } t        dd|      }| S )Nr   r
   )r   r   rm   )r   r   r   r   r   r   s        r   r   z=TestSuper.test___classcell___wrong_cell.<locals>.Meta.__new__  s*    goc4	Bb),
r   r   r'   s   @r   r   r     s     r   r   c                        e Zd Z fdZ xZS )2TestSuper.test___classcell___wrong_cell.<locals>.Ac                     S r>   r
   r   s    r   r   z4TestSuper.test___classcell___wrong_cell.<locals>.A.f  r   r   rY   r'   s   @r   r   r     r   r   r   r   )rm   rn   r   )r   r   r   s      r   test___classcell___wrong_cellz'TestSuper.test___classcell___wrong_cell  s?    	4 	 y) 	%%d %	% 	% 	%s	   ;Ac                    fd}| j                  t        d      5   |        d d d         G d d      }| j                  t        d      5  |j                          d d d        fd}| j                  t        d      5   |d        d d d         G d d      }| j                  t        d	      5   |       j                          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   y xY w)
Nc                      t                y r>   r   r'   s   r   r   z.TestSuper.test_obscure_super_errors.<locals>.f!  s    Gr   zno argumentsc                        e Zd Z fdZ xZS ).TestSuper.test_obscure_super_errors.<locals>.Cc                      t                y r>   r   r'   s   r   r   z0TestSuper.test_obscure_super_errors.<locals>.C.f'      r   rY   r'   s   @r   r*   r   &       r   r*   c                     ~ t                y r>   r   re   r   s    r   r   z.TestSuper.test_obscure_super_errors.<locals>.f,  s    Gr   zarg\[0\] deletedc                        e Zd Z fdZ xZS ).TestSuper.test_obscure_super_errors.<locals>.Xc                     t                y r>   r   r   s    r   r   z0TestSuper.test_obscure_super_errors.<locals>.X.f3  s    r   rY   r'   s   @r   ra   r   2  s     r   ra   zempty __class__ cell)r   r   r   )r   r   r*   ra   r   s       r   test_obscure_super_errorsz#TestSuper.test_obscure_super_errors   s    	##L/B 	C		 	 ##L/B 	CCE		 ##L2EF 	dG		 	
 ##L2IJ 	CEEG	 	)	 		 		 		 	s/   CC	C)2C5CC&)C25C>c                      G d d      fd} |       j                   d   }| j                  t        j                  |       y )Nc                        e Zd Z fdZ xZS )&TestSuper.test_cell_as_self.<locals>.Xc                     t                y r>   r   r   s    r   methz+TestSuper.test_cell_as_self.<locals>.X.meth<  r   r   )r   r   r   r  r&   r'   s   @r   ra   r  ;  r   r   ra   c                  "            fd} | S )Nc                       S r>   r
   )ks   r   gz1TestSuper.test_cell_as_self.<locals>.f.<locals>.gA  s    r   r
   )r  r  ra   s    @r   r   z&TestSuper.test_cell_as_self.<locals>.f?  s    AHr   r   )r   rn   r   r  )r   r   cra   s      @r   test_cell_as_selfzTestSuper.test_cell_as_self:  s:    	 		
 COOA)QVVQ/r   c                 |    t        t        d      }t        d      D ]  }t         j                  |t        |        y )Ng      ?i  )r   floatrange__init__int)r   spir   s      r   test_super_init_leakszTestSuper.test_super_init_leaksG  s4    
 5#t 	'ANN2sA&	'r   c                     | j                  t        d      5  t        t        t        t               d d d        y # 1 sw Y   y xY w)Nzexpected at mostr   r   r   r  r   s    r   test_super_argcountzTestSuper.test_super_argcountP  s5    ##I/AB 	!#sC 	! 	! 	!s	   ;Ac                 |    | j                  t        d      5  t        dt               d d d        y # 1 sw Y   y xY w)Nargument 1 must be a typer   r  r   s    r   test_super_argtypezTestSuper.test_super_argtypeT  s2    ##I/JK 	!SM	 	 	s   2;c                 h    | j                  t        j                         j                         d       y )Nztruly super)rD   r   r*   methodr   s    r   test_shadowed_globalzTestSuper.test_shadowed_globalX  s$    ))+224mDr   c                 |     G d d       G fdd      }| j                   |       j                         d       y )Nc                       e Zd ZdZy),TestSuper.test_shadowed_local.<locals>.superquite superNr   r   r   msgr
   r   r   r   r  \      Cr   r   c                   "     e Zd Z fdZ xZS )(TestSuper.test_shadowed_local.<locals>.Cc                 &            j                   S r>   )r   )r   r   r   s    r   r  z/TestSuper.test_shadowed_local.<locals>.C.method`  s    w{{"r   r   r   r   r  r&   )r   r   s   @r   r*   r#  _  s    # #r   r*   r  )rD   r  )r   r*   r   s     @r   test_shadowed_localzTestSuper.test_shadowed_local[  s1    	  	 	# 	# 	}5r   c                      G d d      } G d d      }t        t         d|      5 }| j                   |       j                         d       d d d        y # 1 sw Y   y xY w)Nc                       e Zd ZdZy)0TestSuper.test_shadowed_dynamic.<locals>.MySupersuper superNr  r
   r   r   MySuperr)  f  r!  r   r+  c                        e Zd Z fdZ xZS )*TestSuper.test_shadowed_dynamic.<locals>.Cc                     t         |   S r>   r   r   r   s    r   r  z1TestSuper.test_shadowed_dynamic.<locals>.C.methodj      w{"r   r%  r'   s   @r   r*   r-  i      # #r   r*   .superr*  r   r   rD   r  )r   r+  r*   ms       r   test_shadowed_dynamiczTestSuper.test_shadowed_dynamice  sX    	  	 	# 	# hZv&0 	:AQSZZ\=9	: 	: 	:s   &AA c                     g  G fdd      } G d d      }t        t         d|      5 }| j                   |       j                         d       | j                  dg       d d d        y # 1 sw Y   y xY w)Nc                       e Zd Z fdZdZy)8TestSuper.test_shadowed_dynamic_two_arg.<locals>.MySuperc                 (    j                  |       y r>   )append)r   args	call_argss     r   r  zATestSuper.test_shadowed_dynamic_two_arg.<locals>.MySuper.__init__s  s      &r   r*  N)r   r   r   r  r   )r<  s   r   r+  r8  r  s    'Cr   r+  c                        e Zd Z fdZ xZS )2TestSuper.test_shadowed_dynamic_two_arg.<locals>.Cc                     t         dd  S )Nr   r   r/  r   s    r   r  z9TestSuper.test_shadowed_dynamic_two_arg.<locals>.C.methodx  s    Q&r   r%  r'   s   @r   r*   r>  w  s    ' 'r   r*   r2  r*  )r   r   r3  )r   r+  r*   r4  r<  s       @r   test_shadowed_dynamic_two_argz'TestSuper.test_shadowed_dynamic_two_argp  sp    		  	 
	' 	' hZv&0 	2AQSZZ\=9Y1	2 	2 	2s   9A//A8c                      G d d      }| j                  t        d      5   |       j                          d d d        y # 1 sw Y   y xY w)Nc                        e Zd Z fdZ xZS ))TestSuper.test_attribute_error.<locals>.Cc                     t         |   S r>   r/  r   s    r   r  z0TestSuper.test_attribute_error.<locals>.C.method  r0  r   r%  r'   s   @r   r*   rC    r1  r   r*   z%'super' object has no attribute 'msg')r   r   r  r   r*   s     r   test_attribute_errorzTestSuper.test_attribute_error  s?    	# 	# ##N4[\ 	CJJL	 	 	   A  A	c                      G d d      }| j                  t        d      5   |       j                          d d d        y # 1 sw Y   y xY w)Nc                        e Zd Z fdZ xZS )'TestSuper.test_bad_first_arg.<locals>.Cc                      t         d|          S )Nr   )r   r  r   s    r   r  z.TestSuper.test_bad_first_arg.<locals>.C.method  s    Q,..r   r%  r'   s   @r   r*   rJ    s    / /r   r*   r  )r   r   r  rE  s     r   test_bad_first_argzTestSuper.test_bad_first_arg  s?    	/ 	/ ##I/JK 	CJJL	 	 	rG  c                 l     G d d      }| j                   |       j                         t               y )Nc                        e Zd Z fdZ xZS ))TestSuper.test_super___class__.<locals>.Cc                 ,    t               j                  S r>   )r   r   r   s    r   r  z0TestSuper.test_super___class__.<locals>.C.method  s    w(((r   r%  r'   s   @r   r*   rO    s    ) )r   r*   )rD   r  r   )r   r*   r   s     r   test_super___class__zTestSuper.test_super___class__  s'    	) 	) 	u-r   c                      G d dt                G fdd      | j                          j                                y )Nc                       e Zd Zy)8TestSuper.test_super_subclass___class__.<locals>.mysuperNr5   r
   r   r   mysuperrT    r   r   rU  c                       e Zd Z fdZy)2TestSuper.test_super_subclass___class__.<locals>.Cc                 *     |       j                   S r>   r'   )r   r*   rU  s    r   r  z9TestSuper.test_super_subclass___class__.<locals>.C.method  s    q$'111r   N)r   r   r   r  )r*   rU  s   r   r*   rW    s    2r   r*   )r   rD   r  )r   r*   rU  r   s    @@r   test_super_subclass___class__z'TestSuper.test_super_subclass___class__  s3    	e 		2 	2 	w/r   c                 n      G d dt                fd}t        t              D ]
  } |d        y )Nc                       e Zd Zy)/TestSuper.test_unusual_getattro.<locals>.MyTypeNr5   r
   r   r   MyTyper\    r   r   r]  c                      | fi       }t         t        |        |dd       j                  |j                  d       y )Nbarr   )r   rm   __setattr__rD   r_  )r   mytyper]  r   r   s     r   testz-TestSuper.test_unusual_getattro.<locals>.test  s>    D6)R0F&$v,3FE1EVZZ+r   foo1)rm   r  ADAPTIVE_WARMUP_DELAY)r   rb  _r]  r   s   `  @r   test_unusual_getattrozTestSuper.test_unusual_getattro  s2    	T 		,
 ,- 	AL	r   c                 z     G d d      } G d d|      } G d d|      }t        t              D ]	  } |         y )Nc                       e Zd Zd Zd Zy)(TestSuper.test_reassigned_new.<locals>.Ac                      y r>   r
   r   s    r   r   z0TestSuper.test_reassigned_new.<locals>.A.__new__  s    r   c                 D    d| j                   vr| j                  | _        y y )Nr   )rt   r   r   s    r   __init_subclass__z:TestSuper.test_reassigned_new.<locals>.A.__init_subclass__  s    CLL0"%++CK 1r   N)r   r   r   r   rl  r
   r   r   r   ri    s    .r   r   c                       e Zd Zy)(TestSuper.test_reassigned_new.<locals>.BNr5   r
   r   r   r   rn    r   r   r   c                        e Zd Z fdZ xZS )(TestSuper.test_reassigned_new.<locals>.Cc                 "    t         |   |       S r>   r   r#   s    r   r   z0TestSuper.test_reassigned_new.<locals>.C.__new__  s    ws++r   r   r'   s   @r   r*   rp    s    , ,r   r*   )r  rd  r   r   r   r*   re  s        r   test_reassigned_newzTestSuper.test_reassigned_new  s@    	. 	.	 		, 	, ,- 	AC	r   c                       G  fdd      } G d d|      } G d d|      }t        t              D ]  }|j                  |        y )Nc                   "    e Zd Ze fd       Zy)6TestSuper.test_mixed_staticmethod_hierarchy.<locals>.Ac                 J    j                  |       j                  |       y r>   )assertFalse)r   r;  kwargsr   s      r   somez;TestSuper.test_mixed_staticmethod_hierarchy.<locals>.A.some  s      &  (r   N)r   r   r   r   rz  r   s   r   r   rv    s    ) )r   r   c                        e Zd Z fdZ xZS )6TestSuper.test_mixed_staticmethod_hierarchy.<locals>.Bc                 *    t        |   | g|i |S r>   r   rz  )r   r;  ry  r   s      r   rz  z;TestSuper.test_mixed_staticmethod_hierarchy.<locals>.B.some  s    w|C9$9&99r   )r   r   r   rz  r&   r'   s   @r   r   r|    s    : :r   r   c                   (     e Zd Ze fd       Z xZS )6TestSuper.test_mixed_staticmethod_hierarchy.<locals>.Cc                 "    t         |   |       S r>   r~  r#   s    r   rz  z;TestSuper.test_mixed_staticmethod_hierarchy.<locals>.C.some  s    w|C((r   )r   r   r   r   rz  r&   r'   s   @r   r*   r    s    ) )r   r*   )r  rd  rz  rr  s   `    r   !test_mixed_staticmethod_hierarchyz+TestSuper.test_mixed_staticmethod_hierarchy  sG    	) 	)	: 	:	) 	)
 ,- 	AFF1I	r   )'r   r   r   r?   rE   rG   rI   rL   rN   rR   r[   ru   r~   r   r   r   r   r   r   r   r   r   r   r	  r  r  r  r  r&  r5  r@  rF  rL  rQ  rY  rf  rs  r  r&   r'   s   @r   r<   r<   0   s    
*+++-I	(!(F"  %& (%"'>%.%40'!E6	:2.0
&r   r<   __main__)unittestunittest.mockr   rb  r   rd  r   r   r*   r/   r4   r8   r:   TestCaser<   r   mainr
   r   r   <module>r     s    ?      ( (( ((1 (	 	 	 	a!! aH zHMMO r   