ó
E®Uc           @   s  d  Z  d d l Z d d l m Z m Z m Z m Z m Z m Z m	 Z	 d d l
 Z d d l
 m Z m Z d d „ Z d e j j f d „  ƒ  YZ d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d 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.provision.iÿÿÿÿN(   t   ProvisionNamest   ProvisionPathst   ProvisionResultt   determine_netbios_namet   sanitize_server_rolet   setup_secretsdbt   findnss(   t   env_loadparmt   TestCasec         C   sw   | d k r t ƒ  } n  t ƒ  } |  | _ t j j |  ƒ | _ d | _ d | _	 t
 | d d d | ƒ} | j ƒ  | S(   sÈ   Create a dummy secrets database for use in tests.

    :param path: Path to store the secrets db
    :param lp: Optional loadparm context. A simple one will
        be generated if not specified.
    s	   no.keytabs   no.dns.keytabt   lpN(   t   NoneR   R   t   secretst   ost   patht   dirnamet   private_dirt   keytabt
   dns_keytabR   t   transaction_commit(   R   R	   t   pathst   secrets_ldb(    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   create_dummy_secretsdb!   s    				
t   ProvisionTestCasec           B   s   e  Z d  Z d „  Z RS(   sI   Some simple tests for individual functions in the provisioning code.
    c         C   sä   t  j j |  j d ƒ } t ƒ  } t  j j |  j d ƒ } | | _ t  j j | ƒ | _ d | _ d | _	 t
 | d  d  d t ƒ  ƒ} z& |  j d | j d d d	 d
 ƒ ƒ Wd  ~ t  j | ƒ t  j j | ƒ rß t  j | ƒ n  Xd  S(   Ns   secrets.ldbs   secrets.tdbs	   no.keytabs   no.dns.keytabR	   s   LSA Secretst   basedns   CN=LSA Secretst	   attributet   CN(   R   R   t   joint   tempdirR   R   R   R   R   R   R   R
   R   t   assertEqualst	   searchonet   unlinkt   exists(   t   selfR   R   t   secrets_tdb_patht   ldb(    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   test_setup_secretsdb8   s    					(   t   __name__t
   __module__t   __doc__R#   (    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR   4   s   t   FindNssTestsc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s   Test findnss() function.c         C   s#   d „  } |  j  t t | g  ƒ d  S(   Nc         S   s
   t  ‚ d  S(   N(   t   KeyError(   t   y(    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   xN   s    (   t   assertRaisesR(   R   (   R    R*   (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   test_nothingM   s    	c         C   s#   |  j  d t d „  d g ƒ ƒ d  S(   Nt   blac         S   s   d S(   NR-   (    (   R*   (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   <lambda>S   s    (   R   R   (   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt
   test_firstR   s    c         C   s,   d „  } |  j  d t | d d g ƒ ƒ d  S(   Nc         S   s   |  d k r t  ‚ n  d S(   NR-   t   ha(   R(   (   R)   (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR*   V   s    	R0   t   bloeR-   (   R   R   (   R    R*   (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   test_skip_firstU   s    	(   R$   R%   R&   R,   R/   R2   (    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR'   J   s   		t   Disabledc           B   sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C   s   t  |  j ƒ ‚ d  S(   N(   t   NotImplementedErrort   test_setup_templatesdb(   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR5   _   s    c         C   s   t  |  j ƒ ‚ d  S(   N(   R4   t   test_setup_registry(   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR6   b   s    c         C   s   t  |  j ƒ ‚ d  S(   N(   R4   t   test_setup_samdb_rootdse(   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR7   e   s    c         C   s   t  |  j ƒ ‚ d  S(   N(   R4   t   test_setup_samdb_partitions(   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR8   h   s    c         C   s   t  |  j ƒ ‚ d  S(   N(   R4   t   test_provision_dns(   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR9   k   s    c         C   s   t  |  j ƒ ‚ d  S(   N(   R4   t   test_provision_ldapbase(   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR:   n   s    c         C   s   t  |  j ƒ ‚ d  S(   N(   R4   t   test_provision_guess(   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR;   q   s    c         C   s   t  |  j ƒ ‚ d  S(   N(   R4   t   test_join_domain(   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR<   t   s    c         C   s   t  |  j ƒ ‚ d  S(   N(   R4   t   test_vampire(   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR=   w   s    (   R$   R%   R5   R6   R7   R8   R9   R:   R;   R<   R=   (    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR3   ]   s   								t   SanitizeServerRoleTestsc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s0   |  j  d t d ƒ ƒ |  j  d t d ƒ ƒ d  S(   Ns   standalone servers   member server(   R   R   (   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt	   test_same}   s    		c         C   s   |  j  t t d ƒ d  S(   Nt   foo(   R+   t
   ValueErrorR   (   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   test_invalidƒ   s    c         C   sF   |  j  d t d ƒ ƒ |  j  d t d ƒ ƒ |  j  d t d ƒ ƒ d  S(   Ns   standalone servert   ROLE_STANDALONEt
   standalones"   active directory domain controllers   domain controller(   R   R   (   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt
   test_valid†   s    (   R$   R%   R?   RB   RE   (    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyR>   {   s   		t   DummyLoggerc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   g  |  _  d  S(   N(   t   entries(   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   __init__”   s    c         G   s   |  j  j d | | f ƒ d  S(   Nt   INFO(   RG   t   append(   R    t   textt   args(    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   info—   s    (   R$   R%   RH   RM   (    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyRF   ’   s   	t   ProvisionResultTestsc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  ƒ  } | j | ƒ | j S(   N(   RF   t   report_loggerRG   (   R    t   resultt   logger(    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyRO      s    	c         C   s[   t  ƒ  } d | _ t ƒ  | _ d | j _ d | j _ d | j _ d | _ t ƒ  | _	 | S(   Ns   domain controllert   hostnaamt   DOMEINt	   dnsdomeins   S1-1-1(
   R   t   server_roleR    t   namest   hostnamet   domaint	   dnsdomaint	   domainsidR   R   (   R    RP   (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   base_result¢   s    			c      	   C   sA   |  j  ƒ  } |  j | ƒ } |  j | d d	 d
 d d d g ƒ d  S(   NRI   sK   Once the above files are installed, your Samba4 server will be ready to uses(   Server Role:           domain controllers   Hostname:              hostnaams   NetBIOS Domain:        DOMEINs    DNS Domain:            dnsdomeins   DOMAIN SID:            S1-1-1(   s   INFOsK   Once the above files are installed, your Samba4 server will be ready to use(   s   INFOs(   Server Role:           domain controller(   s   INFOs   Hostname:              hostnaam(   s   INFOs   NetBIOS Domain:        DOMEIN(   s   INFOs    DNS Domain:            dnsdomein(   s   INFOs   DOMAIN SID:            S1-1-1(   R[   RO   R   (   R    RP   RG   (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   test_basic_report_logger­   s    	c         C   sE   |  j  ƒ  } t | _ d | _ |  j | ƒ } |  j | d d ƒ d  S(   Nt   geheimi   RI   s   Admin password:        geheim(   s   INFOs   Admin password:        geheim(   R[   t   Truet   adminpass_generatedt	   adminpassRO   R   (   R    RP   RG   (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   test_report_logger_adminpass¹   s    		(   R$   R%   RO   R[   R\   Ra   (    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyRN   ›   s   			t   DetermineNetbiosNameTestsc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   |  j  d t d d ƒ ƒ d  S(   Nt   Ai   t   ai   t   AAAAAAAAAAAAAAA(   R   R   (   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   test_limits_to_15Ä   s    c         C   s   |  j  d t d ƒ ƒ d  S(   Nt   BLABLAs   bla/bla(   R   R   (   R    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   test_strips_invalidÇ   s    (   R$   R%   Rf   Rh   (    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyRb   Â   s   	(   R&   R   t   samba.provisionR    R   R   R   R   R   R   t   samba.testst   sambaR   R   R
   R   t   testst   TestCaseInTempDirR   R'   t   objectR3   R>   RF   RN   Rb   (    (    (    s9   /usr/lib/python2.7/dist-packages/samba/tests/provision.pyt   <module>   s   4		'