Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_winreg.cpython-38.pyc
U

>��g�U�@s�ddlZddlZddlZddlZddlmZddlZddlmZm	Z	ej
ddgd�ddlTzejej�
d�d	ZWneefk
r�dZYnXe��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�#ed/�Gd0d1�d1e!��Z$e�#ed2�Gd3d4�d4e!��Z%d5d6�Z&e'd7k�r�e�s�e(d8d9�e&�dS):�N)�support)�machine�
win32_edition�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�//opt/cppython/lib/python3.8/test/test_winreg.py�setUp6szBaseWinregTests.setUpcCsvzt||dt�}Wntk
r(YdSXzt|d�}Wntk
rPYq`YnX|�||�q*t|�t||�dS�Nr)�OpenKey�KEY_ALL_ACCESS�OSError�EnumKeyr�CloseKey�	DeleteKey)r�rootZsubkey�hkeyZ	subsubkeyrrrr;s
zBaseWinregTests.delete_tree�sub_keycCs(t|ttd�||t�}|�|jdk�|||�}tD]\}}}t||d||�q6t|�\}	}
}|�|	dd�|�|
dd�t|�\}	}
}|�|	dd�|�|
t	t�d�t
|�}t|�zt|�|�d�Wnt
k
r�YnXt
|�}
|��zt|
�|�d�Wnt
k
�r"YnXdS)N�
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_dataKs8

�z BaseWinregTests._write_test_datac	Cs(t|t�}|�|dd�||t�}|||���}d}zt||�}Wntk
rXYqvYnX|�|tkdd�|d}q2|�|tt�d�tD]4\}	}
}t||	�\}}
|�||
d�|�|
|d�q�W5QRX|��t	|d�}|�||d	�zt	|d�|�
d
�Wntk
�rYnX|��dS)Nr%z+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.�QueryValueExr1rr0)rr2r3r�valr5r$�index�datar6r7r8Zread_valZread_typrrr�_read_test_datausF
�

�
���

zBaseWinregTests._read_test_datacCs�t|tdt�}t||dt�}tD]\}}}t||�q t|�\}}	}
|�|dd�|�|	dd�|��t||�zt||�|�	d�Wnt
k
r�YnX|��t|t�zt|t�}|�	d�Wnt
k
r�YnXdS)Nrzsubkey not empty before deletez Deleting the key twice succeededzCould open the non-existent key)rrrr*ZDeleteValuer,r-r1r!r0r)rr2r3r5r$r6r7r8r9r:r;rrr�_delete_test_data�s*



z!BaseWinregTests._delete_test_datacCs(|�||�|�||�|�||�dSr)r<rCrD)rr2r3rrr�	_test_all�szBaseWinregTests._test_allc	Cs\t||dtd��}|�|jdk�W5QRXt||dtd��}|�|jdk�W5QRXdS)Nr)r5r$�reserved�access)�CreateKeyExrr(r)�	OpenKeyEx)rr5r$ZckeyZokeyrrr�_test_named_args�s��z BaseWinregTests._test_named_argsN)r$)r$)�__name__�
__module__�__qualname__rrr4r<rrCrDrErJrrrrr4s�
*(

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)rErrrrr�test_registry_works�s
z$LocalWinregTests.test_registry_workscCs:dd�}|jt|d�dd�}|jt|d�|�t�dS)NcSst||dt�Sr)rHr�r5r$rrr�<lambda>��zILocalWinregTests.test_registry_works_extended_functions.<locals>.<lambda>)r4cSst||dt�Sr)rI�KEY_READrPrrrrQ�rR)r)r<rrCrD)rZckeZokerrr�&test_registry_works_extended_functions�s
z7LocalWinregTests.test_registry_works_extended_functionscCs|�tt�ttt�dSr)rJrrr!rrrr�test_named_arguments�sz%LocalWinregTests.test_named_argumentscCs2tdt�}|�|jd�|��|�|jd�dSr)�ConnectRegistry�HKEY_LOCAL_MACHINE�assertNotEqualr)r1r-�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)rVrrrrrrQ�rRzCLocalWinregTests.test_nonexistent_remote_registry.<locals>.<lambda>)�assertRaisesr)r�connectrrr� test_nonexistent_remote_registry�sz1LocalWinregTests.test_nonexistent_remote_registrycCs2td�}|�t|�t�|�|tjdd�dS)Nz
%windir%\testZwindirz\test)ZExpandEnvironmentStringsr-�type�str�os�environ)r�rrrr�testExpandEnvironmentStrings�sz-LocalWinregTests.testExpandEnvironmentStringsc	CsTz,tdt��}|�|jd�t�W5QRXWn"tk
rN|�|jd�YnXdSr)rVrWrXr)rr-rYrrr�test_context_manager�sz%LocalWinregTests.test_context_managerc

s�d�G�fdd�dtj�}|�}|��z`tttd��H}td�D]8}t	|�\}}}t|�D]}t
||�}	t||	d�q\qBW5QRXW5d�|��tttd�ttt�XdS)NFcseZdZ�fdd�ZdS)z>LocalWinregTests.test_changing_value.<locals>.VeryActiveThreadc	sHttt��4}d}d}�s:|r dn|}|}t|dt|�qW5QRXdS)NTA�xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrZchanging_value)r4rrr&r')rr5Z	use_shortZlong_string�s��donerr�runszBLocalWinregTests.test_changing_value.<locals>.VeryActiveThread.runN)rKrLrMrirrgrr�VeryActiveThreadsrjTz\changing_valuei�r)�	threading�Thread�start�joinr!rrr4�ranger,r>r=)
rrj�threadr5�_�num_subkeys�
num_values�t�i�namerrgr�test_changing_value�s$
�
 z$LocalWinregTests.test_changing_valuecCsjd}z@ttt��,}t||td�t|�\}}}t|d�W5QRXW5ttd�t|f��ttt�XdS)NAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx�\rr)	r!rrnrr4r&r'r,r)rrvr5rrrsrtrrr�
test_long_keyszLocalWinregTests.test_long_keyc
Cs^zttd�Wn@tk
rN}z"|jtjtjfkr<|�d��W5d}~XYnXttd�dS)NrzMaccess denied to registry key (are you running in a non-interactive session?)r)r>ZHKEY_PERFORMANCE_DATAr�errno�EPERMZEACCESZskipTestr?)r�errr�test_dynamic_key)s
z!LocalWinregTests.test_dynamic_key)�r	zRequires Windows XPc	Cs�z�ttt��}|�|jd�W5QRXttt�}|�|jd�|�t��t	|�W5QRX|�t��t
|�W5QRX|�t��t|�W5QRX|�t��ttt�W5QRXW5ttt�XdSr)
r!rrr4rXr)rr\�NotImplementedError�DisableReflectionKey�EnableReflectionKey�QueryReflectionKey�DeleteKeyEx)r�ckr5rrr�test_reflection_unsupported7s
z,LocalWinregTests.test_reflection_unsupportedc	CsJz8ttt��$}|�|jd�t|ddtd�W5QRXW5ttt�XdS)Nr�	test_name�)r!rrr4rXr)r+�	REG_DWORD)rr�rrr�test_setvalueex_value_rangeKs
z,LocalWinregTests.test_setvalueex_value_rangec	Cstzbttt��N}|�|jd�d}t|ddt|�t|d�\}}|�	|t�|�	||�W5QRXW5ttt�XdS)Nrr�r�)
r!rrr4rXr)r+r�r?r-�rr�Ztest_valZret_valZret_typerrr�test_queryvalueex_return_valueWsz/LocalWinregTests.test_queryvalueex_return_valuec	Cstzbttt��N}|�|jd�d}t|ddt|�t|d�\}}|�	|t�|�	||�W5QRXW5ttt�XdS)Nrr�)
r!rrr4rXr)r+�
REG_BINARYr?r-r�rrr�#test_setvalueex_crash_with_none_arggsz4LocalWinregTests.test_setvalueex_crash_with_none_argc	Cstzbttt��N}|�|jd�d}t|ddt|�t|d�\}}|�	|t�|�	|d�W5QRXW5ttt�XdS)NrzA string with a nullr�zA string)
r!rrr4rXr)r+r'r?r-r�rrr� test_read_string_containing_nulltsz1LocalWinregTests.test_read_string_containing_nullN)rKrLrMrOrTrUr[r^rdrerwryr}�unittest�
skipUnless�WIN_VERr�r�r�r�r�rrrrrN�s 	 

rNzSkipping remote registry testsc@seZdZdd�ZdS)�RemoteWinregTestscCsttt�}|�|�dSr)rV�REMOTE_NAMErrE)rZ
remote_keyrrr�test_remote_registry_works�s
z,RemoteWinregTests.test_remote_registry_worksN)rKrLrMr�rrrrr��sr�zx64 specific registry testsc@s^eZdZdd�Ze�e�dkd�dd��Ze�e	d�dd	��Z
e�e	d�d
d��Zdd
�ZdS)�Win64WinregTestscCs |�tt�ttttdd�dS)Nr)r5r$rGrF)rJrrr�rrrrrrU�s
�z%Win64WinregTests.test_named_arguments)ZWindowsCoreHeadlessZ	IoTEdgeOSz)APIs not available on WindowsCoreHeadlessc	CsRttd��>}|�t|��|�t|��|�t|��|�t|��W5QRXdS)NZSoftware)rrWr(r�ZassertIsNoner�r�)rr5rrr�test_reflection_functions�s
z*Win64WinregTests.test_reflection_functionszOS doesn't support reflectioncCsz�tttdttB��d}|�|jd�tttdttB��}|�|jd�W5QRXt	|ddt
d�dd�}|�t|�W5QRXtttdtt
B��6}|�|jd�|�dt|d��t	|ddt
d�W5QRXtttdttB��}|�dt|d��W5QRXW5ttttd�XdS)NrrZ32KEYcSstttdttB�Sr)rr�test_reflect_key_namerS�KEY_WOW64_64KEYrrrrrQ�s�z2Win64WinregTests.test_reflection.<locals>.<lambda>Z64KEY)r�rr��KEY_WOW64_32KEYrHrrXr)rr+r'r\rr�r-r=rS)r�created_keyr5�	open_failrrr�test_reflection�s<���� �z Win64WinregTests.test_reflectioncCs�z�tttdttB��>}t|�}|�t|�t	�|�
|�t|�|�t|��W5QRXdd�}|�
t|�tttdttB��}|�|jd�W5QRXW5ttttd�XdS)NrcSstttdttB�Sr)rIrr�rSr�rrrrrQ�s�z:Win64WinregTests.test_disable_reflection.<locals>.<lambda>)r�rr�r�rHrr�r-r_�boolZassertFalser�r(r\rrIrSrXr))rr��disabledr�r5rrr�test_disable_reflection�s*�
��z(Win64WinregTests.test_disable_reflectionc	Cs$|�t��}ttd�W5QRXdS)NZsome_value_that_does_not_exist)r\�FileNotFoundErrorr=ZHKEY_CLASSES_ROOT)r�ctxrrr�test_exception_numbers�sz'Win64WinregTests.test_exception_numbersN)
rKrLrMrUr�ZskipIfrr�r��HAS_REFLECTIONr�r�r�rrrrr��s



+

r�cCst�ttt�dSr)rZrun_unittestrNr�r�rrrr�	test_main�s�r��__main__z)Remote registry calls can be tested usingz('test_winreg.py --remote \\machine_name'))ra�sysrzr��testrrk�platformrr�
import_moduler�argvrAr��
IndexError�
ValueErrorZgetwindowsversionr�Z
WIN64_MACHINEr��getpidZ
test_key_baserr�r�Z	REG_QWORDr'Z
REG_EXPAND_SZZREG_MULTI_SZr�r*ZTestCaserrNr�r�r�r�rK�printrrrr�<module>sT
�9

a
�

F1le Man4ger