ó
E®Uc           @   så   d  Z  d d l Z d d l m Z m Z m Z m 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 d d l Z d d	 l m Z d d d
 „ Z d e f d „  ƒ  YZ d e j j f d „  ƒ  YZ d S(   s!   Tests for samba.upgradeprovision.iÿÿÿÿN(   t   usn_in_ranget   dn_sortt   update_secretst   construct_existor_expr(   t   get_diff_sds(   t   create_dummy_secretsdb(   t   TestCaseInTempDir(   t   Ldb(   t
   SCOPE_BASE(   t   securityc         C   s   d  S(   N(    (   t   at   b(    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyt   dummymessage    s    t   UpgradeProvisionTestCasec           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   sI   Some simple tests for individual functions in the provisioning code.
    c         C   sˆ   d d d d g } d d d g } x$ | D] } |  j  t | | ƒ ƒ q( Wd d d d d	 g } x$ | D] } |  j t | | ƒ ƒ qd Wd  S(
   Ni   i   i#   i7   i   i   i8   i   i$   (   t   assertFalseR    t
   assertTrue(   t   selft   ranget   valst   v(    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyt   test_usn_in_range'   s    c         C   sh   |  j  t d d ƒ d ƒ |  j  t d d ƒ d ƒ |  j  t d d ƒ d ƒ |  j  t d	 d
 ƒ d ƒ d  S(   Ns   dc=tata,dc=totos   dc=totoi   s   dc=zatas   dc=tatas   dc=toto,dc=tatas   cn=foo,dc=toto,dc=tataiÿÿÿÿs   cn=bar, dc=toto,dc=tatas   cn=foo, dc=toto,dc=tata(   t   assertEqualsR   (   R   (    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyt   test_dn_sort4   s    c         C   s·  t  j d ƒ } d } d } d } d } d } d } d } |  j t t  j j | | ƒ t  j j | | ƒ | ƒ d ƒ t t  j j | | ƒ t  j j | | ƒ | ƒ }	 |  j |	 d	 ƒ t t  j j | | ƒ t  j j | | ƒ | ƒ }	 |  j |	 d
 ƒ t t  j j | | ƒ t  j j | | ƒ | ƒ }	 d }
 |  j |	 |
 ƒ t t  j j | | ƒ t  j j | | ƒ | ƒ }	 |  j |	 d ƒ |  j t t  j j | | ƒ t  j j | | ƒ | ƒ d ƒ d  S(   Ns   S-1-5-21s|   O:SAG:DUD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)(A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)s|   O:BAG:DUD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)(A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)s|   O:SAG:BAD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)(A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)s|   O:SAG:DUD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;BA)(A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)sg   O:SAG:DUD:AI(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)(A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)sð   O:SAG:DUD:AI(A;CIID;RPWPCRCCLCLORCWOWDSW;;;SA)(A;CIID;RP LCLORC;;;AU)(A;CIID;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA)(A;CI;RP LCLORC;;;AU)(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CISA;WP;;;WD)(AU;CIIDSA;WP;;;WD)t    s,   	Owner mismatch: SA (in ref) BA(in current)
s,   	Group mismatch: DU (in ref) BA(in current)
sÖ   	Part dacl is different between reference and current here is the detail:
		(A;CI;RPWPCRCCLCLORCWOWDSW;;;BA) ACE is not present in the reference
		(A;CI;RPWPCRCCLCLORCWOWDSW;;;SA) ACE is not present in the current
s    	Current ACL hasn't a sacl part
(   R	   t   dom_sidR   R   t
   descriptort	   from_sddl(   R   t   domsidt   sddlt   sddl1t   sddl2t   sddl3t   sddl4t   sddl5t   sddl6t   txtt   txtmsg(    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyt   test_get_diff_sds?   s>    				c         C   sa   t  g  ƒ } |  j | d ƒ t  d g ƒ } |  j | d ƒ t  d d g ƒ } |  j | d ƒ d  S(   NR   t   foos
   (|(foo=*))t   bars   (|(foo=*)(bar=*))(   R   R   (   R   t   res(    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyt   test_construct_existor_expro   s    (   t   __name__t
   __module__t   __doc__R   R   R%   R)   (    (    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyR   $   s
   			0t   UpdateSecretsTestsc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s8   t  t |  ƒ j ƒ  t t j j |  j d ƒ ƒ |  _ d  S(   Ns   ref.ldb(	   t   superR-   t   setUpR   t   ost   patht   joint   tempdirt   referencedb(   R   (    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyR/   |   s    c         C   s   t  t j j |  j d ƒ ƒ S(   Ns   secrets.ldb(   R   R0   R1   R2   R3   (   R   (    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyt   _getEmptyDb   s    c         C   s   t  t j j |  j d ƒ ƒ S(   Ns   secrets.ldb(   R   R0   R1   R2   R3   (   R   (    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyt   _getCurrentFormatDb„   s    c         C   s5   |  j  ƒ  |  _ |  j d  t |  j |  j t ƒ ƒ d  S(   N(   R6   t	   secretsdbR   t   NoneR   R4   R   (   R   (    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyt   test_trivialˆ   s    	c         C   sl   |  j  ƒ  } t |  j | t ƒ | j d d d t ƒ } |  j j d d d t ƒ } |  j | j | j ƒ d  S(   Nt   bases   @MODULESt   scope(   R5   R   R4   R   t   searchR   R   t   msgs(   R   t   empty_dbt
   newmodulest
   refmodules(    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyt   test_update_modulesŽ   s
    c         C   sq   xW d d d d d g D]@ } t  j j |  j | ƒ } t  j j | ƒ r t  j | ƒ q q Wt t |  ƒ j ƒ  d  S(   Ns   ref.ldbs   secrets.ldbs   secrets.tdbs   secrets.tdb.baks   secrets.ntdb(	   R0   R1   R2   R3   t   existst   unlinkR.   R-   t   tearDown(   R   t   nameR1   (    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyRD   •   s
    (   R*   R+   R/   R5   R6   R9   RA   RD   (    (    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyR-   z   s   					(   R,   R0   t   samba.upgradehelpersR    R   R   R   t   samba.descriptorR   t   samba.tests.provisionR   t   samba.testsR   t   sambaR   t   ldbR   t   samba.dcerpcR	   R8   R   R   t   testsR-   (    (    (    s@   /usr/lib/python2.7/dist-packages/samba/tests/upgradeprovision.pyt   <module>   s   "V