
    <ey                      j    d dl Z d dlZ G d dej                  Zedk    r ej                     dS dS )    Nc                   t    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd ZdS )Testc                      G d d          } G d d|          }|                      |j                   |                     |j                   d S )Nc                   "     e Zd ZdZ fdZ xZS )"Test.test_init_subclass.<locals>.AFc                 V    t                                                       d| _        d S NTsuper__init_subclass__initializedcls	__class__s    -/usr/lib/python3.11/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dS )"Test.test_init_subclass.<locals>.BNr   r   r    r   r   Br              Dr   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                   d S )Nc                   "     e Zd ZdZ fdZ xZS )'Test.test_init_subclass_dict.<locals>.AFc                 V    t                                                       d| _        d S 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dS )'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        t          d                     d S )Nc                       e Zd Zd ZdS ))Test.test_init_subclass_kwargs.<locals>.Ac                     || _         d S 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dS ))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"   s    	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$	 	 	 	 	Q 	 	 	 	 	4!999-----r   c                      G d d          }|                      t                    5   G d d|          }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )(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dS )(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   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   AAAc                      G d d          }|                      t                    5   G d d|          }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )(Test.test_init_subclass_wrong.<locals>.Ac                     d S 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dS )(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        |           d S )Nc                        e Zd Z fdZ xZS )5Test.test_init_subclass_skipped.<locals>.BaseWithInitc                 H     t                      j        di | | | _        d S Nr   r
   r   r4   r   s     r   r   zGTest.test_init_subclass_skipped.<locals>.BaseWithInit.__init_subclass__@   s+    ))33F333"%r   r   r   r   r   r   r   s   @r   BaseWithInitrU   ?   8        & & & & & & & & &r   rZ   c                       e Zd ZdS )8Test.test_init_subclass_skipped.<locals>.BaseWithoutInitNr   r   r   r   BaseWithoutInitr]   D   r!   r   r^   c                       e Zd ZdS )*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>   s    	& 	& 	& 	& 	& 	& 	& 	&
	 	 	 	 	l 	 	 		 	 	 	 	 	 	 	 	amQ'''o1?CCCCCr   c                 <    G d d          } G d d|          } G d d          } G d d|          } G d	 d
|||d          }|                      |j        ddg           |                      |j        g            |                      |j        g            d S )Nc                        e Zd Z fdZ xZS )-Test.test_init_subclass_diamond.<locals>.Basec                 H     t                      j        di | g | _        d S rW   r   r   callsrX   s     r   r   z?Test.test_init_subclass_diamond.<locals>.Base.__init_subclass__O   s+    ))33F333			r   rY   r   s   @r   Basere   N   s8                r   ri   c                       e Zd ZdS )-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                 \     t                      j        di | | xj        |gz  c_        d S rW   rg   )r   middler4   r   s      r   r   zATest.test_init_subclass_diamond.<locals>.Middle.__init_subclass__W   s6    ))33F33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>.Rightrightc                 \     t                      j        di | | xj        |gz  c_        d S rW   rg   )r   rt   r4   r   s      r   r   z@Test.test_init_subclass_diamond.<locals>.Right.__init_subclass__\   s6    ))33F333		eW$				r   )rt   rY   r   s   @r   Rightrs   [   s=        % % % % % % % % % %r   rv   c                       e Zd ZdS )*Test.test_init_subclass_diamond.<locals>.ANr   r   r   r   r   rx   `   r!   r   r   rp   )rp   rt   )r:   rh   )r%   ri   rl   rq   rv   r   s         r   test_init_subclass_diamondzTest.test_init_subclass_diamondM   s0   	 	 	 	 	 	 	 	
	 	 	 	 	4 	 	 		& 	& 	& 	& 	& 	& 	& 	&
	% 	% 	% 	% 	%D 	% 	% 	%
	 	 	 	 	feH 	 	 	 	 	7H"5666R(((b)))))r   c                      G d d           G fdd          }|                      |j        j        d           |                     |j        j        |           d S )Nc                       e Zd Zd ZdS )&Test.test_set_name.<locals>.Descriptorc                 "    || _         || _        d S 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              ZdS )Test.test_set_name.<locals>.ANr   r   r   dr   s   r   r   r   m           
AAAr   r   r   )r:   r   r   ra   r   )r%   r   r   s     @r   test_set_namezTest.test_set_nameg   s    	! 	! 	! 	! 	! 	! 	! 	!
	 	 	 	 	 	 	 	 	 	 	3'''aci#####r   c                       G  fddt                     } G d d           G fdd|          }                     |d           d S )	Nc                   "     e Zd Z fdZ xZS )*Test.test_set_name_metaclass.<locals>.Metac                     t                                          | |||          }                    |j        j        d                               |j        j        |           dS )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   sU    ggooc4;;  S111cek3///qr   r   r   r   r   r   )r   r%   s   @r   Metar   t   s>                 r   r   c                       e Zd Zd ZdS )0Test.test_set_name_metaclass.<locals>.Descriptorc                 "    || _         || _        d S 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              ZdS )'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   s    	 	 	 	 	 	 	4 	 	 		! 	! 	! 	! 	! 	! 	! 	!
	 	 	 	 	 	 	$ 	 	 	 	Ar   c                     G d d          |                      t                    5 } G fdd          }d d d            n# 1 swxY w Y   |j        }|                     t	          |          d           |                     t	          |          d           |                     t	          |          d           |                     |j        t                     d S )Nc                       e Zd Zd ZdS ),Test.test_set_name_error.<locals>.Descriptorc                     ddz   d S )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              ZdS )0Test.test_set_name_error.<locals>.NotGoingToWorkNr   r   r   attrr   s   r   NotGoingToWorkr              !z||r   r   \bNotGoingToWork\b\battr\b\bDescriptor\b)rE   r@   	exceptionassertRegexstrassertIsInstance	__cause__ZeroDivisionErrorr%   cmr   excr   s       @r   test_set_name_errorzTest.test_set_name_error   sC   	 	 	 	 	 	 	 	 |,, 	$$ $ $ $ $ $ $ $ $ $	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ lS#8999S;///S#4555cm->?????   AA	A	c                     G d d          |                      t                    5 } G fdd          }d d d            n# 1 swxY w Y   |j        }|                     t	          |          d           |                     t	          |          d           |                     t	          |          d           |                     |j        t                     d S )Nc                       e Zd Zd ZdS ),Test.test_set_name_wrong.<locals>.Descriptorc                     d S 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              ZdS )0Test.test_set_name_wrong.<locals>.NotGoingToWorkNr   r   s   r   r   r      r   r   r   r   r   r   )rE   r@   r   r   r   r   r   rQ   r   s       @r   test_set_name_wrongzTest.test_set_name_wrong   sB   	 	 	 	 	 	 	 	 |,, 	$$ $ $ $ $ $ $ $ $ $	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ lS#8999S;///S#4555cmY77777r   c                 x    g  G fdd           G fdd          }|                      dd           d S )Nc                       e Zd Z fdZdS )0Test.test_set_name_lookup.<locals>.NonDescriptorc                 2                         |           d S 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              ZdS )$Test.test_set_name_lookup.<locals>.ANr   )r   s   r   r   r      s        AAAr   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   s    	& 	& 	& 	& 	& 	& 	& 	& 	& 	&	  	  	  	  	  	  	  	  	  	  	E	G 	G 	G 	G 	Gr   c                 ^    G d d           G d dt                     } G d d          } G fdd||	          }|                     |j        |           |                     |j        d
           |                     |j        |           |                     |j        d
           d S )Nc                       e Zd Zd ZdS )4Test.test_set_name_init_subclass.<locals>.Descriptorc                 "    || _         || _        d S 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                     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__   s5    wwsD%<<"&*!%r   r   r   s   @r   r   r      s8                r   r   c                       e Zd Zd ZdS )+Test.test_set_name_init_subclass.<locals>.Ac                 J    | j         j        | _        | j         j        | _        d S r3   )r   r   r   rA   s    r   r   z=Test.test_set_name_init_subclass.<locals>.A.__init_subclass__   s    EK	5:r   Nr5   r   r   r   r   r      s#        & & & & &r   r   c                   $    e Zd Z              ZdS )+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 	 	 	 	 	agq!!!%%%alA&&&%%%%%r   c                 z    g  G fdd           G fdd          }|                      g d           d S )Nc                       e Zd Z fdZdS )5Test.test_set_name_modifying_dict.<locals>.Descriptorc                 Z    t          ||dz   d                                |           d S )Nr9   )setattrr   )r%   r   r   notifieds      r   r   zBTest.test_set_name_modifying_dict.<locals>.Descriptor.__set_name__   s1    tcz4000%%%%%r   Nr   )r   s   r   r   r      s.        & & & & & & &r   r   c                   t    e Zd Z              Z              Z              Z              Z              ZdS ),Test.test_set_name_modifying_dict.<locals>.AN)r   r   r   abcr   er   s   r   r   r      sF        
A
A
A
A
AAAr   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(A(ABBBBBr   c           	          G d dt                     }|                     t                    5   G d d|d          }d d d            n# 1 swxY w Y   |                     t                    5  t          j        dt
          ft          |d                     d d d            n# 1 swxY w Y   t          j        dt
          ft          |d                      G d dt                     }|                     t                    5   G d d|d          }d d d            n# 1 swxY w Y    G d	 dt                     } G d
 d|d          }|                     |j	        d           d S )Nc                       e Zd ZdS ) Test.test_errors.<locals>.MyMetaNr   r   r   r   MyMetar      r!   r   r   c                       e Zd ZdS !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                 N    t                                          |||           d S r3   )r   __init__r%   r   r   	namespacer   r   s        r   r   z)Test.test_errors.<locals>.MyMeta.__init__   s%      ui88888r   )r   r   r   r   r   r   s   @r   r   z Test.test_errors.<locals>.MyMeta   s8        9 9 9 9 9 9 9 9 9r   c                       e Zd ZdS r   r   r   r   r   r   z!Test.test_errors.<locals>.MyClass   rD   r   c                   (     e Zd Z fdZ fdZ xZS )r   c                 L    t                                          | |||          S r3   r   r   )r   r   r   r   r   r   s        r   r   z(Test.test_errors.<locals>.MyMeta.__new__   s    wwsD%CCCr   c                 \    t                                          |||           || _        d S r3   )r   r   r   r   s        r   r   z)Test.test_errors.<locals>.MyMeta.__init__   s*      ui888 (r   )r   r   r   r   r   r   r   s   @r   r   z Test.test_errors.<locals>.MyMeta   sV        D D D D D) ) ) ) ) ) ) ) )r   c                       e Zd ZdS r   r   r   r   r   r   z!Test.test_errors.<locals>.MyClass   r!   r   )
r   rE   rQ   types	new_classobjectr-   prepare_classr:   r   r%   r   r   s      r   test_errorszTest.test_errors   s   	 	 	 	 	T 	 	 	 y)) 	 	    FQ    	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	@ 	@OIy 6A>>>@ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	Iy 6A>>>	@ 	@ 	@	9 	9 	9 	9 	9T 	9 	9 	9 y)) 	 	    FQ    	 	 	 	 	 	 	 	 	 	 	 	 	 	 		) 	) 	) 	) 	)T 	) 	) 	)	 	 	 	 	 	 	 	 	 	)1-----s5   AAA0,B((B,/B,D((D,/D,c                 *    G d dt                     }|                     t                    5   G d d|          }d d d            n# 1 swxY w Y    G d dt                     } G d d|d	          }|                     |j        d           d S )
Nc                        e Zd Z fdZ xZS )/Test.test_errors_changed_pep487.<locals>.MyMetac                 N    t                                          | |||          S )Nr   r   r-   r   )r   r   r   r   r   s       r   r   z7Test.test_errors_changed_pep487.<locals>.MyMeta.__new__   s+    wwsU,5 ' 7 7 7r   r   r   s   @r   r   r     s8        7 7 7 7 7 7 7 7 7r   r   c                       e Zd ZdS 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*    wwsD%CC (r   r   r   s   @r   r   z/Test.test_errors_changed_pep487.<locals>.MyMeta  s8                r   c                       e Zd ZdS r  r   r   r   r   r   z0Test.test_errors_changed_pep487.<locals>.MyClass  r!   r   r   r   )r   rE   rQ   r:   r   r  s      r   test_errors_changed_pep487zTest.test_errors_changed_pep487   sB   	7 	7 	7 	7 	7T 	7 	7 	7
 y)) 	 	    F    	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	T 	 	 		 	 	 	 	 	 	 	 	 	)1-----s   A

AAc                 6   t          dt          fi           }|                     |t                      |                     |j        d           |                     t                    5  t          dt          fi            d d d            d S # 1 swxY w Y   d S )NNewClassr	  )r   r  r   r:   r   rE   rQ   )r%   ts     r   	test_typezTest.test_type  s    fY++a&&&Z000y)) 	< 	<j	;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   (BB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 D D* * *4
$ 
$ 
$  "@ @ @8 8 8
G 
G 
G& & &4C C C !. !. !.F. . .,< < < < <r   r   __main__)r   unittestTestCaser   r   mainr   r   r   <module>r     ss     R< R< R< R< R<8 R< R< R<j zHMOOOOO r   