File: //usr/local/lib/python3.7/test/__pycache__/test_winreg.cpython-37.pyc
B
��g�T � @ s� d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlmZ ej ddgd� d dl
T yejej�d�d Z
W n eefk
r� dZ
Y nX e�� dd
� Ze� dkr�dnd
Zedk r�dnd
Zde �� f Zde Zde Zddefddefddefddefdddddgefdd d d d gefd!d"efd#d$d% efd&d'd( efd)d*efg
ZG d+d,� d,ej�Z G d-d.� d.e �Z!e�"e
d/�G d0d1� d1e ��Z#e�"ed2�G d3d4� d4e ��Z$d5d6� Z%e&d7k�r�e
�s�e'd8d9� e%� dS ):� N)�support)�machine�winreg�win)Zrequired_on)�*z--remote� � ZAMD64TF)� r z Python Test Key [%d] - Delete Mez SOFTWARE\zSOFTWARE\Classes\z Int Value�- zQword Valuel �w�*M z
String ValzA string valueZStringExpandzThe path is %path%zMulti-stringZLotsZof�string�valuesz Multi-nul� zRaw Datas binary dataz
Big String�xi�? z
Big Binary� xi @ u Japanese 日本u 日本語c @ sT e Zd Zdd� Zdd� Zdefdd�Zdefdd �Zdd
d�Z ddd
�Z
dd� ZdS )�BaseWinregTestsc C s | � tt� d S )N)�delete_tree�HKEY_CURRENT_USER�
test_key_name)�self� r �,/usr/local/lib/python3.7/test/test_winreg.py�setUp6 s zBaseWinregTests.setUpc C sv yt ||dt�}W n tk
r& d S X x6yt|d�}W n tk
rN P Y nX | �||� q*W t|� t||� d S )Nr )�OpenKey�KEY_ALL_ACCESS�OSError�EnumKeyr �CloseKey� DeleteKey)r �rootZsubkey�hkeyZ subsubkeyr r r r ; s zBaseWinregTests.delete_tree�sub_keyc C s, t |ttd� ||t�}| �|jdk� |||�}x"tD ]\}}}t||d||� q8W t|�\} }
}| �| dd� | �|
dd� t|�\} }
}| �| dd� | �|
t t�d� t
|�}t|� yt|� | �d� W n t
k
r� Y nX t
|�}
|�� yt|
� | �d� W n t
k
�r& Y nX d S )Nz
Default valuer r z"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_keyr r r �_write_test_dataK s6
z BaseWinregTests._write_test_datac C s. t |t�}| �|dd� ||t�}|||���}d}xDyt||�}W n tk
rX P Y nX | �|tkdd� |d }q4W | �|tt�d� x<tD ]4\} }
}t|| �\}}
| �||
d� | �|
|d� q�W W d Q R X |�� t |d�}| �||d � yt |d� | �
d
� W n tk
�r Y nX |�� d S )Nz
Default valuez+Registry didn't give back the correct valuer Tz&Didn't read back the correct test datar z'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!)�
QueryValuer r( � EnumValuer r% r) �QueryValueExr, r r+ )r r- r. r �valr0 r �index�datar1 r2 r3 Zread_valZread_typr r r �_read_test_datau s>