
    daf,                      l    d dl Z d dlZ G d dej                        Zedk(  r ej
                          yy)    Nc                   r    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zy)Testc                      G d d      } G d d|      }| j                  |j                         | j                  |j                         y )Nc                   "     e Zd ZdZ fdZ xZS )"Test.test_init_subclass.<locals>.AFc                 0    t         |           d| _        y NTsuper__init_subclass__initializedcls	__class__s    1/root/Python-3.12.4/Lib/test/test_subclassinit.pyr   z4Test.test_init_subclass.<locals>.A.__init_subclass__
       )+"&    __name__
__module____qualname__r   r   __classcell__r   s   @r   Ar          K' 'r   r   c                       e Zd Zy)"Test.test_init_subclass.<locals>.BNr   r   r    r   r   Br          r   r    )assertFalser   
assertTrueselfr   r    s      r   test_init_subclasszTest.test_init_subclass   s<    	' 	'	 	 	'&r   c                      G d dt               } G d d|      }| j                  |j                         | j                  |j                         y )Nc                   "     e Zd ZdZ fdZ xZS )'Test.test_init_subclass_dict.<locals>.AFc                 0    t         |           d| _        y r	   r
   r   s    r   r   z9Test.test_init_subclass_dict.<locals>.A.__init_subclass__   r   r   r   r   s   @r   r   r)      r   r   r   c                       e Zd Zy)'Test.test_init_subclass_dict.<locals>.BNr   r   r   r   r    r,      r!   r   r    )dictr"   r   r#   r$   s      r   test_init_subclass_dictzTest.test_init_subclass_dict   s>    	' 	'	 	 	'&r   c                 ~     G d d      } G d d|d      }| j                  |j                  t        d             y )Nc                       e Zd Zd Zy))Test.test_init_subclass_kwargs.<locals>.Ac                     || _         y N)kwargs)r   r4   s     r   r   z;Test.test_init_subclass_kwargs.<locals>.A.__init_subclass__$   s	    #
r   Nr   r   r   r   r   r   r   r   r1   #   s    $r   r   c                       e Zd Zy))Test.test_init_subclass_kwargs.<locals>.BNr   r   r   r   r    r7   '   r!   r   r       )x)assertEqualr4   r-   r$   s      r   test_init_subclass_kwargszTest.test_init_subclass_kwargs"   s4    	$ 	$	Q 	 	4!9-r   c                      G 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d Zy)(Test.test_init_subclass_error.<locals>.Ac                     t         r3   )RuntimeErrorr   s    r   r   z:Test.test_init_subclass_error.<locals>.A.__init_subclass__.   s    ""r   Nr5   r   r   r   r   r>   -   s    #r   r   c                       e Zd Zy)(Test.test_init_subclass_error.<locals>.BNr   r   r   r   r    rC   2       r   r    )assertRaisesr@   r$   s      r   test_init_subclass_errorzTest.test_init_subclass_error,   s=    	# 	# |, 	A 	 	 	   5>c                      G 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d Zy)(Test.test_init_subclass_wrong.<locals>.Ac                      y r3   r   )r   whatevers     r   r   z:Test.test_init_subclass_wrong.<locals>.A.__init_subclass__7       r   Nr5   r   r   r   r   rJ   6       r   r   c                       e Zd Zy)(Test.test_init_subclass_wrong.<locals>.BNr   r   r   r   r    rP   ;   rD   r   r    )rE   	TypeErrorr$   s      r   test_init_subclass_wrongzTest.test_init_subclass_wrong5   s=    	 	 y) 	A 	 	 	rG   c                      G d d      } G d d|      } G d d|      }| j                  |j                  |       | j                  |j                  |       y )Nc                        e Zd Z fdZ xZS )5Test.test_init_subclass_skipped.<locals>.BaseWithInitc                 2    t        |   di | | | _        y Nr   r
   r   r4   r   s     r   r   zGTest.test_init_subclass_skipped.<locals>.BaseWithInit.__init_subclass__@   s    )3F3"%r   r   r   r   r   r   r   s   @r   BaseWithInitrU   ?       & &r   rZ   c                       e Zd Zy)8Test.test_init_subclass_skipped.<locals>.BaseWithoutInitNr   r   r   r   BaseWithoutInitr]   D   r!   r   r^   c                       e Zd Zy)*Test.test_init_subclass_skipped.<locals>.ANr   r   r   r   r   r`   G   r!   r   r   )assertIsr   )r%   rZ   r^   r   s       r   test_init_subclass_skippedzTest.test_init_subclass_skipped>   sL    	& 	&
	l 		 	 	ammQ'o11?Cr   c                 "    G d d      } G d d|      } G d d      } G d d|      } G d	 d
|||d      }| j                  |j                  ddg       | j                  |j                  g        | j                  |j                  g        y )Nc                        e Zd Z fdZ xZS )-Test.test_init_subclass_diamond.<locals>.Basec                 2    t        |   di | g | _        y rW   r   r   callsrX   s     r   r   z?Test.test_init_subclass_diamond.<locals>.Base.__init_subclass__O   s    )3F3	r   rY   r   s   @r   Basere   N   s     r   ri   c                       e Zd Zy)-Test.test_init_subclass_diamond.<locals>.LeftNr   r   r   r   Leftrk   S   r!   r   rl   c                        e Zd Z fdZ xZS )/Test.test_init_subclass_diamond.<locals>.Middlec                 P    t        |   di | | xj                  |gz  c_        y rW   rg   )r   middler4   r   s      r   r   zATest.test_init_subclass_diamond.<locals>.Middle.__init_subclass__W   s#    )3F3		fX%	r   rY   r   s   @r   Middlern   V   r[   r   rq   c                         e Zd Zd fd	Z xZS ).Test.test_init_subclass_diamond.<locals>.Rightc                 P    t        |   di | | xj                  |gz  c_        y rW   rg   )r   rightr4   r   s      r   r   z@Test.test_init_subclass_diamond.<locals>.Right.__init_subclass__\   s#    )3F3		eW$	r   )ru   rY   r   s   @r   Rightrs   [   s    % %r   rv   c                       e Zd Zy)*Test.test_init_subclass_diamond.<locals>.ANr   r   r   r   r   rx   `   r!   r   r   rp   )rp   ru   )r:   rh   )r%   ri   rl   rq   rv   r   s         r   test_init_subclass_diamondzTest.test_init_subclass_diamondM   s    	 	
	4 		& 	&
	%D 	%
	feH 	 	7H"56R(b)r   c                      G d d       G fdd      }| j                  |j                  j                  d       | j                  |j                  j                  |       y )Nc                       e Zd Zd Zy)&Test.test_set_name.<locals>.Descriptorc                      || _         || _        y r3   ownernamer%   r   r   s      r   __set_name__z3Test.test_set_name.<locals>.Descriptor.__set_name__i       "
 	r   Nr   r   r   r   r   r   r   
Descriptorr|   h       !r   r   c                       e Zd Z W         Zy)Test.test_set_name.<locals>.ANr   r   r   dr   s   r   r   r   m   
    Ar   r   r   )r:   r   r   ra   r   )r%   r   r   s     @r   test_set_namezTest.test_set_nameg   sG    	! 	!
	 	 	3'accii#r   c                 ~      G  fddt               } G d d       G fdd|      } j                  |d       y )	Nc                   "     e Zd Z fdZ xZS )*Test.test_set_name_metaclass.<locals>.Metac                     t         |   | |||      }j                  |j                  j                  d       j                  |j                  j                  |       y)Nr   r   )r   __new__r:   r   r   ra   r   )r   r   basesnsretr   r%   s        r   r   z2Test.test_set_name_metaclass.<locals>.Meta.__new__u   sH    goc4;  S1ceekk3/r   r   r   r   r   r   )r   r%   s   @r   Metar   t   s     r   r   c                       e Zd Zd Zy)0Test.test_set_name_metaclass.<locals>.Descriptorc                      || _         || _        y r3   r~   r   s      r   r   z=Test.test_set_name_metaclass.<locals>.Descriptor.__set_name__|   r   r   Nr   r   r   r   r   r   {   r   r   r   c                       e Zd Z W         Zy)'Test.test_set_name_metaclass.<locals>.ANr   r   s   r   r   r      r   r   r   	metaclassr   )typer:   )r%   r   r   r   s   `  @r   test_set_name_metaclasszTest.test_set_name_metaclasss   s5    	4 		! 	!
	$ 	Ar   c                 T    G d d      | j                  t              5 } G fdd      }d d d        j                  j                  }| j	                  t        |      d       | j	                  t        |      d       | j	                  t        |      d       y # 1 sw Y   qxY w)Nc                       e Zd Zd Zy),Test.test_set_name_error.<locals>.Descriptorc                     ddz   y )N   r   r   r   s      r   r   z9Test.test_set_name_error.<locals>.Descriptor.__set_name__   s	    !r   Nr   r   r   r   r   r      s    r   r   c                       e Zd Z W         Zy)0Test.test_set_name_error.<locals>.NotGoingToWorkNr   r   r   attrr   s   r   NotGoingToWorkr      
    !|r   r   \bNotGoingToWork\b\battr\b\bDescriptor\b)rE   ZeroDivisionError	exception	__notes__assertRegexstrr%   cmr   notesr   s       @r   test_set_name_errorzTest.test_set_name_error   s    	 	 01 	$R$ $	$ &&U%:;U[1U%67	$ 	$   BB'c                 T    G d d      | j                  t              5 } G fdd      }d d d        j                  j                  }| j	                  t        |      d       | j	                  t        |      d       | j	                  t        |      d       y # 1 sw Y   qxY w)Nc                       e Zd Zd Zy),Test.test_set_name_wrong.<locals>.Descriptorc                      y r3   r   )r%   s    r   r   z9Test.test_set_name_wrong.<locals>.Descriptor.__set_name__   rM   r   Nr   r   r   r   r   r      rN   r   r   c                       e Zd Z W         Zy)0Test.test_set_name_wrong.<locals>.NotGoingToWorkNr   r   s   r   r   r      r   r   r   r   r   r   )rE   rQ   r   r   r   r   r   s       @r   test_set_name_wrongzTest.test_set_name_wrong   s    	 	 y) 	$R$ $	$ &&U%:;U[1U%67	$ 	$r   c                 b    g  G fdd       G fdd      }| j                  dd       y )Nc                       e Zd Z fdZy)0Test.test_set_name_lookup.<locals>.NonDescriptorc                 (    j                  |       y r3   )append)r%   r   resolveds     r   __getattr__z<Test.test_set_name_lookup.<locals>.NonDescriptor.__getattr__   s    %r   N)r   r   r   r   )r   s   r   NonDescriptorr      s    &r   r   c                       e Zd Z W         Zy)$Test.test_set_name_lookup.<locals>.ANr   )r   s   r   r   r      s
    Ar   r   r   z*__set_name__ is looked up in instance dict)assertNotIn)r%   r   r   r   s     @@r   test_set_name_lookupzTest.test_set_name_lookup   s4    	& 	&	  	  	E	Gr   c                 J    G d d       G d dt               } G d d      } G fdd||	      }| j                  |j                  |       | j                  |j                  d
       | j                  |j
                  |       | j                  |j                  d
       y )Nc                       e Zd Zd Zy)4Test.test_set_name_init_subclass.<locals>.Descriptorc                      || _         || _        y r3   r~   r   s      r   r   zATest.test_set_name_init_subclass.<locals>.Descriptor.__set_name__   r   r   Nr   r   r   r   r   r      r   r   r   c                        e Zd Z fdZ xZS ).Test.test_set_name_init_subclass.<locals>.Metac                 p    t         |   | |||      }|j                  |_        |j                  |_        |S r3   )r   r   r   
meta_ownerr   	meta_name)r   r   r   r   r%   r   s        r   r   z6Test.test_set_name_init_subclass.<locals>.Meta.__new__   s2    wsD%<"&**!%r   r   r   s   @r   r   r      s     r   r   c                       e Zd Zd Zy)+Test.test_set_name_init_subclass.<locals>.Ac                 p    | j                   j                  | _        | j                   j                  | _        y r3   )r   r   r   rA   s    r   r   z=Test.test_set_name_init_subclass.<locals>.A.__init_subclass__   s     EEKK	55::r   Nr5   r   r   r   r   r      s    &r   r   c                       e Zd Z W         Zy)+Test.test_set_name_init_subclass.<locals>.BNr   r   s   r   r    r      r   r   r    r   r   )r   ra   r   r:   r   r   )r%   r   r   r    r   s       @r   test_set_name_init_subclassz Test.test_set_name_init_subclass   s    	! 	!
	4 		& 	&
	T 	 	aggq!%allA&%r   c                 d    g  G fdd       G fdd      }| j                  g d       y )Nc                       e Zd Z fdZy)5Test.test_set_name_modifying_dict.<locals>.Descriptorc                 H    t        ||dz   d        j                  |       y )Nr9   )setattrr   )r%   r   r   notifieds      r   r   zBTest.test_set_name_modifying_dict.<locals>.Descriptor.__set_name__   s    tcz40%r   Nr   )r   s   r   r   r      s    &r   r   c                   ^    e Zd Z W         Z W         Z W         Z W         Z W         Zy),Test.test_set_name_modifying_dict.<locals>.AN)r   r   r   abcr   er   s   r   r   r      s&    AAAAAr   r   )r   r   r   r   r   )assertCountEqual)r%   r   r   r   s     @@r   test_set_name_modifying_dictz!Test.test_set_name_modifying_dict   s/    	& 	&
	 	 	h(ABr   c           	      |    G d dt               }| j                  t              5   G d d|d      }d d d        | j                  t              5  t        j                  dt
        ft        |d             d d d        t        j                  dt
        ft        |d              G d dt               }| j                  t              5   G d d	|d      }d d d         G d
 dt               } G d d|d      }| j                  |j                  d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ZxY w)Nc                       e Zd Zy) Test.test_errors.<locals>.MyMetaNr   r   r   r   MyMetar      r!   r   r   c                       e Zd Zy)!Test.test_errors.<locals>.MyClassNr   r   r   r   MyClassr      rD   r   r   r   r   otherargc                        e Zd Z fdZ xZS )r   c                 (    t         |   |||       y r3   )r   __init__r%   r   r   	namespacer   r   s        r   r   z)Test.test_errors.<locals>.MyMeta.__init__   s     ui8r   )r   r   r   r   r   r   s   @r   r   z Test.test_errors.<locals>.MyMeta   s    9 9r   c                       e Zd Zy)"Test.test_errors.<locals>.MyClass2Nr   r   r   r   MyClass2r      rD   r   r   c                   (     e Zd Z fdZ fdZ xZS )r   c                 (    t         |   | |||      S r3   r   r   )r   r   r   r   r   r   s        r   r   z(Test.test_errors.<locals>.MyMeta.__new__   s    wsD%CCr   c                 6    t         |   |||       || _        y r3   )r   r   r   r   s        r   r   z)Test.test_errors.<locals>.MyMeta.__init__   s     ui8 (r   )r   r   r   r   r   r   r   s   @r   r   z Test.test_errors.<locals>.MyMeta   s    D) )r   c                       e Zd Zy)"Test.test_errors.<locals>.MyClass3Nr   r   r   r   MyClass3r      r!   r   r   )
r   rE   rQ   types	new_classobjectr-   prepare_classr:   r   )r%   r   r   r   r   s        r   test_errorszTest.test_errors   s   	T 	 y) 	FQ 	 y) 	@OOIy 6A>@	@ 	Iy 6A>	@	9T 	9 y) 	Va 		)T 	)	! 	 	**A.;	 		@ 	@	 	s#   D(D&D2D#&D/2D;c                      G d dt               }| j                  t              5   G d d|      }d d d         G d dt               } G d d|d	
      }| j                  |j                  d	       y # 1 sw Y   BxY w)Nc                        e Zd Z fdZ xZS )/Test.test_errors_changed_pep487.<locals>.MyMetac                 *    t         |   | |||      S )Nr   r   r-   r   )r   r   r   r   r   s       r   r   z7Test.test_errors_changed_pep487.<locals>.MyMeta.__new__   s"    wsU,5 ' 7 7r   r   r   s   @r   r   r     s    7 7r   r   c                       e Zd Zy)0Test.test_errors_changed_pep487.<locals>.MyClassNr   r   r   r   r   r    rD   r   r   r   c                        e Zd Z fdZ xZS )r  c                 :    t         |   | |||      }||_        |S r3   )r   r   r   )r   r   r   r   r   r%   r   s         r   r   z7Test.test_errors_changed_pep487.<locals>.MyMeta.__new__  s#    wsD%C (r   r   r   s   @r   r   z/Test.test_errors_changed_pep487.<locals>.MyMeta  s     r   c                       e Zd Zy)1Test.test_errors_changed_pep487.<locals>.MyClass2Nr   r   r   r   r   r  
  r!   r   r   r   r   )r   rE   rQ   r:   r   )r%   r   r   r   s       r   test_errors_changed_pep487zTest.test_errors_changed_pep487   sq    	7T 	7
 y) 	F 		T 		! 	 	**A.	 	s   A33A<c                    t        dt        fi       }| j                  |t                | j                  |j                  d       | j                  t              5  t        dt        fi        d d d        y # 1 sw Y   y xY w)NNewClassr
  )r   r  assertIsInstancer:   r   rE   rQ   )r%   ts     r   	test_typezTest.test_type  sg    fY+a&Z0y) 	<j	;	< 	< 	<s   A77B N)r   r   r   r&   r.   r;   rF   rR   rb   ry   r   r   r   r   r   r   r   r  r  r  r   r   r   r   r      s[    ''.D*4
$"88
G&4C !/F/,<r   r   __main__)r  unittestTestCaser   r   mainr   r   r   <module>r     s:     P<8 P<f zHMMO r   