a
    œcl_¥  ã                   @   s€   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	Z	dD ]*Z
e	j e	j e¡e
¡Ze	j e¡r@ qlq@G dd	„ d	eƒZdS )
zTests for samba.s3passdbé    )Úpassdb)Úparam)ÚTestCaseInTempDir)Údom_sidN)z../../../../../testdata/samba3z../../../../testdata/samba3c                       sh   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	dd„ Z
dd„ Zdd„ Z‡  ZS )ÚPassdbTestCasec                    s¤   t t| ƒ ¡  t dt| jf ¡ tj | jd¡}t	 
¡ | _| j tj |d¡¡ | j d|¡ | j d|¡ | j d|¡ | j d|¡ t |¡ t d¡| _d S )	Nzcp -r %s %sÚsamba3zsmb.confzprivate dirzstate directoryzlock directoryzcache directoryZtdbsam)Úsuperr   ÚsetUpÚosÚsystemÚDATADIRÚtempdirÚpathÚjoinÚs3paramZget_contextÚlpÚloadÚsetr   Zset_secrets_dirZPDBÚpdb)ÚselfZdatadir©Ú	__class__© ú6/usr/lib/python3/dist-packages/samba/tests/s3passdb.pyr	   #   s    

zPassdbTestCase.setUpc                    s8   g | _ g | _t dtj | jd¡ ¡ tt| ƒ 	¡  d S )Nz	rm -rf %sr   )
r   r   r
   r   r   r   r   r   r   ÚtearDown)r   r   r   r   r   1   s    zPassdbTestCase.tearDownc                 C   s®   | j  ¡ }|  d|d ¡ |  d|d ¡ |  d|d ¡ |  d|d ¡ |  d|d ¡ |  d	|d
 ¡ |  d|d ¡ |  d|d ¡ |  d|d ¡ |  d|d ¡ d S )Nr   zbad lockout attemptéÿÿÿÿzdisconnect timezlockout durationiÿÉš;zmaximum password agezminimum password ageé   zmin password lengthzpassword historyzrefuse machine password changezreset count minutesz"user must logon to change password)r   Zget_account_policyÚassertEqual)r   Zpolicyr   r   r   Útest_policy7   s    
zPassdbTestCase.test_policyc                 C   s   t  ¡ }|  tdƒ|¡ d S )Nz)S-1-5-21-2470180966-3899876309-2637894779)r   Zget_global_sam_sidr   r   )r   Z
domain_sidr   r   r   Útest_get_sidD   s    zPassdbTestCase.test_get_sidc                 C   s    | j  d¡}|  dt|ƒ¡ d S )Nr   é   )r   Zsearch_usersr   Úlen)r   Zuserlistr   r   r   Útest_usernamesH   s    zPassdbTestCase.test_usernamesc                 C   sæ  | j  d¡}|  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j	¡ |  d|j
¡ |  d|j¡ |  tdƒ|j¡ |  d|j¡ |  dd	„ td
ƒD ƒ|j¡ |  d
|j¡ |  d|j¡ |  d |j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d|j¡ |  d |j¡ |  d|j ¡ |  d |j!¡ |  tdƒ|j"¡ |  d|j#¡ |  d|j$¡ d S )NÚrooté   Ú r   ZBEDWYRz-S-1-5-21-2470180966-3899876309-2637894779-513z\\BEDWYR\rootc                 S   s   g | ]}d ‘qS )r   r   )Ú.0Úir   r   r   Ú
<listcomp>Z   ó    z/PassdbTestCase.test_getuser.<locals>.<listcomp>é   l   ÿÿÿÿ é¨   s   ‡€`lÚ)gzDï¡5?Çi…CiO¯~z\\BEDWYR\root\profilez.S-1-5-21-2470180966-3899876309-2637894779-1000)%r   Zgetsampwnamr   Z	acct_ctrlZ	acct_descZbad_password_countZbad_password_timeZ	code_pageZcountry_codeZ	dir_driveZdomainZ	full_namer   Z	group_sidZhome_dirÚrangeZhoursZ	hours_lenZkickoff_timeZlanman_passwdZlogoff_timeZlogon_countZ
logon_divsZlogon_scriptZ
logon_timeZmunged_dialZ	nt_passwdZnt_usernameZpass_can_change_timeZpass_last_set_timeZpass_must_change_timeZplaintext_passwdZprofile_pathZ
pw_historyZuser_sidZusernameZworkstations)r   Úuserr   r   r   Útest_getuserL   sB    zPassdbTestCase.test_getuserc                 C   s   | j  ¡ }|  dt|ƒ¡ d S )Né   )r   Úenum_group_mappingr   r!   )r   Ú	grouplistr   r   r   Útest_group_lengthp   s    
z PassdbTestCase.test_group_lengthc                 C   s>   | j  tdƒ¡}|  d|j¡ |  d|j¡ |  d|j¡ d S )NúS-1-5-32-544ZAdministratorsr   r   )r   Zgetgrsidr   r   Znt_nameÚgidZsid_name_use)r   Úgroupr   r   r   Útest_get_groupt   s    zPassdbTestCase.test_get_groupc                 C   sŽ   | j  ¡ }g }|D ]}| t|jƒ¡ q|  d|v ¡ |  d|v ¡ |  d|v ¡ |  d|v ¡ |  d|v ¡ |  d|v ¡ |  d|v ¡ d S )Nr3   zS-1-5-32-545zS-1-5-32-546zS-1-5-32-548zS-1-5-32-549zS-1-5-32-550zS-1-5-32-551)r   r0   ÚappendÚstrZsidZ
assertTrue)r   r1   ZsidsÚgr   r   r   Útest_groupsidsz   s    
zPassdbTestCase.test_groupsidsc                 C   s2   | j  ¡ }|  dt|ƒ¡ |  d|d d ¡ d S )Né   zJelmers NT Groupr   Zaccount_name)r   Zsearch_aliasesr   r!   )r   Z	aliaslistr   r   r   Útest_alias_length‡   s    
z PassdbTestCase.test_alias_length)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r"   r.   r2   r6   r:   r<   Ú__classcell__r   r   r   r   r   !   s   $r   )Ú__doc__Zsamba.samba3r   r   r   Zsamba.testsr   Zsamba.dcerpc.securityr   r
   Úpr   r   ÚdirnameÚ__file__r   Úexistsr   r   r   r   r   Ú<module>   s   