a
    I_                     @   s@   d dl Z d dlZd dlmZmZ d dlmZ G dd deZdS )    N)PopenPIPE)NTLMAuthTestCasec                       s,   e Zd Z fddZdd Zdd Z  ZS )NTLMAuthKerberosTestsc                    sB   t t|   tjtjd dd| _tjtjd dd| _d S )NZSELFTEST_PREFIXZktestzkrb5_ccache-2zkrb5_ccache-3)	superr   setUpospathjoinenviron
old_ccacheccache)self	__class__ </usr/lib/python3/dist-packages/samba/tests/ntlm_auth_krb5.pyr      s    zNTLMAuthKerberosTests.setUpc              
   C   sp   | j tjd< | jdddtjd dddd	d
}| | | jtjd< | jdddtjd dddd	d
}| | dS )z= ntlm_auth with krb5 gss-spnego-client and gss-spnego server Z
KRB5CCNAMEZfooZsecretZFOOZSERVERZhostzgss-spnego-client
gss-spnegoT)Zclient_usernameZclient_passwordZclient_domainZtarget_hostnameZtarget_serviceZclient_helperZserver_helperZserver_use_winbindN)r   r   r   Z
run_helperZ
assertTruer   )r   Zretr   r   r   -test_krb5_gss_spnego_client_gss_spnego_server!   s,    
zCNTLMAuthKerberosTests.test_krb5_gss_spnego_client_gss_spnego_serverc                 C   s   d| j df }t| jdddddddd| g	tttd	}d
}|j|dd\}}| |jd d| jdf }t| jdddddddd| g	tttd	}d
}|j|dd\}}| |jd dS )z+ ntlm_auth with krb5 and an invalid keytab z
FILE:%s.%szkeytab-does-not-existsz--helper-protocolr   z--optionzsecurity=adszkerberosmethod=dedicatedkeytabzdedicatedkeytabfile=%s)stdoutstdinstderrzYR
zutf-8)inputr   N)	r   r   Zntlm_auth_pathr   ZcommunicateencodeZassertEqual
returncoder   )r   Zdedicated_keytabprocZbufouterrr   r   r   test_krb5_invalid_keytab:   s8    z.NTLMAuthKerberosTests.test_krb5_invalid_keytab)__name__
__module____qualname__r   r   r   __classcell__r   r   r   r   r      s   r   )r   Zsamba
subprocessr   r   Zsamba.tests.ntlm_auth_baser   r   r   r   r   r   <module>   s   