
    b2                         d dl mZmZ d dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZ d dlmZ 	 dZ G d d	e          ZdS )
    )TestCasedelete_forceN)system_session)Credentials)UF_WORKSTATION_TRUST_ACCOUNTUF_PASSWD_NOTREQDUF_NORMAL_ACCOUNT)SamDBkrb5credstestc                   @     e Zd Z fdZ fdZd Zd Zd Zd Z xZ	S )PyKrb5CredentialsTestsc                    t          t          |                                            t          j        d         | _        t          j        d         | _        t          j        d         | _        |                                 | _	        | 
                                | _        t                      | _        t          d| j        z  | j        | j        | j	                  | _        |                                  d S )NSERVERDOMAIN	SERVER_IPz	ldap://%s)urlsession_infocredentialslp)superr   setUposenvironserverdomainhostget_loadparmr   get_credentialsr   r   sessionr
   ldbcreate_machine_accountself	__class__s    >/usr/lib/python3/dist-packages/samba/tests/krb5_credentials.pyr   zPyKrb5CredentialsTests.setUp-   s    $d++11333:h/:h/:k2	,,..//11)++[494&*l%)%5 G% % %
 	##%%%%%    c                     t          t          |                                            t          | j        | j                   d S N)r   r   tearDownr   r    
machine_dnr"   s    r%   r)   zPyKrb5CredentialsTests.tearDown?   s:    $d++44666TXt/////r&   c                     d}| j                             | j        |          }|                     |                                |           d S )NzMEMORY:py_creds_machine)machine_credsget_named_ccacher   assertEqualget_name)r#   nameccaches      r%   test_get_named_ccachez,PyKrb5CredentialsTests.test_get_named_ccacheC   sL    (#44TW59; ;**D11111r&   c                     | j                             | j                  }|                     |                                           d S r(   )r,   r-   r   assertIsNotNoner/   )r#   r1   s     r%   test_get_unnamed_ccachez.PyKrb5CredentialsTests.test_get_unnamed_ccacheI   s>    #44TW==V__../////r&   c                 V   | j                             | j                  }t                      }|                    |                                           |                    | j                  }|                     |                                |                                           d S r(   )r,   r-   r   r   set_named_ccacher/   r.   )r#   r1   credsccache2s       r%   test_set_named_ccachez,PyKrb5CredentialsTests.test_set_named_ccacheM   s    #44TW==v00111((11**G,<,<,>,>?????r&   c           	      N   t          j        dd          | _        t          | _        d| j        d| j                                        | _        t          | j        | j                   | j        	                    d          
                    d          }d                    |          	                    d          }| j                            | j        dd| j        z  t          t          t          z            |d	           t!                      | _        | j                            |                                            | j                            | j                   | j                            | j        d
z              | j                            | j                   d S )N    zcn=,zutf-8z"{0}"z	utf-16-lecomputerz%s$)dnobjectclasssAMAccountNameuserAccountControl
unicodePwd$)sambagenerate_random_passwordmachine_passMACHINE_NAMEmachine_namer    	domain_dnr*   r   encodedecodeformataddstrr   r   r   r,   guessr   set_passwordset_usernameset_workstation)r#   pass_unicodeutf16pws      r%   r!   z-PyKrb5CredentialsTests.create_machine_accountX   su   !:2rBB((,(9(9(948;M;M;O;O;OP 	TXt///(//88??HH//,//66{CC/%#d&7703DDEE!# # 	$ 	$ 	$ )]]  !2!2!4!4555''(9:::''(9C(?@@@**4+<=====r&   )
__name__
__module____qualname__r   r)   r2   r5   r:   r!   __classcell__)r$   s   @r%   r   r   +   s        & & & & &$0 0 0 0 02 2 20 0 0@ @ @> > > > > > >r&   r   )samba.testsr   r   r   rE   
samba.authr   samba.credentialsr   
samba.dsdbr   r   r	   samba.samdbr
   rH   r    r&   r%   <module>r`      s   $ / . . . . . . . 				  % % % % % %                     D> D> D> D> D>X D> D> D> D> D>r&   