
    2hhRU                        S SK r S SKJrJr  S SKJr  S SKJr  S SKJ	r	  \	R                  " S5      r\	R                  " S5      rSrSr " S	 S
\5      rS r " S S\ R$                  5      r\S:X  a  \ R*                  " 5         gg)    N)OrderedDictUserDict)MappingProxyType)support)import_helper	_testcapi_testlimitedcapi   c                   &    \ rS rSrS rS rS rSrg)DictSubclass   c                     [        S5      e)Nzdo not get evilRuntimeErrorselfkeys     A/opt/python-3.13.8/usr/lib/python3.13/test/test_capi/test_dict.py__getitem__DictSubclass.__getitem__       ,--    c                     [        S5      e)Nzdo not set evilr   )r   r   values      r   __setitem__DictSubclass.__setitem__   r   r   c                     [        S5      e)Nzdo not del evilr   r   s     r   __delitem__DictSubclass.__delitem__   r   r    N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__r    r   r   r   r      s    ...r   r   c               #   $   #    Sv   Sv   Sv   g 7f)Nabcr    r    r   r   genr*      s     
I
I
Is   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSr g) CAPITest   c                 N   [         R                  nU R                  U" SS05      5        U R                  U" [        SS05      5      5        U R	                  U" [        SS05      5      5        U R	                  U" SS/5      5        U R	                  U" [        5       5      5        g N      )r	   
dict_check
assertTruer   assertFalser   objectr   checks     r   test_dict_checkCAPITest.test_dict_check   s     ++q!f&k1a&123xA/011v'vx)r   c                 N   [         R                  nU R                  U" SS05      5        U R                  U" [	        SS05      5      5        U R                  U" [        SS05      5      5        U R                  U" SS/5      5        U R                  U" [        5       5      5        g r/   )r	   dict_checkexactr3   r4   r   r   r5   r6   s     r   test_dict_checkexactCAPITest.test_dict_checkexact(   s     00q!f&{Aq6234xA/011v'vx)r   c                     [         R                  nU" 5       nU R                  U0 5        U R                  [	        U5      [
        5        U" 5       nU R                  X25        g N)r	   dict_newassertEqualassertIstypedictassertIsNot)r   r@   dctdct2s       r   test_dict_newCAPITest.test_dict_new1   sK    #,,jb!d3i&z#r   c                    [         R                  nSS0[        SS05      [        SS05      4 H  nU" U5      nU R	                  [        U5      [        5        U R                  X25        U R                  [        5         SUS'   S S S 5        U R                  US   S5        SUS'   U R                  US   S5        M     U R                  [        U/ 5        U R                  [        US5        g ! , (       d  f       Np= f)Nr0   r1         *   )
r	   dictproxy_newr   r   rB   rC   r   rA   assertRaises	TypeError)r   rN   rF   proxys       r   test_dictproxy_newCAPITest.test_dictproxy_new9   s    (66q6;1v.!Q0@@C!#&EMM$u+'78U(""9-a .U1Xq)CFU1Xq) A 	)]B7)]B7 .-s   >C..
C<	c                    [         R                  nSS0[        SS05      4 H;  nU" U5      nU R                  [	        U5      [
        5        U R                  X25        M=     U R                  [        U[        5       5        U R                  [        U/ 5        U R                  [        US5        U R                  [        U[        5        g Nr0   r1   rM   )r	   	dict_copyr   rB   rC   rD   rA   rO   SystemErrorr   NULL)r   copyrF   dct_copys       r   test_dict_copyCAPITest.test_dict_copyI   s    ))q6;1v..CCyHMM$x.$/X+ /
 	+tXZ8+tR0+tR0+tT2r   c                    [         R                  nSS0nU" U5        U R                  U0 5        [        SS05      nU" U5        U R                  USS05        SS/nU" U5        U R                  USS/5        U" [	        5       5        g r/   )r	   
dict_clearrA   r   r5   )r   clearrF   lsts       r   test_dict_clearCAPITest.test_dict_clearU   s     ++!fc
b!
 1vc
q!f%!fc
q!f%fhr   c                    [         R                  nU R                  U" SS05      S5        U R                  U" [        SS05      5      S5        U R	                  [
        U[        5       5        U R	                  [
        U/ 5        U R	                  [
        US5        U R	                  [
        U[        5       5        U R	                  [
        U[        5        g rU   )	r	   	dict_sizerA   r   rO   rW   r   r5   rX   )r   sizes     r   test_dict_sizeCAPITest.test_dict_sizeh   s    ))q!fq)k1a&12A6+tXZ8+tR0+tR0+tVX6+tT2r   c                    [         R                  nSSS.nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  U" US5      S5        [        U5      nU R                  U" US5      S5        U R                  U" US5      [        5        [        R                  " 5        nU R                  U" 0 / 5      [        5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        U R                  U" SS5      [        5        U R                  U" S/S	5      [        5        g ! , (       d  f       NJ= f)
Nr0   r1   r'      🐍r'   r(   rj   zunhashable type: 'list'rM   r   )r	   dict_getitemrA   rB   KeyErrorr   r   catch_unraisable_exception
unraisableexc_typerP   str	exc_value)r   getitemrF   rG   cms        r   test_dict_getitemCAPITest.test_dict_getitems   s)   "//Q'c*A.gc3'2l3Q7C s+Q/gdC((3//1RMM'"b/84R]]33Y?S!8!8968 2 	gb#&1gqc1ox0 21s   ;A7E66
Fc                 0   [         R                  nSSS.nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  U" USR                  5       5      S5        [        U5      nU R                  U" US5      S5        U R                  U" US5      [        5        [        R                  " 5        nU R                  U" 0 [        5      [        5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        U R                  U" SS5      [        5        U R                  U" / S5      [        5        g ! , (       d  f       NI= f)	Nr0   r1   ri      a   brj   z'utf-8' codec can't decoderM   )r	   dict_getitemstringrA   rB   rl   encoder   r   rm   INVALID_UTF8rn   ro   UnicodeDecodeErrorassertRegexrp   rq   )r   getitemstringrF   rG   rs   s        r   test_dict_getitemstring CAPITest.test_dict_getitemstring   s3   (;;Q'sD115mC.9sL,?,?,ABAFC tT2A6mD$/://1RMM-L98DR]]335GHS!8!899; 2 	mB-x8mB-x8 21s   	A;F
Fc                    [         R                  nSSS.nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  U" US5      S5        [        U5      nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  [        USS5        U R                  [        U0 / 5        U R                  [        U/ S5        U R                  [        U/ S5        g Nr0   r1   ri   r'   r(   rj   rM   )	r   dict_getitemrefrA   rB   rl   r   rO   rW   rP   r   rr   rF   rG   s       r   test_dict_getitemrefCAPITest.test_dict_getitemref   s    ++Q'c*A.gc3'2l3Q7C s+Q/gdC((3+wC8)Wb"5+wA6+wC8r   c                    [         R                  nSSS.nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  U" USR                  5       5      S5        [        U5      nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  [        USS5        U R                  [        U0 [        5        U R                  [        U/ S5        g )Nr0   r1   ri   rw   rx   rj   rM   )r   dict_getitemstringrefrA   rB   rl   rz   r   rO   rW   r|   r{   )r   r~   rF   rG   s       r   test_dict_getitemstringref#CAPITest.test_dict_getitemstringref   s    !77Q'sD115mC.9sL,?,?,ABAFC tT2A6mD$/:+}b$?,mRN+}b$?r   c                    [         R                  nSSS.nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  U" US5      S5        [        U5      nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  [        USS5        U R                  [        U0 / 5        U R                  [        U/ S5        U R                  [        U/ S5        g r   )	r	   dict_getitemwitherrorrA   rB   rl   r   rO   rW   rP   r   s       r   test_dict_getitemwitherror#CAPITest.test_dict_getitemwitherror   s    "88Q'c*A.gc3'2l3Q7C s+Q/gdC((3+wC8)Wb"5+wA6+wC8r   c                 d   [         R                  nSSS.nU R                  U" US5      5        U R                  U" US5      5        U R                  U" US5      5        [	        U5      nU R                  U" US5      5        U R                  U" US5      5        U R                  [        U0 / 5        g )Nr0   r1   ri   r'   r(   rj   )r	   dict_containsr3   r4   r   rO   rP   )r   containsrF   rG   s       r   test_dict_containsCAPITest.test_dict_contains   s    #11Q'c*+#s+,l34C s+,$,-)Xr26r   c                    [         R                  nSSS.nU R                  U" US5      5        U R                  U" US5      5        U R                  U" USR	                  5       5      5        U R                  [        X[        5        [        U5      nU R                  U" US5      5        U R                  U" US5      5        g )Nr0   r1   ri   rw   rx   rj   )	r   dict_containsstringr3   r4   rz   rO   r|   r{   r   )r   contains_stringrF   rG   s       r   test_dict_contains_string"CAPITest.test_dict_contains_string   s    #77Q'T23d34\-@-@-BCD,oLQC d34t45r   c                    [         R                  n0 nU" USS5        U R                  USS05        U" USS5        U R                  USSS.5        [        5       nU" USS5        U R                  USS05        U R	                  [
        U0 / S5        U R	                  [        U[        5       SS5        U R	                  [        US/SS5        U R	                  [        USSS5        g )	Nr'      rj      ri   r0   r   rM   )r	   dict_setitemrA   r   rO   rP   rW   r   )r   setitemrF   rG   s       r   test_dict_setitemCAPITest.test_dict_setitem   s    "//S!sAh'\1%AQ78~c1Qx()Wb"a8+w
CC+wQ:+wC;r   c                    [         R                  n0 nU" USS5        U R                  USS05        U" USR                  5       S5        U R                  USSS.5        [	        5       nU" USS5        U R                  USS05        U R                  [        U0 [        S5        U R                  [        U[        5       SS5        U R                  [        USSS5        g )Nrw   r   r'   rj   r   ri   rM   )
r	   dict_setitemstringrA   rz   r   rO   r|   r{   rW   r   )r   setitemstringrF   rG   s       r   test_dict_setitemstring CAPITest.test_dict_setitemstring  s    (;;c4#sAh'c<..0!4AQ78~dD!$Qx(,mRqQ+}hj$J+}b$Br   c                 0   [         R                  nSSSS.nU" US5        U R                  USSS.5        U R                  [        XS5        U" US5        U R                  US	S05        [        SSS
.5      nU" US5        U R                  US	S05        U R                  [        XS5        U R                  [        U0 / 5        U R                  [        U[        SS05      S5        U R                  [        US/S5        U R                  [        USS5        g )Nr0   r1   rK   r'   r)   rj   r'   r)   rj   r(   rj   r)   r'   r)   r   rM   )	r	   dict_delitemrA   rO   rl   r   rP   rW   r   )r   delitemrF   rG   s       r   test_dict_delitemCAPITest.test_dict_delitem  s   "//AQ/SAQ78(G#6\"sAh'!!,-cQx((G37)Wb"5+w#q0BCH+wQ7+wC8r   c                 "   [         R                  nSSSS.nU" US5        U R                  USSS.5        U R                  [        XS5        U" USR                  5       5        U R                  US	S05        [        SSS
.5      nU" US5        U R                  US	S05        U R                  [        XS5        U R                  [        U0 [        5        U R                  [        U[        SS05      S5        U R                  [        USS5        g )Nr0   r1   rK   r   rw   r   rx   rj   r)   r   r'   rM   )r	   dict_delitemstringrA   rO   rl   rz   r   r|   r{   rW   r   )r   delitemstringrF   rG   s       r   test_dict_delitemstring CAPITest.test_dict_delitemstring0  s    (;;AQ/c4 AQ78(M=c<..01sAh'!!,-dD!Qx((M>,mRN+}hQx6H$O+}b$?r   c                    [         R                  n0 nU R                  U" USS5      S5        U R                  USS05        U R                  U" USS5      S5        U R                  USS05        [        5       nU R                  U" USS5      S5        U R                  USS05        U R                  U" USS5      S5        U R                  USS05        U R	                  [
        U0 / S5        U R	                  [        U[        5       SS5        U R	                  [        US/SS5        U R	                  [        USSS5        g Nr'   r   r   r0   r   rM   )r   dict_setdefaultrA   r   rO   rP   rW   r   r   
setdefaultrF   rG   s       r   test_dict_setdefaultCAPITest.test_dict_setdefaultD  s)   ..
Ca0!4sAh'Ca0!4sAh'~D#q115Qx(D#q115Qx()ZR;+z8:sAF+zA31=+z2sA>r   c                    [         R                  n0 nU R                  U" USS5      S5        U R                  USS05        U R                  U" USS5      S5        U R                  USS05        [        5       nU R                  U" USS5      S5        U R                  USS05        U R                  U" USS5      S5        U R                  USS05        U R	                  [
        U0 / S5        U R	                  [        U[        5       SS5        U R	                  [        US/SS5        U R	                  [        USSS5        g r   )r   dict_setdefaultrefrA   r   rO   rP   rW   r   r   s       r   test_dict_setdefaultref CAPITest.test_dict_setdefaultrefZ  s)   11
Ca0!4sAh'Ca0!4sAh'~D#q115Qx(D#q115Qx()ZR;+z8:sAF+zA31=+z2sA>r   c                     " S S[         5      nSSSS.nU[        U5      U" U5      4 H  nU R                  [        R	                  U5      [        UR                  5       5      5        U R                  [        R                  U5      [        UR                  5       5      5        U R                  [        R                  U5      [        UR                  5       5      5        M     g )Nc                   &    \ rS rSrS rS rS rSrg):CAPITest.test_mapping_keys_valuesitems.<locals>.BadMappingiq  c                     g r?   r    r   s    r   keys?CAPITest.test_mapping_keys_valuesitems.<locals>.BadMapping.keysr      r   c                     g r?   r    r   s    r   valuesACAPITest.test_mapping_keys_valuesitems.<locals>.BadMapping.valuest  r   r   c                     g r?   r    r   s    r   items@CAPITest.test_mapping_keys_valuesitems.<locals>.BadMapping.itemsv  r   r   r    N)r!   r"   r#   r$   r   r   r   r%   r    r   r   
BadMappingr   q  s    r   r   r0   r1   rK   )foobarspam)rD   r   assertListEqualr	   	dict_keyslistr   dict_valuesr   
dict_itemsr   )r   r   dict_objmappings       r   test_mapping_keys_valuesitems&CAPITest.test_mapping_keys_valuesitemsp  s    	 	 Q2 ,x"8*X:NOG  !1!;!;G!D!%hmmo!68  !1!=!=g!F!%hoo&7!8:  !1!<!<W!E!%hnn&6!79 Pr   c                    [        5       / [        5       4 Hr  nU R                  [        [        R
                  U5        U R                  [        [        R                  U5        U R                  [        [        R                  U5        Mt     g r?   )r   r5   rO   rW   r	   r   r   r   )r   r   s     r   "test_dict_keys_valuesitems_bad_arg+CAPITest.test_dict_keys_valuesitems_bad_arg  sb    z2vx/Gk+;+E+EwOk+;+G+GQk+;+F+FP 0r   c                 *   [         R                  nU R                  U" 0 S5      5        SSSS.nSn/ n U" X#5      nUc  O+Uu  pcpxU R                  US5        UR	                  Xx45        M7  U R                  U[        UR                  5       5      5        g )Nr   r0   r1   rK   r'   r(   r)   )r	   	dict_nextassertIsNonerA   appendr   r   )	r   r   rF   pospairsresrcr   r   s	            r   test_dict_nextCAPITest.test_dict_next  s    $..	)B*+AA&C%C{"%BSR#LL#&  	SYY[ 12r   c           
         [         R                  n[        [        4 HM  n[        [        [        4 H5  nU" SSS.5      nU" XC" SSS.5      5        U R                  USSSS.5        M7     MO     U R                  [        U0 / 5        U R                  [        U0 S5        U R                  [        U[	        5       0 5        U R                  [        US0 5        U R                  [        U0 [        5        U R                  [        U[        0 5        g )	Nr0   r1   r'   r(   rK   rL   r(   r)   r   rM   )
r	   dict_updaterD   r   r   rA   rO   AttributeErrorrW   rX   )r   updatecls1cls2rF   s        r   test_dict_updateCAPITest.test_dict_update  s    !--,&DlH4+,sDqq!123  AAA&>? 5 ' 	.&"b9.&"b9+vxz2>+vr26+vr48+vtR8r   c           
         [         R                  n[        [        4 H  n[        [        [        4 Hi  nU" SSS.5      nU" XC" SSS.5      S5        U R                  USSSS.5        U" SSS.5      nU" XC" SSS.5      S5        U R                  USSSS.5        Mk     M     U R                  [        U0 / S5        U R                  [        U0 S	S5        U R                  [        U[	        5       0 S5        U R                  [        US	0 S5        U R                  [        U0 [        S5        U R                  [        U[        0 S5        g )
Nr0   r1   r   rK   rL   r   r   r   rM   )
r	   
dict_mergerD   r   r   rA   rO   r   rW   rX   )r   merger   r   rF   s        r   test_dict_mergeCAPITest.test_dict_merge  s-    ++,&DlH4+,c4aa 0115  AAA&>?+,c4aa 0115  AAA&>? 5 ' 	.%R;.%R;+uhj"a@+ub"a8+ub$:+udB:r   c           	         [         R                  n[        [        4 Hz  n[        [
        4 Hg  nU" SSS.5      nU" XC" SS/5      S5        U R                  USSSS.5        U" SSS.5      nU" XC" SS/5      S5        U R                  USS	SS.5        Mi     M|     U R                  [        U0 S
/S5        U R                  [        U0 S/S5        U R                  [        U0 S/S5        U R                  [        U0 SS5        g )Nr0   r1   r   )r(   rK   )r)   rL   r   rL   r   rK   )r0   )r0   r1   rK   rM   )
r	   dict_mergefromseq2rD   r   r   iterrA   rO   
ValueErrorrP   )r   mergefromseq2r   r   rF   s        r   test_dict_mergefromseq2 CAPITest.test_dict_mergefromseq2  s   (;;,&Dd
+,c48(<#=qA  AAA&>?+,c48(<#=qA  AAA&>? # ' 	*mR$C*mR)aH)]BQ?)]BA>r   c                    [         R                  n[         R                  nSSS.nU R                  U" US5      S5        U R                  USS05        U R                  U" US5      S5        U R                  U0 5        SSS.nU R                  U" US5      S5        U R                  USS05        U R                  U" US5      S5        U R                  U0 5        U R                  U" 0 S5      S	[        45        U R                  U" S
S0S5      S	[        45        U R                  U" 0 S5      S	5        U R                  U" S
S0S5      S	5        [        SS05      nU R                  [        XS5        U R                  [        X$S5        S/nU R                  U" 0 U5      S	[        45        U R                  [        5         U" SS0U5        S S S 5        U" 0 [        5        g ! , (       d  f       N= f)Nr   value2r   key2r   r0   r   r   r0   r   r0   r   r'   r1   r   )	r   dict_popdict_pop_nullrA   rX   r   rO   rW   rP   )r   r  r  mydictnot_dictnot_hashable_keys         r   test_dict_popCAPITest.test_dict_pop  s   %%!// !(3&%0,?&(!34&&1=A$ !(3vu5q9&(!34vv6:$ 	"e,q$i83(E2QI> 	r5115Qx7; QF#+x5A+}F #8"&67!TCy)eQZ!12 *T *)s   G##
G1c                 >   [         R                  n[         R                  nSSS.nU R                  U" US5      S5        U R                  USS05        U R                  U" US5      S5        U R                  U0 5        SSS.nU R                  U" US5      S5        U R                  USS05        U R                  U" US5      S5        U R                  U0 5        U R                  U" 0 S5      S	[        45        U R                  U" 0 S5      S	5        U R                  U" S
S0S5      S	[        45        U R                  U" S
S0S5      S	5        SnSS0nU R                  U" USR                  5       5      S5        SS0nU R                  U" USR                  5       5      S5        [        SS05      nU R                  [        XS5        U R                  [        X&S5        U R                  [        USS0[        5        U R                  [        USS0[        5        g )Nr   r   r   r   r   r   r  r0   r   r'   rj   {   )r0   r
  r1   )r   dict_popstringdict_popstring_nullrA   rX   rz   r   rO   rW   r|   r{   )r   r  r  r  	non_asciirF   r  s          r   test_dict_popstringCAPITest.test_dict_popstring  s   "11';; !(36E&(!347G$ !(3,VU;Q?&(!34,VV<a@$ 	E2QI>,R7;a%81d)D,c1Xu=qA !	S!\-@-@-BCXNS!,S,2E2E2GH!L QF#+~G+':eL 	,nq!flS,.AAq6<Xr   r    N)!r!   r"   r#   r$   r8   r<   rH   rR   r[   ra   rf   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r%   r    r   r   r,   r,      s    **$8 
3&	31,9,9$@"9$7"
6<(C&9*@(?,?,9"Q3"9;$?(%T'Yr   r,   __main__)unittestcollectionsr   r   typesr   testr   test.supportr   import_moduler   r	   rX   r{   rD   r   r*   TestCaser,   r!   mainr    r   r   <module>r     s     - "  & ''4	 ../AB  .4 .AYx   AYP zMMO r   