+
    BiY                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RI	H
t
Ht ]P                  ! RR.R7       ^ RI5  ]P                  ]P                  P                  R4      ^,           ,          t]P&                  ! 4       R	,          t]! 4       R
8X  d   RMRt]R08  d   RMRtR]P.                  ! 4       3,          tR],           tR],           tR^-]3RR]3RR]3RR]3R. R1O]3R. R2O]3RR] 3RRR4,          ]3RRR3,          ] 3RR ]3.
t!]
 ! R! R"]PD                  4      4       t# ! R# R$]PD                  4      t$ ! R% R&]$4      t%]PL                  ! ]R'4       ! R( R)]$4      4       t']PL                  ! ]R*4       ! R+ R,]$4      4       t(])R-8X  d%   ]'       g
   ]*! R.R/4       ]PV                  ! 4        R# R#   ]]3 d    Rt ELQi ; i)5    N)machinewin32_edition)cpython_onlyimport_helperwinregwin)required_on)*z--remote:N   NAMD64TFz Python Test Key [%d] - Delete Mez	SOFTWARE\zSOFTWARE\Classes\z	Int ValuezQword Valuel   w*M	 z
String ValzA string valueStringExpandzThe path is %path%zMulti-stringz	Multi-nulzRaw Datas   binary dataz
Big Stringxz
Big Binary   xu   Japanese 日本u	   日本語c                   ,   a  ] tR t^6t o R tR tRtV tR# )HeapTypeTestsc                X    V P                  \        P                  ! \        4      4       R # N)
assertTruegc
is_trackedHKEYTypeselfs   &'/usr/lib/python3.14/test/test_winreg.pytest_have_gcHeapTypeTests.test_have_gc8   s    h/0    c                    V P                  \        R 4      ;_uu_ 4        R\        n        RRR4       R#   + '       g   i     R# ; i)	immutablebarN)assertRaisesRegex	TypeErrorr   foor   s   &r   test_immutableHeapTypeTests.test_immutable;   s+    ##I{;; HL <;;;s	   5A	 N)__name__
__module____qualname____firstlineno__r   r$   __static_attributes____classdictcell____classdict__s   @r   r   r   6   s     1! !r   r   c                   b   a  ] tR t^@t o R tR tR]3R ltR]3R lt	RR lt
RR ltR tR	tV tR
# )BaseWinregTestsc                :    V P                  \        \        4       R # r   )delete_treeHKEY_CURRENT_USERtest_key_namer   s   &r   setUpBaseWinregTests.setUpB   s     	*M:r   c                     \        W^ \        4      p  \        T^ 4      pT P	                  Y44       K!    \         d     R# i ; i  \         d     Mi ; i\        T4       \        Y4       R# r   N)OpenKeyKEY_ALL_ACCESSOSErrorEnumKeyr2   CloseKey	DeleteKey)r   rootsubkeyhkey	subsubkeys   &&&  r   r2   BaseWinregTests.delete_treeG   ss    	4N;D #D!,	 T-  		   	$s    4 A AAAAsub_keyc                   \        V\        \        R 4       V! V\        4      pV P                  VP                  ^ 8g  4       V! WB4      p\
         F  w  rgp\        WV^ W4       K  	  \        V4      w  rpV P                  V	^R4       V P                  V
^R4       \        V4      w  rpV P                  V	^ R4       V P                  V
\        \
        4      R4       \        V4      p\        V4        \        V4       V P                  R4       \        V4      pVP                  4         \        V4       V P                  R4       R#   \         d     LGi ; i  \         d     R# i ; i)Default valuez"Not the correct number of sub keysz Not the correct number of valueszAIt appears the CloseKey() function does not close the actual key!zBIt appears the key.Close() function does not close the actual key!N)SetValuer4   REG_SZr   handle	test_data
SetValueExQueryInfoKeyassertEquallenintr=   failr;   Close)r   root_key	subkeystr	CreateKeykeyrD   
value_name
value_data
value_typenkeysnvalues	since_modint_sub_keyint_keys   &&&&          r   _write_test_data BaseWinregTests._write_test_dataW   sU    	=&/B-0

a(C+ 3<.JJwAzF 3< %1$5!	#GH!%GH$0$9!	#GH#i.;	=
 'l	%II 2 3
 c(			!II 7 8  		  		s$   3E	 +E 	EEE)(E)c                   \        V\        4      pV P                  VR R4       V! V\        4      pV! WR4      ;_uu_ 4       p^ p  \        Wg4      pT P                  T\
        9   RR4       T^,           pK2    \         d     Mi ; iT P                  T\        \
        4      R4       \
         F7  w  rp\        Yi4      w  rT P                  YR4       T P                  YR4       K9  	  RRR4       M  + '       g   i     M; iXP                  4        \        T^ 4      pT P                  YR4        \        T^4       T P                  R4       M  \         d     Mi ; iTP                  4        R# )	rF   z+Registry didn't give back the correct valueTz&Didn't read back the correct test dataz'Didn't read the correct number of itemsz!Could not directly read the valueNzRead subkey value wrongz2Was able to get a second key when I only have one!)
QueryValuer4   rM   	EnumValuer;   rJ   rN   QueryValueExrQ   r<   rP   )r   rR   rS   r9   valrU   rD   indexdatarV   rW   rX   read_valread_typs   &&&&          r   _read_test_dataBaseWinregTests._read_test_data   sb   =1oF	H h.S$$E$W4D   !2D!IK		  
 UC	NFH 7@2

%1'%F"  !DF  !DF	 7@ %$$$( 	3?.GH	COIIJK 		 			sC   C1A6%C16BC1BA$C11D	3E EEc                ,   \        V\        ^ \        4      p\        W2^ \        4      p\         F  w  rVp\	        WE4       K  	  \        V4      w  rp
V P                  V^ R4       V P                  V	^ R4       VP                  4        \        W24        \        W24       V P                  R4       VP                  4        \        V\        4        \        V\        4      pV P                  R4       R#   \         d     LQi ; i  \         d     R# i ; i)r   zsubkey not empty before deletez Deleting the key twice succeededzCould open the non-existent keyN)r9   r4   r:   rJ   DeleteValuerL   rM   rQ   r>   rP   r;   )r   rR   rS   rU   rD   rV   rW   rX   rY   rZ   r[   s   &&&        r   _delete_test_data!BaseWinregTests._delete_test_data   s    hq.A#!^< 3<.JJ, 3< %1$9!	#CD!%EF#!	c%II89 			(M*	(M2CII78  		  		s$   C3 !D 3D DDDc                l    V P                  W4       V P                  W4       V P                  W4       R # r   )r^   ri   rm   )r   rR   rS   s   &&&r   	_test_allBaseWinregTests._test_all   s,    h2X1x3r   c                X   \        W^ \        R7      ;_uu_ 4       pV P                  VP                  ^ 8g  4       RRR4       \	        W^ \        R7      ;_uu_ 4       pV P                  VP                  ^ 8g  4       RRR4       R#   + '       g   i     LS; i  + '       g   i     R# ; i)r   )rU   rD   reservedaccessN)CreateKeyExr:   r   rI   	OpenKeyEx)r   rU   rD   ckeyokeys   &&&  r   _test_named_args BaseWinregTests._test_named_args   s    SA .0 037OODKK1,-0 3!,. .15OODKK1,-. .	0 0. . .s   BBB	B)	r&   N)rD   )r'   r(   r)   r*   r5   r2   rT   r^   r9   ri   rm   rp   ry   r+   r,   r-   s   @r   r0   r0   @   s>     ;
   4=#,(R 3<W &P<4
. .r   r0   c                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 t]P                  ! ]R8  R4      R 4       tR tR tR tR tR tRtV tR# )LocalWinregTestsc                \    V P                  \        4       V P                  \        R 4       R# )u   日本-subkeyN)rp   r3   r   s   &r   test_registry_works$LocalWinregTests.test_registry_works   s    ()(/:r   c                    R  pV P                  \        VR7       R pV P                  \        VR7       V P                  \        4       R# )c                 $    \        W^ \        4      # r   )ru   r:   rU   rD   s   &&r   <lambda>ILocalWinregTests.test_registry_works_extended_functions.<locals>.<lambda>   s    ;sQ#Or   )rT   c                 $    \        W^ \        4      # r   )rv   KEY_READr   s   &&r   r   r      s    9S1h#Gr   )r9   N)r^   r3   ri   rm   )r   ckeokes   &  r   &test_registry_works_extended_functions7LocalWinregTests.test_registry_works_extended_functions   sF     P/3?G.<01r   c                b    V P                  \        \        4       \        \        \        4       R # r   )ry   r3   r4   r>   r   s   &r   test_named_arguments%LocalWinregTests.test_named_arguments   s     /? 	#]3r   c                    \        R \        4      pV P                  VP                  ^ 4       VP	                  4        V P                  VP                  ^ 4       R # r   )ConnectRegistryHKEY_LOCAL_MACHINEassertNotEqualrI   rQ   rM   r   hs   & r   ,test_connect_registry_to_local_machine_works=LocalWinregTests.test_connect_registry_to_local_machine_works   s@    D"45AHHa(		1%r   c                8    R  pV P                  \        V4       R# )c                  "    \        R \        4      # )abcdefghijkl)r   r3   r&   r   r   r   CLocalWinregTests.test_nonexistent_remote_registry.<locals>.<lambda>   s    /.:KLr   N)assertRaisesr;   )r   connects   & r    test_nonexistent_remote_registry1LocalWinregTests.test_nonexistent_remote_registry   s    L'7+r   c                    \        R 4      pV P                  \        V4      \        4       V P                  V\        P
                  R,          R,           4       R# )z%windir%\testwindirz\testN)ExpandEnvironmentStringsrM   typestrosenviron)r   rs   & r   testExpandEnvironmentStrings-LocalWinregTests.testExpandEnvironmentStrings   s?    $%56a#&BJJx08;<r   c                     \        R \        4      ;_uu_ 4       pV P                  VP                  ^ 4       \        h  + '       g   i     R # ; i  \         d!    T P                  XP                  ^ 4        R # i ; ir   )r   r   r   rI   r;   rM   r   s   & r   test_context_manager%LocalWinregTests.test_context_manager   s`    	* '9::a##AHHa0 ;::  	*QXXq)	*s&   A #=A	A A 'A<;A<c           	       a
 R o
 ! V
3R lR\         P                  4      pV! 4       pVP                  4         \        \        \
        R,           4      ;_uu_ 4       p\        R4       F@  p\        V4      w  rVp\        V4       F   p\        W84      p	\        W9^ ,          4       K"  	  KB  	  RRR4       Ro
VP                  4        \        \        \
        R,           4       \        \        \
        4       R#   + '       g   i     LS; i  Ro
TP                  4        \        \        \
        R,           4       \        \        \
        4       i ; i)Fc                   .   <a  ] tR tRt o V3R ltRtV tR# )>LocalWinregTests.test_changing_value.<locals>.VeryActiveThreadi  c                   < \        \        \        4      ;_uu_ 4       pR pRpS'       g(   V'       d   RMTpV'       * p\        VR\        V4       K/   RRR4       R#   + '       g   i     R# ; i)Tr   changing_valueN  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)rT   r3   r4   rG   rH   )r   rU   	use_shortlong_stringsdones   &    r   runBLocalWinregTests.test_changing_value.<locals>.VeryActiveThread.run  sT    0-@@C $I"*K"#,C+(1M	 &6B # A@@@s   AAAA.	r&   N)r'   r(   r)   r*   r   r+   r,   )r.   r   s   @r   VeryActiveThreadr     s     C Cr   r   z\changing_valuei  NT)	threadingThreadstartrT   r3   r4   rangerL   rb   ra   joinr>   )r   r   threadrU   _num_subkeys
num_valuestinamer   s   &         @r   test_changing_value$LocalWinregTests.test_changing_value  s     	Cy// 	C "#	8,();;= =@CtA1=c1B.KQ":.(0"3Q0 / %= DKKM'7I)IJ'7= = DKKM'7I)IJ'7s%   #D	 AC6+D	 6D	D	 	AEc           	        Rp \        \        \        4      ;_uu_ 4       p\        W!\        R 4       \        V4      w  r4p\        V^ 4       RRR4       \        \        RP                  \        V34      4       \        \        \        4       R#   + '       g   i     LK; i  \        \        RP                  \        T34      4       \        \        \        4       i ; i)r   N\   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)	rT   r3   r4   rG   rH   rL   r<   r>   r   )r   r   rU   r   r   r   s   &     r   test_long_keyLocalWinregTests.test_long_key&  s     	8,m<<FC0-9#->*Q =
 'M43H)IJ'7 =<
 'M43H)IJ'7s"   B" ,BB" B	B" ";Cc                     \        \        ^ 4       \        \        R4       R#   \         dG   pTP                  \        P                  \        P
                  39   d   T P                  R4       h Rp?ii ; i)r   zMaccess denied to registry key (are you running in a non-interactive session?)N )rb   HKEY_PERFORMANCE_DATAr;   errnoEPERMEACCESskipTestrc   )r   es   & r   test_dynamic_key!LocalWinregTests.test_dynamic_key4  s`    	+Q/ 	*B/  	ww5;;55 P Q		s   $ A5AA00A5zRequires Windows XPc                    \        \        \        4      ;_uu_ 4       pV P                  VP                  ^ 4       RRR4       \        \        \        4      pV P                  VP                  ^ 4       V P                  \        4      ;_uu_ 4        \        V4       RRR4       V P                  \        4      ;_uu_ 4        \        V4       RRR4       V P                  \        4      ;_uu_ 4        \        V4       RRR4       V P                  \        4      ;_uu_ 4        \        \        \        4       RRR4       \        \        \        4       R#   + '       g   i     EL$; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Ls; i  \        \        \        4       i ; ir8   )rT   r3   r4   r   rI   r9   r   NotImplementedErrorDisableReflectionKeyEnableReflectionKeyQueryReflectionKeyDeleteKeyExr>   )r   ckrU   s   &  r   test_reflection_unsupported,LocalWinregTests.test_reflection_unsupportedB  s   	8,m<<##BIIq1 = +];C

A.""#677$S) 8""#677#C( 8""#677"3' 8""#677-}= 8 '7 =<< 87777777 '7s   F6 EAF6 E*%F6 E=%F6 2F>%F6 #F#8F6 E'	!	F6 *E:	5F6 =F	F6 F 	F6 #F3	.F6 6Gc           	     0    \        \        \        4      ;_uu_ 4       pV P                  VP                  ^ 4       \        VRR\        R4       RRR4       \        \        \        4       R#   + '       g   i     L&; i  \        \        \        4       i ; i)r   	test_nameN        )rT   r3   r4   r   rI   rK   	REG_DWORDr>   r   r   s   & r   test_setvalueex_value_range,LocalWinregTests.test_setvalueex_value_rangeV  sd    
	8,m<<##BIIq12{D)ZH = '7	 =< '7s"   A? 0A,A? ,A<	7A? ?Bc                     \        \        \        4      ;_uu_ 4       pV P                  \        4      ;_uu_ 4        \        VR R\        R4       \        VRR\        R4       RRR4       V P                  \        \        VR 4       V P                  \        \        VR4       RRR4       \        \        \        4       R#   + '       g   i     Lf; i  + '       g   i     L9; i  \        \        \        4       i ; i)test_name_dwordNtest_name_qword)rT   r3   r4   r   OverflowErrorrK   r   	REG_QWORDFileNotFoundErrorrc   r>   r   s   & r   "test_setvalueex_negative_one_check3LocalWinregTests.test_setvalueex_negative_one_checkb  s    		8,m<<&&}55r#4dIrJr#4dIrJ 6 !!"3\2GXY!!"3\2GXY = '7 65 =< '7s:   C' C'C	#A C#C' CCC$	C' 'C=c           	         \        \        \        4      ;_uu_ 4       pV P                  VP                  ^ 4       Rp\        VRR\        V4       \        VR4      w  r4V P                  V\        4       V P                  W24       RRR4       \        \        \        4       R#   + '       g   i     L&; i  \        \        \        4       i ; i)r   r   r   N)
rT   r3   r4   r   rI   rK   r   rc   rM   r>   r   r   test_valret_valret_types   &    r   test_queryvalueex_return_value/LocalWinregTests.test_queryvalueex_return_values  s    
		8,m<<##BIIq1%2{D)XF$0[$A!  95  3 = '7 =< '7#   B6 A'B#B6 #B3	.B6 6Cc           	         \        \        \        4      ;_uu_ 4       pV P                  VP                  ^ 4       Rp\        VR^ \        V4       \        VR4      w  r4V P                  V\        4       V P                  W24       RRR4       \        \        \        4       R#   + '       g   i     L&; i  \        \        \        4       i ; i)r   Nr   )
rT   r3   r4   r   rI   rK   
REG_BINARYrc   rM   r>   r   s   &    r   #test_setvalueex_crash_with_none_arg4LocalWinregTests.test_setvalueex_crash_with_none_arg  s    		8,m<<##BIIq12{Az8D$0[$A!  :6  3 = '7 =< '7r   c           	         \        \        \        4      ;_uu_ 4       pV P                  VP                  ^ 4       Rp\        VR^ \        V4       \        VR4      w  r4V P                  V\        4       V P                  VR4       RRR4       \        \        \        4       R#   + '       g   i     L&; i  \        \        \        4       i ; i)r   zA string  with a nullr   zA stringN)
rT   r3   r4   r   rI   rK   rH   rc   rM   r>   r   s   &    r    test_read_string_containing_null1LocalWinregTests.test_read_string_containing_null  s    		8,m<<##BIIq152{Avx@$0[$A!  62  *5 = '7 =< '7s#   B7 A(B$B7 $B4	/B7 7Cr&   N)   r   )r'   r(   r)   r*   r~   r   r   r   r   r   r   r   r   r   unittest
skipUnlessWIN_VERr   r   r   r   r   r   r+   r,   r-   s   @r   r|   r|      s~     ;
24&,=
*8@8
0 6)+@A8 B8&
88"8 88 8r   r|   zSkipping remote registry testsc                   &   a  ] tR tRt o R tRtV tR# )RemoteWinregTestsi  c                P    \        \        \        4      pV P                  V4       R # r   )r   REMOTE_NAMEr3   rp   )r   
remote_keys   & r   test_remote_registry_works,RemoteWinregTests.test_remote_registry_works  s    $[2CD
z"r   r&   N)r'   r(   r)   r*   r  r+   r,   r-   s   @r   r  r    s     # #r   r  zx64 specific registry testsc                      a  ] tR tRt o R t]P                  ! ]! 4       R9   R4      R 4       t]P                  ! ]
R4      R 4       t]P                  ! ]
R4      R 4       tR tR	tV tR
# )Win64WinregTestsi  c                p    V P                  \        \        4       \        \        \        \        ^ R7       R# )r   )rU   rD   rt   rs   N)ry   r3   r4   r   r:   r   s   &r   r   %Win64WinregTests.test_named_arguments  s%    /?)=)A	7r   z)APIs not available on WindowsCoreHeadlessc                @   \        \        R 4      ;_uu_ 4       pV P                  \        V4      4       V P	                  \        V4      4       V P	                  \        V4      4       V P                  \        V4      4       RRR4       R#   + '       g   i     R# ; i)SoftwareN)r9   r   r   r   assertIsNoner   r   )r   rU   s   & r   test_reflection_functions*Win64WinregTests.test_reflection_functions  so     '44OO.s341#672378OO.s34 5444s   A)BB	zOS doesn't support reflectionc           	     \    \        \        \        ^ \        \        ,          4      ;_uu_ 4       pV P                  VP                  ^ 4       \        \        \        ^ \        \        ,          4      ;_uu_ 4       pV P                  VP                  ^ 4       RRR4       \        VR^ \        R4       R pV P                  \        V4       RRR4       \        \        \        ^ \        \        ,          4      ;_uu_ 4       pV P                  VP                  ^ 4       V P                  R\        VR4      4       \        VR^ \        R4       RRR4       \        \        \        ^ \        \        ,          4      ;_uu_ 4       pV P                  R\        VR4      4       RRR4       \!        \        \        \        ^ 4       R#   + '       g   i     EL4; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     Lg; i  \!        \        \        \        ^ 4       i ; i)r   Nr   32KEYc                  L    \        \        \        ^ \        \        ,          4      # r   )r9   r3   test_reflect_key_namer   KEY_WOW64_64KEYr&   r   r   r   2Win64WinregTests.test_reflection.<locals>.<lambda>  s    G,=,A1,4,F%Hr   64KEY)ru   r3   r  r:   KEY_WOW64_32KEYr   rI   r9   rK   rH   r   r;   r  rM   ra   r   r   )r   created_keyrU   	open_fails   &   r   test_reflection Win64WinregTests.test_reflection  s   $	,.0Eq+o=? ?BM##K$6$6: .0Eq+o=? ?BE''

A6?
 ;Avw?H	 !!'95#?( *,A1'/9; ;>A##CJJ2  *S"*=>3Avw7; *,A1!O35 58;  *S"*=>5 )+@',;? ? ?? ? ?(; ;5 5 )+@',sl   -H A
G9G	4G
5H ?AG)5H  G<H G	GG&	 	H )G9	4H <H	H H+c                    \        \        \        ^ \        \        ,          4      ;_uu_ 4       p\        V4      pV P                  \        V4      \        4       V P                  V4       \        V4       V P                  \        V4      4       RRR4       R pV P                  \        V4       \        \        \        ^ \        \        ,          4      ;_uu_ 4       pV P!                  VP"                  ^ 4       RRR4       \%        \        \        \        ^ 4       R#   + '       g   i     L; i  + '       g   i     L?; i  \%        \        \        \        ^ 4       i ; i)r   Nc                  L    \        \        \        ^ \        \        ,          4      # r   )rv   r3   r  r   r  r&   r   r   r   :Win64WinregTests.test_disable_reflection.<locals>.<lambda>  s    	*;*?*2_*D!Fr   )ru   r3   r  r:   r  r   rM   r   boolassertFalser   r   r   r;   rv   r   r   rI   r   )r   r  disabledr  rU   s   &    r   test_disable_reflection(Win64WinregTests.test_disable_reflection  s   	,.0Eq+o=? ?BM-k:  h6  *$[1 2; ?@?FI gy1 ,.CQ#o57 7:=##CJJ27 )+@',/? ?&7 7 )+@',s<   -E A!DAE D2;E D/	*E 2E	=E E!c                    V P                  \        4      ;_uu_ 4       p\        \        R 4       RRR4       R#   + '       g   i     R# ; i)some_value_that_does_not_existN)r   r   ra   HKEY_CLASSES_ROOT)r   ctxs   & r   test_exception_numbers'Win64WinregTests.test_exception_numbers  s1    011S(*JK 2111s	   9A
	r&   N)WindowsCoreHeadless	IoTEdgeOS)r'   r(   r)   r*   r   r   skipIfr   r  r   HAS_REFLECTIONr  r$  r*  r+   r,   r-   s   @r   r
  r
    s     7 __]_(LLNyz5 {5 )HI), J),V )HI, J,:L Lr   r
  __main__z)Remote registry calls can be tested usingz('test_winreg.py --remote \\machine_name')      )Lotsofstringvalues)r   r   r   r   i @  i?  ),r   r   sysr   r   r   platformr   r   test.supportr   r   import_moduler   argvre   r  
IndexError
ValueErrorgetwindowsversionr  WIN64_MACHINEr/  getpidtest_key_baser4   r  r   r   rH   REG_EXPAND_SZREG_MULTI_SZr   rJ   TestCaser   r0   r|   r   r  r
  r'   printmainr&   r   r   <module>rG     s   
     + 4   H5' : ((388>>*5a78K
 


!"
%	W,% !6)u 3biik^C},-=  byI(yI&vF*}M8|L&|L'zJc7mvFdElzJV,	 !H%% ! !R.h'' R.jF8 F8R 
["BC# # D# 
]$AB_L _L C_LD z9:	<MMO	 o 	J Ks   3F: :G	G	