HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_winreg.cpython-37.opt-1.pyc
B

��g�T�@s�ddlZddlZddlZddlZddlmZddlZddlmZej	ddgd�ddl
Tyejej�d�d	Z
Wneefk
r�dZ
YnXe��dd
�Ze�dkr�dnd
Zedkr�dnd
Zde��fZdeZdeZddefddefddefddefdddddgefdd d d d gefd!d"efd#d$d%efd&d'd(efd)d*efg
ZGd+d,�d,ej�Z Gd-d.�d.e �Z!e�"e
d/�Gd0d1�d1e ��Z#e�"ed2�Gd3d4�d4e ��Z$d5d6�Z%e&d7k�r�e
�s�e'd8d9�e%�dS):�N)�support)�machine�winreg�win)Zrequired_on)�*z--remote��ZAMD64TF)�rz Python Test Key [%d] - Delete Mez	SOFTWARE\zSOFTWARE\Classes\z	Int Value�-zQword Valuel�w�*M	z
String ValzA string valueZStringExpandzThe path is %path%zMulti-stringZLotsZof�string�valuesz	Multi-nul�zRaw Datasbinarydataz
Big String�xi�?z
Big Binary�xi@uJapanese 日本u	日本語c@sTeZdZdd�Zdd�Zdefdd�Zdefdd	�Zdd
d�Z	ddd
�Z
dd�ZdS)�BaseWinregTestscCs|�tt�dS)N)�delete_tree�HKEY_CURRENT_USER�
test_key_name)�self�r�,/usr/local/lib/python3.7/test/test_winreg.py�setUp6szBaseWinregTests.setUpcCsvyt||dt�}Wntk
r&dSXx6yt|d�}Wntk
rNPYnX|�||�q*Wt|�t||�dS)Nr)�OpenKey�KEY_ALL_ACCESS�OSError�EnumKeyr�CloseKey�	DeleteKey)r�rootZsubkey�hkeyZ	subsubkeyrrrr;szBaseWinregTests.delete_tree�sub_keycCs,t|ttd�||t�}|�|jdk�|||�}x"tD]\}}}t||d||�q8Wt|�\}	}
}|�|	dd�|�|
dd�t|�\}	}
}|�|	dd�|�|
t	t�d�t
|�}t|�yt|�|�d�Wnt
k
r�YnXt
|�}
|��yt|
�|�d�Wnt
k
�r&YnXdS)Nz
Default valuerrz"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!)�SetValuer�REG_SZ�
assertTrue�handle�	test_data�
SetValueEx�QueryInfoKey�assertEqual�len�intr�failr�Close)r�root_key�	subkeystr�	CreateKey�keyr �
value_name�
value_data�
value_type�nkeys�nvalues�	since_modZint_sub_keyZint_keyrrr�_write_test_dataKs6

z BaseWinregTests._write_test_datac	Cs.t|t�}|�|dd�||t�}|||���}d}xDyt||�}Wntk
rXPYnX|�|tkdd�|d}q4W|�|tt�d�x<tD]4\}	}
}t||	�\}}
|�||
d�|�|
|d�q�WWdQRX|��t	|d�}|�||d	�yt	|d�|�
d
�Wntk
�r YnX|��dS)Nz
Default valuez+Registry didn't give back the correct valuerTz&Didn't read back the correct test datarz'Didn't read the correct number of itemsz!Could not directly read the valuezRead subkey value wrongz2Was able to get a second key when I only have one!)�
QueryValuerr(�	EnumValuerr%r)�QueryValueExr,rr+)rr-r.r�valr0r �index�datar1r2r3Zread_valZread_typrrr�_read_test_dataus>



zBaseWinregTests._read_test_datacCs�t|tdt�}t||dt�}xtD]\}}}t||�q"Wt|�\}}	}
|�|dd�|�|	dd�|��t||�yt||�|�	d�Wnt
k
r�YnX|��t|t�yt|t�}|�	d�Wnt
k
r�YnXdS)Nrzsubkey not empty before deletez Deleting the key twice succeededzCould open the non-existent key)rrrr%ZDeleteValuer'r(r,rr+r)rr-r.r0r r1r2r3r4r5r6rrr�_delete_test_data�s*



z!BaseWinregTests._delete_test_datacCs(|�||�|�||�|�||�dS)N)r7r>r?)rr-r.rrr�	_test_all�szBaseWinregTests._test_allc	Cs\t||dtd��}|�|jdk�WdQRXt||dtd��}|�|jdk�WdQRXdS)Nr)r0r �reserved�access)�CreateKeyExrr#r$�	OpenKeyEx)rr0r ZckeyZokeyrrr�_test_named_args�s

z BaseWinregTests._test_named_argsN)r )r )�__name__�
__module__�__qualname__rrr/r7rr>r?r@rErrrrr4s)(

rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Ze
�edkd�dd��Zdd�Zdd�Zdd�Zdd �Zd!S)"�LocalWinregTestscCs|�t�|�td�dS)Nu
日本-subkey)r@r)rrrr�test_registry_works�s
z$LocalWinregTests.test_registry_workscCs:dd�}|jt|d�dd�}|jt|d�|�t�dS)NcSst||dt�S)Nr)rCr)r0r rrr�<lambda>��zILocalWinregTests.test_registry_works_extended_functions.<locals>.<lambda>)r/cSst||dt�S)Nr)rD�KEY_READ)r0r rrrrK�rL)r)r7rr>r?)rZckeZokerrr�&test_registry_works_extended_functions�s
z7LocalWinregTests.test_registry_works_extended_functionscCs|�tt�ttt�dS)N)rErrr)rrrr�test_named_arguments�sz%LocalWinregTests.test_named_argumentscCs2tdt�}|�|jd�|��|�|jd�dS)Nr)�ConnectRegistry�HKEY_LOCAL_MACHINE�assertNotEqualr$r,r()r�hrrr�,test_connect_registry_to_local_machine_works�s
z=LocalWinregTests.test_connect_registry_to_local_machine_workscCsdd�}|�t|�dS)NcSs
tdt�S)NZabcdefghijkl)rPrrrrrrK�rLzBLocalWinregTests.test_inexistant_remote_registry.<locals>.<lambda>)�assertRaisesr)rZconnectrrr�test_inexistant_remote_registry�sz0LocalWinregTests.test_inexistant_remote_registrycCs2td�}|�t|�t�|�|tjdd�dS)Nz
%windir%\testZwindirz\test)ZExpandEnvironmentStringsr(�type�str�os�environ)r�rrrr�testExpandEnvironmentStrings�sz-LocalWinregTests.testExpandEnvironmentStringsc	CsTy,tdt��}|�|jd�t�WdQRXWn"tk
rN|�|jd�YnXdS)Nr)rPrQrRr$rr()rrSrrr�test_context_manager�sz%LocalWinregTests.test_context_managerc

s�d�G�fdd�dtj�}|�}|��zhtttd��P}xHtd�D]<}t|�\}}}x(t|�D]}t||�}	t	||	d�q`WqDWWdQRXWdd�|�
�tttd�ttt�XdS)NFcseZdZ�fdd�ZdS)z>LocalWinregTests.test_changing_value.<locals>.VeryActiveThreadc	sLttt��8}d}d}x(�s<|r"dn|}|}t|dt|�qWWdQRXdS)NTA�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrZchanging_value)r/rrr!r")rr0Z	use_shortZlong_string�s)�donerr�runszBLocalWinregTests.test_changing_value.<locals>.VeryActiveThread.runN)rFrGrHr`r)r_rr�VeryActiveThreadsraz\changing_valuei�rT)�	threadingZThread�startr/rr�ranger'r9r8�joinr)
rraZthreadr0�_�num_subkeys�
num_values�t�i�namer)r_r�test_changing_value�s 

$z$LocalWinregTests.test_changing_valuecCsjd}z@ttt��,}t||td�t|�\}}}t|d�WdQRXWdttd�t|f��ttt�XdS)NAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrr�\)	r/rrr!r"r'rrre)rrkr0rgrhrirrr�
test_long_keyszLocalWinregTests.test_long_keyc
Cs^yttd�Wn@tk
rN}z"|jtjtjfkr<|�d��Wdd}~XYnXttd�dS)NrzMaccess denied to registry key (are you running in a non-interactive session?)r
)r9ZHKEY_PERFORMANCE_DATAr�errnoZEPERMZEACCESZskipTestr:)r�errr�test_dynamic_key)s
z!LocalWinregTests.test_dynamic_key)�rzRequires Windows XPc	Cs�z�ttt��}|�|jd�WdQRXttt�}|�|jd�|�t��t|�WdQRX|�t��t	|�WdQRX|�t��t
|�WdQRX|�t��ttt�WdQRXWdttt�XdS)Nr)
r/rrrRr$rrU�NotImplementedError�DisableReflectionKey�EnableReflectionKey�QueryReflectionKey�DeleteKeyExr)r�ckr0rrr�test_reflection_unsupported7s
z,LocalWinregTests.test_reflection_unsupportedc	CsJz8ttt��$}|�|jd�t|ddtd�WdQRXWdttt�XdS)Nr�	test_namel)r/rrrRr$r&�	REG_DWORDr)rrxrrr�test_setvalueex_value_rangeKs
z,LocalWinregTests.test_setvalueex_value_rangec	Cstzbttt��N}|�|jd�d}t|ddt|�t|d�\}}|�|t�|�||�WdQRXWdt	tt�XdS)Nrlrz)
r/rrrRr$r&r{r:r(r)rrx�test_val�ret_val�ret_typerrr�test_queryvalueex_return_valueWsz/LocalWinregTests.test_queryvalueex_return_valuec	Cstzbttt��N}|�|jd�d}t|ddt|�t|d�\}}|�|t�|�||�WdQRXWdt	tt�XdS)Nrrz)
r/rrrRr$r&�
REG_BINARYr:r(r)rrxr}r~rrrr�#test_setvalueex_crash_with_none_arggsz4LocalWinregTests.test_setvalueex_crash_with_none_argc	Cstzbttt��N}|�|jd�d}t|ddt|�t|d�\}}|�|t�|�|d�WdQRXWdt	tt�XdS)NrzA string with a nullrzzA string)
r/rrrRr$r&r"r:r(r)rrxr}r~rrrr� test_read_string_containing_nulltsz1LocalWinregTests.test_read_string_containing_nullN)rFrGrHrJrNrOrTrVr\r]rlrnrq�unittest�
skipUnless�WIN_VERryr|r�r�r�rrrrrI�s	 
rIzSkipping remote registry testsc@seZdZdd�ZdS)�RemoteWinregTestscCsttt�}|�|�dS)N)rP�REMOTE_NAMErr@)rZ
remote_keyrrr�test_remote_registry_works�s
z,RemoteWinregTests.test_remote_registry_worksN)rFrGrHr�rrrrr��sr�zx64 specific registry testsc@sLeZdZdd�Zdd�Ze�ed�dd��Ze�ed�dd	��Z	d
d�Z
dS)
�Win64WinregTestscCs |�tt�ttttdd�dS)Nr)r0r rBrA)rErrrwr)rrrrrO�sz%Win64WinregTests.test_named_argumentsc	CsRttd��>}|�t|��|�t|��|�t|��|�t|��WdQRXdS)NZSoftware)rrQr#rvZassertIsNonerurt)rr0rrr�test_reflection_functions�s
z*Win64WinregTests.test_reflection_functionszOS doesn't support reflectioncCsz�tttdttB��d}|�|jd�tttdttB��}|�|jd�WdQRXt|ddt	d�dd�}|�
t|�WdQRXtttdttB��6}|�|jd�|�
dt|d��t|ddt	d�WdQRXtttdttB��}|�
dt|d��WdQRXWdttttd�XdS)Nrr
Z32KEYcSstttdttB�S)Nr)rr�test_reflect_key_namerM�KEY_WOW64_64KEYrrrrrK�sz2Win64WinregTests.test_reflection.<locals>.<lambda>Z64KEY)rCrr�r�KEY_WOW64_32KEYrRr$rr&r"rUrr�r(r8rMrw)r�created_keyr0�	open_failrrr�test_reflection�s( z Win64WinregTests.test_reflectioncCs�z�tttdttB��>}t|�}|�t|�t�|�	|�t
|�|�t|��WdQRXdd�}|�t
|�tttdttB��}|�|jd�WdQRXWdttttd�XdS)NrcSstttdttB�S)Nr)rDrr�rMr�rrrrrK�sz:Win64WinregTests.test_disable_reflection.<locals>.<lambda>)rCrr�rr�rvr(rW�boolZassertFalsertr#rUrrDrMrRr$rw)rr�Zdisabledr�r0rrr�test_disable_reflection�s
z(Win64WinregTests.test_disable_reflectionc	Cs$|�t��}ttd�WdQRXdS)NZsome_value_that_does_not_exist)rU�FileNotFoundErrorr8ZHKEY_CLASSES_ROOT)rZctxrrr�test_exception_numbers�sz'Win64WinregTests.test_exception_numbersN)rFrGrHrOr�r�r��HAS_REFLECTIONr�r�r�rrrrr��s

,r�cCst�ttt�dS)N)rZrun_unittestrIr�r�rrrr�	test_main�sr��__main__z)Remote registry calls can be tested usingz('test_winreg.py --remote \\machine_name')(rY�sysror�Ztestrrb�platformr�
import_moduler�argvr<r��
IndexError�
ValueErrorZgetwindowsversionr�Z
WIN64_MACHINEr��getpidZ
test_key_baserr�r{Z	REG_QWORDr"Z
REG_EXPAND_SZZREG_MULTI_SZr�r%ZTestCaserrIr�r�r�r�rF�printrrrr�<module>sP
9`