ó
E®Uc           @   s  d  Z  d d l m Z m Z 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 Z xK d d	 g D]= Z e j j e j j e ƒ e ƒ Z e j j e ƒ r Pq q Wd
 e	 f d „  ƒ  YZ d e
 f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e	 f d „  ƒ  YZ d S(   s   Tests for samba.samba3.iÿÿÿÿ(   t   Registryt   WinsDatabaset   IdmapDatabase(   t   passdb(   t   param(   t   TestCaset   TestCaseInTempDir(   t   dom_sidNs   ../../../../../testdata/samba3s   ../../../../testdata/samba3t   RegistryTestCasec           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s5   t  t |  ƒ j ƒ  t t j j t d ƒ ƒ |  _ d  S(   Nt   registry(	   t   superR   t   setUpR    t   ost   patht   joint   DATADIRR	   (   t   self(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   (   s    c         C   s$   |  j  j ƒ  t t |  ƒ j ƒ  d  S(   N(   R	   t   closeR
   R   t   tearDown(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   ,   s    c         C   s   |  j  d t |  j ƒ ƒ d  S(   Ni   (   t   assertEqualst   lenR	   (   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_length0   s    c         C   s    |  j  d |  j j ƒ  k ƒ d  S(   Nt   HKLM(   t
   assertTrueR	   t   keys(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt	   test_keys3   s    c         C   s&   |  j  d d g |  j j d ƒ ƒ d  S(   Nt   SOFTWAREt   SYSTEMR   (   R   R	   t   subkeys(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_subkeys6   s    c         C   s.   |  j  i d d 6d	 d 6|  j j d ƒ ƒ d  S(
   Nl    t   E v e n t   L o g   t   DisplayNamel    s      t   ErrorControls/   HKLM/SYSTEM/CURRENTCONTROLSET/SERVICES/EVENTLOG(   l    R   (   l    s      (   R   R	   t   values(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_values9   s    (   t   __name__t
   __module__R   R   R   R   R   R"   (    (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   &   s   					t   PassdbTestCasec           B   sk   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   c         C   sâ   t  t |  ƒ j ƒ  t j d t |  j f ƒ t j j |  j d ƒ } t	 j
 ƒ  |  _ |  j j t j j | d ƒ ƒ |  j j d | ƒ |  j j d | ƒ |  j j d | ƒ |  j j d | ƒ t j | ƒ t j d ƒ |  _ d  S(	   Ns   cp -r %s %st   samba3s   smb.confs   private dirs   state directorys   lock directorys   cache directoryt   tdbsam(   R
   R%   R   R   t   systemR   t   tempdirR   R   t   s3paramt   get_contextt   lpt   loadt   setR   t   set_secrets_dirt   PDBt   pdb(   R   t   datadir(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   A   s    c         C   sL   g  |  _  g  |  _ t j d t j j |  j d ƒ ƒ t t |  ƒ j	 ƒ  d  S(   Ns	   rm -rf %sR&   (
   R,   R1   R   R(   R   R   R)   R
   R%   R   (   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   O   s    		#c         C   sX   |  j  d |  j j d ƒ ƒ |  j  d |  j j d ƒ ƒ |  j  d |  j j d ƒ ƒ d  S(   Nt   BEDWYRs   netbios namet   SAMBAt	   workgroupt   USERt   security(   R   R,   t   get(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt
   test_paramU   s    c         C   sÛ   |  j  j ƒ  } |  j d | d ƒ |  j d | d ƒ |  j d | d ƒ |  j d | d ƒ |  j d | d ƒ |  j d	 | d
 ƒ |  j d | d ƒ |  j d | d ƒ |  j d | d ƒ |  j d | d ƒ d  S(   Ni    s   bad lockout attemptiÿÿÿÿs   disconnect times   lockout durationiÿÉš;s   maximum password ages   minimum password agei   s   min password lengths   password historys   refuse machine password changes   reset count minutess"   user must logon to change password(   R1   t   get_account_policyR   (   R   t   policy(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_policyZ   s    c         C   s&   t  j ƒ  } |  j t d ƒ | ƒ d  S(   Ns)   S-1-5-21-2470180966-3899876309-2637894779(   R   t   get_global_sam_sidR   R   (   R   t
   domain_sid(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_get_sidg   s    c         C   s,   |  j  j d ƒ } |  j d t | ƒ ƒ d  S(   Ni    i   (   R1   t   search_usersR   R   (   R   t   userlist(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_usernamesk   s    c         C   s›  |  j  j d ƒ } |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j	 ƒ |  j d | j
 ƒ |  j d | j ƒ |  j t d ƒ | j ƒ |  j d | j ƒ |  j g  t d ƒ D] } d	 ^ qü | j ƒ |  j d | j ƒ |  j d
 | j ƒ |  j d  | j ƒ |  j d
 | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ |  j d  | j  ƒ |  j d | j! ƒ |  j d  | j" ƒ |  j t d ƒ | j# ƒ |  j d | j$ ƒ |  j d | j% ƒ d  S(   Nt   rooti   t    i    R3   s-   S-1-5-21-2470180966-3899876309-2637894779-513s   \\BEDWYR\rooti   iÿÿÿÿl   ÿÿÿÿ i¨   s   ‡€`lÚ)gzDï¡5?Çi…CiO¯~s   \\BEDWYR\root\profiles.   S-1-5-21-2470180966-3899876309-2637894779-1000(&   R1   t   getsampwnamR   t	   acct_ctrlt	   acct_desct   bad_password_countt   bad_password_timet	   code_paget   country_codet	   dir_drivet   domaint	   full_nameR   t	   group_sidt   home_dirt   ranget   hourst	   hours_lent   kickoff_timet   Nonet   lanman_passwdt   logoff_timet   logon_countt
   logon_divst   logon_scriptt
   logon_timet   munged_dialt	   nt_passwdt   nt_usernamet   pass_can_change_timet   pass_last_set_timet   pass_must_change_timet   plaintext_passwdt   profile_patht
   pw_historyt   user_sidt   usernamet   workstations(   R   t   usert   i(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_getusero   sB    ,c         C   s)   |  j  j ƒ  } |  j d t | ƒ ƒ d  S(   Ni   (   R1   t   enum_group_mappingR   R   (   R   t	   grouplist(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_group_length“   s    c         C   sU   |  j  j t d ƒ ƒ } |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ d  S(   Ns   S-1-5-32-544t   Administratorsiÿÿÿÿi   (   R1   t   getgrsidR   R   t   nt_namet   gidt   sid_name_use(   R   t   group(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_get_group—   s    c         C   sÅ   |  j  j ƒ  } g  } x$ | D] } | j t | j ƒ ƒ q W|  j d | k ƒ |  j d | k ƒ |  j d | k ƒ |  j d | k ƒ |  j d | k ƒ |  j d | k ƒ |  j d | k ƒ d  S(   Ns   S-1-5-32-544s   S-1-5-32-545s   S-1-5-32-546s   S-1-5-32-548s   S-1-5-32-549s   S-1-5-32-550s   S-1-5-32-551(   R1   Rk   t   appendt   strt   sidR   (   R   Rl   t   sidst   g(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_groupsids   s    c         C   sA   |  j  j ƒ  } |  j d t | ƒ ƒ |  j d | d d ƒ d  S(   Ni   s   Jelmers NT Groupi    t   account_name(   R1   t   search_aliasesR   R   (   R   t	   aliaslist(    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_alias_lengthª   s    (   R#   R$   R   R   R9   R<   R?   RB   Rj   Rm   Rt   Rz   R~   (    (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR%   ?   s   							$			t   WinsDatabaseTestCasec           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s5   t  t |  ƒ j ƒ  t t j j t d ƒ ƒ |  _ d  S(   Ns   wins.dat(	   R
   R   R   R   R   R   R   R   t   winsdb(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   ²   s    c         C   s   |  j  d t |  j ƒ ƒ d  S(   Ni   (   R   R   R€   (   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   ¶   s    c         C   s'   |  j  d d g d f |  j d ƒ d  S(   Ni ´Cs   192.168.1.5id   s   ADMINISTRATOR#03(   t   assertEqualR€   (   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_first_entry¹   s    c         C   s$   |  j  j ƒ  t t |  ƒ j ƒ  d  S(   N(   R€   R   R
   R   R   (   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   ¼   s    (   R#   R$   R   R   R‚   R   (    (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   °   s   			t   IdmapDbTestCasec           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   s5   t  t |  ƒ j ƒ  t t j j t d ƒ ƒ |  _ d  S(   Nt   winbindd_idmap(	   R
   Rƒ   R   R   R   R   R   R   t   idmapdb(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   Ã   s    c         C   s   |  j  d |  j j ƒ  ƒ d  S(   Ni'  (   R   R…   t   get_user_hwm(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_user_hwmÈ   s    c         C   s   |  j  d |  j j ƒ  ƒ d  S(   Ni'  (   R   R…   t   get_group_hwm(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_group_hwmË   s    c         C   s)   |  j  d t t |  j j ƒ  ƒ ƒ ƒ d  S(   Ni   (   R   R   t   listR…   t   uids(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt	   test_uidsÎ   s    c         C   s)   |  j  d t t |  j j ƒ  ƒ ƒ ƒ d  S(   Ni   (   R   R   RŠ   R…   t   gids(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt	   test_gidsÑ   s    c         C   s    |  j  d |  j j d ƒ ƒ d  S(   Ns*   S-1-5-21-58189338-3053988021-627566699-501iþÿ  (   R   R…   t   get_user_sid(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_get_user_sidÔ   s    c         C   s    |  j  d |  j j d ƒ ƒ d  S(   Ns.   S-1-5-21-2447931902-1787058256-3961074038-3007i'  (   R   R…   t   get_group_sid(   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   test_get_group_sid×   s    c         C   s$   |  j  j ƒ  t t |  ƒ j ƒ  d  S(   N(   R…   R   R
   Rƒ   R   (   R   (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyR   Ú   s    (
   R#   R$   R   R‡   R‰   RŒ   RŽ   R   R’   R   (    (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyRƒ   Á   s   							(   t   __doc__t   samba.samba3R    R   R   R   R   R*   t   samba.testsR   R   t   samba.dcerpc.securityR   R   t   pR   R   t   dirnamet   __file__R   t   existsR   R%   R   Rƒ   (    (    (    s6   /usr/lib/python2.7/dist-packages/samba/tests/samba3.pyt   <module>   s   !q