a
    œcl_þ	  ã                   @   s|   d Z ddlZddlmZ ddlZddlmZ ddlmZmZ G dd„ dej	j
ƒZG dd	„ d	ej	jƒZG d
d„ dej	j
ƒZdS )zTests for samba.registry.é    N)Úregistry)ÚWERRORError)ÚPopenÚPIPEc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚHelperTestsc                 C   s   |   dt d¡¡ d S )NÚHKEY_LOCAL_MACHINEl       )ÚassertEqualr   Zget_predef_name©Úself© r   ú6/usr/lib/python3/dist-packages/samba/tests/registry.pyÚtest_predef_to_name   s    ÿzHelperTests.test_predef_to_namec                 C   s   |   dt d¡¡ d S )NZ	REG_DWORDé   )r   r   Zstr_regtyper	   r   r   r   Útest_str_regtype!   s    zHelperTests.test_str_regtypeN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s   r   c                       sP   e Zd Z‡ fdd„Z‡ fdd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	‡  Z
S )Ú	HiveTestsc                    s2   t t| ƒ ¡  tj | jd¡| _t 	| j¡| _
d S )Nzldb_new.ldb)Úsuperr   ÚsetUpÚosÚpathÚjoinZtempdirÚ	hive_pathr   Zopen_ldbÚhiver	   ©Ú	__class__r   r   r   '   s    zHiveTests.setUpc                    s"   | ` t | j¡ tt| ƒ ¡  d S ©N)r   r   Úunlinkr   r   r   ÚtearDownr	   r   r   r   r   ,   s    zHiveTests.tearDownc                 C   s   |   | jd u¡ d S r   )Ú
assertTruer   r	   r   r   r   Útest_ldb_new1   s    zHiveTests.test_ldb_newc                 C   s   |   | j ddd¡¡ d S )NZfoo1é   Zbar1)ÚassertIsNoner   Ú	set_valuer	   r   r   r   Útest_set_value4   s    zHiveTests.test_set_valuec                 C   sl   |   | j ddd¡¡ |   | j ¡ ¡ d}tj d¡r:d}t|| jgt	t	d}| 
¡ \}}|  d|v ¡ d S )NZfoo2r"   Zbar2Ztdbdumpzbin/tdbdump)ÚstdoutÚstderrs   DN=VALUE=FOO2,HIVE=NONE)r#   r   r$   Úflushr   r   Úisfiler   r   r   Zcommunicater    )r
   Ztdbdump_toolÚprocZtdb_dumpÚerrr   r   r   Ú
test_flush7   s    zHiveTests.test_flushc                 C   s,   |   | j ddd¡¡ |   | j d¡¡ d S )NZfoo3r"   Zbar3)r#   r   r$   Ú	del_valuer	   r   r   r   Útest_del_valueC   s    zHiveTests.test_del_valuec                 C   s   |   t| jjd¡ d S )NZfoo4)ZassertRaisesr   r   r-   r	   r   r   r   Útest_del_nonexisting_valueG   s    z$HiveTests.test_del_nonexisting_value)r   r   r   r   r   r!   r%   r,   r.   r/   Ú__classcell__r   r   r   r   r   %   s   r   c                   @   s   e Zd Zdd„ ZdS )ÚRegistryTestsc                 C   s   t  ¡ | _ |  | j ¡ d S r   )r   ZRegistryZassertIsNotNoner	   r   r   r   Útest_newM   s    
zRegistryTests.test_newN)r   r   r   r2   r   r   r   r   r1   K   s   r1   )Ú__doc__r   Zsambar   Zsamba.testsr   Ú
subprocessr   r   ZtestsZTestCaser   ZTestCaseInTempDirr   r1   r   r   r   r   Ú<module>   s   
&