
    b                        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 ]QZ
e	j                            e	j                            e          e
          Ze	j                            e          r nR G d d	e          ZdS )
zTests for samba.s3passdb    )passdb)param)TestCaseInTempDir)dom_sidN)z../../../../../testdata/samba3z../../../../testdata/samba3c                   X     e Zd Z fdZ fdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Z xZS )PassdbTestCasec                    t          t          |                                            t          j        dt
          d| j                   t          j                            | j        d          }t          j
                    | _        | j                            t          j                            |d                     | j                            d|           | j                            d|           | j                            d|           | j                            d|           t          j        |           t          j        d	          | _        d S )
Nzcp -r  samba3zsmb.confzprivate dirzstate directoryzlock directoryzcache directorytdbsam)superr   setUpossystemDATADIRtempdirpathjoins3paramget_contextlploadsetr   set_secrets_dirPDBpdb)selfdatadir	__class__s     6/usr/lib/python3/dist-packages/samba/tests/s3passdb.pyr   zPassdbTestCase.setUp#   s
   nd##))+++
		777DLL9:::',,t|X66%''RW\\':66777M7+++%w///$g...%w///w''':h''    c                     g | _         g | _        t          j        dt          j                            | j        d          z             t          t          |           	                                 d S )Nz	rm -rf %sr   )
r   r   r   r   r   r   r   r   r   tearDown)r   r   s    r    r#   zPassdbTestCase.tearDown1   sZ    
	+T\8 D DDEEEnd##,,.....r!   c                 h   | 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 attemptz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   get_account_policyassertEqual)r   policys     r    test_policyzPassdbTestCase.test_policy7   s3   ,,..F#89:::V$56777F#56777F+A$BCCCF#9:;;;F#89:::F#56777F#CDEEEF#89:::F#GHIIIIIr!   c                 r    t          j                    }|                     t          d          |           d S )Nz)S-1-5-21-2470180966-3899876309-2637894779)r   get_global_sam_sidr(   r   )r   
domain_sids     r    test_get_sidzPassdbTestCase.test_get_sidD   s5    .00
!LMMzZZZZZr!   c                     | j                             d          }|                     dt          |                     d S )Nr      )r   search_usersr(   len)r   userlists     r    test_usernameszPassdbTestCase.test_usernamesH   s9    8((++CMM*****r!   c                 \   | 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 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   BEDWYRz-S-1-5-21-2470180966-3899876309-2637894779-513z\\BEDWYR\rootc                     g | ]}d S )r%    ).0is     r    
<listcomp>z/PassdbTestCase.test_getuser.<locals>.<listcomp>Z   s    000"000r!      l       s   `l)gzD5?iCiO~z\\BEDWYR\root\profilez.S-1-5-21-2470180966-3899876309-2637894779-1000)%r   getsampwnamr(   	acct_ctrl	acct_descbad_password_countbad_password_time	code_pagecountry_code	dir_drivedomain	full_namer   	group_sidhome_dirrangehours	hours_lenkickoff_timelanman_passwdlogoff_timelogon_count
logon_divslogon_script
logon_timemunged_dial	nt_passwdnt_usernamepass_can_change_timepass_last_set_timepass_must_change_timeplaintext_passwdprofile_path
pw_historyuser_sidusernameworkstations)r   users     r    test_getuserzPassdbTestCase.test_getuserL   s]   x##F++T^,,,T^,,,D3444D2333DN+++D-...T^,,,4;///000!PQQSWSabbb+T];;;00eBii000$*===T^,,,,d.?@@@t1222,d.>???D,---do...T.///DO,,,T-...DdnUUUT-...T%>???T%<===T%?@@@t45554d6GHHHt///!QRRTXTabbb///T./////r!   c                 ~    | j                                         }|                     dt          |                     d S )N   )r   enum_group_mappingr(   r2   )r   	grouplists     r    test_group_lengthz PassdbTestCase.test_group_lengthp   s7    H//11	S^^,,,,,r!   c                     | j                             t          d                    }|                     d|j                   |                     d|j                   |                     d|j                   d S )NS-1-5-32-544Administratorsr%   r&   )r   getgrsidr   r(   nt_namegidsid_name_use)r   groups     r    test_get_groupzPassdbTestCase.test_get_groupt   so    !!'."9"9::)5=999UY'''E./////r!   c                    | j                                         }g }|D ])}|                    t          |j                             *|                     d|v            |                     d|v            |                     d|v            |                     d|v            |                     d|v            |                     d|v            |                     d|v            d S )Nrk   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   rg   appendstrsid
assertTrue)r   rh   sidsgs       r    test_groupsidszPassdbTestCase.test_groupsidsz   s    H//11	 	$ 	$AKKAE

####$.///$.///$.///$.///$.///$.///$./////r!   c                     | j                                         }|                     dt          |                     |                     d|d         d                    d S )N   zJelmers NT Groupr   account_name)r   search_aliasesr(   r2   )r   	aliaslists     r    test_alias_lengthz PassdbTestCase.test_alias_length   sW    H++--	C	NN++++Yq\.-IJJJJJr!   )__name__
__module____qualname__r   r#   r*   r.   r4   rd   ri   rr   rz   r   __classcell__)r   s   @r    r   r   !   s        ( ( ( ( (/ / / / /J J J[ [ [+ + +"0 "0 "0H- - -0 0 00 0 0K K K K K K Kr!   r   )__doc__samba.samba3r   r   r   samba.testsr   samba.dcerpc.securityr   r   pr   r   dirname__file__r   existsr   r;   r!   r    <module>r      s   $         ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) 				 
K  Agll27??844a88G	w~~g iK iK iK iK iK& iK iK iK iK iKr!   