
    b                         d Z ddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZ ddlZddlZddlZddlZddlZ G d	 d
ej        j                  Zedk    rddlZ ej                     dS dS )zTests for samba.samba3.libsmb.    )libsmb_samba_internal)security)param)credentialsNTSTATUSError)NT_STATUS_DELETE_PENDING)SMB_ENCRYPTION_REQUIREDNc                   R    e Zd Z G d dej                  Zd Zd Zd Zd Z	d Z
dS )	LibsmbTestCasec                       e Zd Zd Zd ZdS )LibsmbTestCase.OpenClosec                 |    t           j                            |            || _        || _        || _        d| _        d S )NF)	threadingThread__init__connfilenamenum_opsexc)selfr   r   r   s       4/usr/lib/python3/dist-packages/samba/tests/libsmb.pyr   z!LibsmbTestCase.OpenClose.__init__%   s9    %%d+++DI$DM"DLDHHH    c                 :   | j         }	 t          | j                  D ]T}|                    | j        dt
          j                  }|                    |d           |                    |           Ud S # t          $ r t          j                    | _        Y d S w xY w)N   )CreateDispositionDesiredAccessT)r   ranger   creater   r   SEC_STD_DELETEdelete_on_closeclose	Exceptionsysexc_infor   )r   cifs       r   runzLibsmbTestCase.OpenClose.run,   s    	A*t|,,  A!/7/F ! H HA%%a...GGAJJJJ	 
  * * *<>>*s   A)A4 4"BBN)__name__
__module____qualname__r   r(    r   r   	OpenCloser   #   s2        	 	 			* 		* 		* 		* 		*r   r-   c                 j   t          j                    }|                    t          j        d                     t          j                    }|                    |           |                    t          j        d                     |	                    t          j        d                     ||fS )NSMB_CONF_PATHUSERNAMEPASSWORD)
s3paramget_contextloadosgetenvr   Credentialsguessset_usernameset_password)r   lpcredss      r   
prep_credszLibsmbTestCase.prep_creds7   s     ""
	/**+++'))B29Z0011129Z001115zr   c                    |                                  \  }}t          j        t          j        d          d||dd          }g }t          d          D ]C}t                              |dt          |          z   d          }|	                    |           D|D ]}|
                                 |D ]>}|                                 |j        r! |j        d         |j        d	                   ?d S )
N	SERVER_IPtmpT)multi_threaded
force_smb1r   test
   r      )r=   libsmbConnr5   r6   r   r   r-   strappendstartjoinr   )r   r;   r<   r%   	mythreadsr&   ts          r   test_OpenClosezLibsmbTestCase.test_OpenCloseB   s   __&&
EK	+..E$#') ) ) 	q 	  	 A((FSVVOR@@AQ 	 	AGGIIII 	) 	)AFFHHHu )aeAhquQx((()	) 	)r   c                 >   dt          j        dd          z  }|                                 \  }}|                    t                     t          j        t          j        d          d||          }|	                    |           |
                    |           d S )N
testing_%dr     r?   r@   randomrandintr=   set_smb_encryptionr	   rF   rG   r5   r6   mkdirrmdirr   test_dirr;   r<   r%   s        r   test_SMB3EncryptionRequiredz*LibsmbTestCase.test_SMB3EncryptionRequiredW   s    &.F";";;__&&
E  !8999K	+..E# # 	
	r   c                 B   dt          j        dd          z  }|                                 \  }}|                    t                     t          j        t          j        d          d||d          }|	                    |           |
                    |           d S )NrP   r   rQ   r?   r@   T)rB   rR   rX   s        r   test_SMB1EncryptionRequiredz*LibsmbTestCase.test_SMB1EncryptionRequiredc   s    &.F";";;__&&
E  !8999K	+..Ed4 4 4 	
	r   c                    |                                  \  }}d}t          j        t          j        d          d||          }t          j        t          j        d          d||          }	 |                    |           n#  Y nxY w|                    |           |                    |t          j	                  }|
                    |d           |                    dd           |                     t                    5 }|                    d|dz              d d d            n# 1 swxY w Y   |j        j        d	         t"          k    rt%          d
          |
                    |d	           |                    |           	 |                    |           |                    d           d S #  Y d S xY w)Nz\dst-subdirr?   r@   )r   rE   z\src.txts   Contentz\dst.txtr   z$Rename must fail with DELETE_PENDING)r=   rF   rG   r5   r6   deltreerV   r   r   r   r    savefileassertRaisesr   rename	exceptionargsr   AssertionErrorr!   unlink)r   r;   r<   dstdirc1c2dnumcms           r   test_RenameDstDelOnClosez'LibsmbTestCase.test_RenameDstDelOnCloseo   s   __&&
E[;//EBB[;//EBB	JJv	D
yyx/FyGG
4"""
K,,,}-- 	9IIk6K#7888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9La $<<< !GHHH
4"""
	JJvIIk"""""	DDs*   -B BD,,D03D0*F9 9F>N)r)   r*   r+   r   r   r-   r=   rN   rZ   r\   rk   r,   r   r   r   r   !   s        * * * * *I$ * * *(	 	 	) ) )*
 
 

 
 
    r   r   __main__)__doc__samba.samba3r   rF   samba.dcerpcr   r   r2   sambar   r   samba.ntstatusr   samba.credentialsr	   samba.testsr   r#   r5   rS   testsTestCaser   r)   unittestmainr,   r   r   <module>rx      s  $ % $ 8 8 8 8 8 8 ! ! ! ! ! ! ) ) ) ) ) ) - - - - - - - - 3 3 3 3 3 3 5 5 5 5 5 5         



 				 l l l l lU[) l l l\ zOOOHMOOOOO r   