ó
uæîUc           @   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	 m
 Z
 m Z d d l m Z d d l Z d d l Z d d l Z d	 e f d
 „  ƒ  YZ d S(   s   Tests for samba.dsdb.iÿÿÿÿ(   t   Credentials(   t   SamDB(   t   system_session(   t   TestCase(   t
   ndr_unpackt   ndr_pack(   t   drsblobsNt	   DsdbTestsc           B   st   e  Z d  „  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 j ƒ  |  _ |  j j t j	 j
 t j	 j
 |  j ƒ  d ƒ d ƒ ƒ t ƒ  |  _ |  j j |  j ƒ t ƒ  |  _ t t j	 j
 |  j ƒ  d d ƒ d |  j d |  j d |  j ƒ|  _ d  S(   Nt   etcs   smb.conft   privates   sam.ldbt   session_infot   credentialst   lp(   t   superR   t   setUpt   sambat   paramt   LoadParmR   t   loadt   ost   patht   joint   baseprovpathR    t   credst   guessR   t   sessionR   t   samdb(   t   self(    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyR   !   s    4!c         C   s   t  j j t  j d d ƒ S(   Nt   SELFTEST_PREFIXt   ad_dc_ntvfs(   R   R   R   t   environ(   R   (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyR   +   s    c         C   s&   |  j  j d ƒ } |  j | d ƒ d  S(   Niþ	 s   1.2.840.113556.1.4.1790(   R   t   get_oid_from_attidt   assertEquals(   R   t   oid(    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt   test_get_oid_from_attrid.   s    c         C   sù   |  j  j d d d t j d d g ƒ } t t j t | d d ƒ ƒ } | j } x< | j	 D]1 } | j
 d k rZ | j } | j d | _ qZ qZ Wt | ƒ } t j ƒ  } | d j | _ t j | t j d ƒ | d <|  j t j |  j  j | d	 g ƒ d  S(
   Nt
   expressions   cn=Administratort   scopet   attrst   replPropertyMetaDatai    i   i   s#   local_oid:1.3.6.1.4.1.7165.4.3.14:0(   R   t   searcht   ldbt   SCOPE_SUBTREER   R   t   replPropertyMetaDataBlobt   strt   ctrt   arrayt   attidt   versionR   t   Messaget   dnt   MessageElementt   FLAG_MOD_REPLACEt   assertRaisest   LdbErrort   modify(   R   t   rest   replR,   t   ot   old_versiont   replBlobt   msg(    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt   test_error_replpropertymetadata2   s    				c         C   s±   |  j  j d d d t j d d g ƒ } t t j t | d d ƒ ƒ } t | ƒ } t j	 ƒ  } | d j
 | _
 t j | t j d ƒ | d <|  j t j |  j  j | d g ƒ d  S(   NR#   s   cn=AdministratorR$   R%   R&   i    s#   local_oid:1.3.6.1.4.1.7165.4.3.14:0(   R   R'   R(   R)   R   R   R*   R+   R   R0   R1   R2   R3   R4   R5   R6   (   R   R7   R8   R;   R<   (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt(   test_error_replpropertymetadata_nochangeD   s    		c         C   s¨   |  j  j d d d t j d d g ƒ } t t j t | d d ƒ ƒ } t | ƒ } t j	 ƒ  } | d j
 | _
 t j | t j d ƒ | d <|  j  j | d d g ƒ d  S(	   NR#   s   cn=AdministratorR$   R%   R&   i    s#   local_oid:1.3.6.1.4.1.7165.4.3.14:0s#   local_oid:1.3.6.1.4.1.7165.4.3.25:0(   R   R'   R(   R)   R   R   R*   R+   R   R0   R1   R2   R3   R6   (   R   R7   R8   R;   R<   (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt*   test_error_replpropertymetadata_allow_sortP   s    		c         C   s9  |  j  j d d d t j d d d g ƒ } t t j t | d d ƒ ƒ } | j } x] | j	 D]R } | j
 d k r] | j } | j d	 | _ t t | d d ƒ ƒ d	 | _ q] q] Wt | ƒ } t j ƒ  } | d j | _ t j | t j d ƒ | d <t j d
 t j d ƒ | d <|  j t j |  j  j | d g ƒ d  S(   NR#   s   cn=AdministratorR$   R%   R&   t
   uSNChangedi    i   i   s   new valt   descriptions#   local_oid:1.3.6.1.4.1.7165.4.3.14:0(   R   R'   R(   R)   R   R   R*   R+   R,   R-   R.   R/   t   longt	   local_usnR   R0   R1   R2   R3   R4   R5   R6   (   R   R7   R8   R,   R9   R:   R;   R<   (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt    test_twoatt_replpropertymetadata\   s"    				(c         C   s2  |  j  j d d d t j d d d g ƒ } t t j t | d d ƒ ƒ } | j } x~ | j	 D]s } | j
 d k r] | j } | j d	 | _ t t | d d ƒ ƒ d	 | _ t t | d d ƒ ƒ d	 | _ q] q] Wt | ƒ } t j ƒ  } | d j | _ t j | t j d ƒ | d <|  j  j | d
 g ƒ d  S(   NR#   s   cn=AdministratorR$   R%   R&   R@   i    i   i   s#   local_oid:1.3.6.1.4.1.7165.4.3.14:0(   R   R'   R(   R)   R   R   R*   R+   R,   R-   R.   R/   RB   RC   t   originating_usnR   R0   R1   R2   R3   R6   (   R   R7   R8   R,   R9   R:   R;   R<   (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt   test_set_replpropertymetadatap   s"    				!(c         C   s    |  j  |  j j d ƒ d ƒ d  S(   Ni   RA   (   R    R   t   get_attribute_from_attid(   R   (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt    test_ok_get_attribute_from_attid„   s    c         C   s    |  j  |  j j d ƒ d  ƒ d  S(   NiË.  (   R    R   RG   t   None(   R   (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt    test_ko_get_attribute_from_attid‡   s    c         C   ss   |  j  j d d d t j d d g ƒ } |  j t | ƒ d ƒ t | d j ƒ } |  j |  j  j	 | d ƒ d ƒ d  S(	   NR#   s   cn=AdministratorR$   R%   R1   i   i    t
   unicodePwd(
   R   R'   R(   R)   R    t   lenR+   R1   t   assertEqualt"   get_attribute_replmetadata_version(   R   R7   R1   (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt'   test_get_attribute_replmetadata_versionŠ   s    	c         C   s¦   |  j  j d d d t j d d g ƒ } |  j t | ƒ d ƒ t | d j ƒ } |  j  j | d ƒ } |  j  j	 | d | d	 ƒ |  j
 |  j  j | d ƒ | d	 ƒ d  S(
   NR#   s   cn=AdministratorR$   R%   R1   i   i    RA   i   (   R   R'   R(   R)   R    RL   R+   R1   RN   t"   set_attribute_replmetadata_versionRM   (   R   R7   R1   R/   (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt'   test_set_attribute_replmetadata_version’   s    	(   t   __name__t
   __module__R   R   R"   R=   R>   R?   RD   RF   RH   RJ   RO   RQ   (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyR      s   	
										(   t   __doc__t   samba.credentialsR    t   samba.samdbR   t
   samba.authR   t   samba.testsR   t	   samba.ndrR   R   t   samba.dcerpcR   R(   R   R   R   (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/tests/dsdb.pyt   <module>   s   