a
    I_*	                     @   s`   d Z ddlZddlZddlmZmZ ddlmZ ddlm	Z	m
Z
 ddlZG dd dejjZdS )z$
Confirm that net.join_member works
    N)NetLIBNET_JOIN_AUTOMATIC)DONT_USE_KERBEROS)NTSTATUSErrorntstatusc                       s0   e Zd Z fddZ fddZdd Z  ZS )NetJoinTestsc                    sd   t t|   tjd | _tjd | _|  | _| j	d| j
 | j	d| j
 | j	d| j
 d S )NZDOMAINZSERVERzprivate dirzlock dirzstate directory)superr   setUposenvirondomainserverZget_loadparmlpsettempdirself	__class__ 6/usr/lib/python3/dist-packages/samba/tests/net_join.pyr	   !   s    
zNetJoinTests.setUpc                    s   t t|   d S )N)r   r   tearDownr   r   r   r   r   *   s    zNetJoinTests.tearDownc           
   
   C   s   d}d}| j |  td}t|| j| jd}z|j| j|t|d\}}}W nL t	y } z4t
|jd j}	|	tjkr| d  W Y d }~n
d }~0 0 ttj| jd d S )	NZNetJoinTestZ
abcdefghij)templateZkerberos_state)r   )machinepassr   zConnection failurezsecrets.ldb)Zinsta_credsZget_credentialsr   r   r   r   Zjoin_memberr   r   r   ctypesZc_uint32argsvaluer   Z!NT_STATUS_CONNECTION_DISCONNECTEDZfailr
   unlinkpathjoinr   )
r   Znetbios_namer   ZcredsZnetZjoin_passwordZsidZdomain_nameecoder   r   r   test_net_join-   s$    


zNetJoinTests.test_net_join)__name__
__module____qualname__r	   r   r"   __classcell__r   r   r   r   r      s   	r   )__doc__Zsamba.testsZsambar
   Z	samba.netr   r   Zsamba.credentialsr   r   r   r   ZtestsZTestCaseInTempDirr   r   r   r   r   <module>   s   