a
    cl_                     @   s\   d dl Z d dlZd dlmZ d dlmZ G dd deZG dd deZG dd	 d	eZdS )
    N)SambaToolCmdTest)sitesc                       s    e Zd ZdZ fddZ  ZS )BaseSitesCmdTestCasez"Tests for samba-tool sites subnetsc                    s`   t t|   dtjd  | _dtjd tjd f | _| d| j| j| _t	| j
 | _d S )Nz	ldap://%sZ	DC_SERVERz-U%s%%%sZDC_USERNAMEZDC_PASSWORD-H)superr   setUposenvirondburlcreds_stringZgetSamDBsamdbstrZget_config_basedn	config_dnself	__class__ >/usr/lib/python3/dist-packages/samba/tests/samba_tool/sites.pyr      s    
zBaseSitesCmdTestCase.setUp)__name__
__module____qualname____doc__r   __classcell__r   r   r   r   r      s   r   c                   @   s   e Zd Zdd ZdS )SitesCmdTestCasec                 C   s   d}|  dd|d| j| j\}}}| ||| t| jd| j }t| jd||f }| jj|tj	d| d}| 
t|d	 | j|d
g d S )NZnew_siter   creater   zCN=Sites,%szCN=%s,%sz(cn=%s)baseZscopeZ
expression   tree_delete:0)	runsubcmdr
   r   assertCmdSuccessldbDnr   r   searchSCOPE_ONELEVELassertEquallendelete)r   sitenameresultouterrZdnsitesZdnsiteretr   r   r   test_site_create*   s    


z!SitesCmdTestCase.test_site_createN)r   r   r   r.   r   r   r   r   r   (   s   r   c                       s8   e Zd Z fddZ fddZdd Zdd Z  ZS )	SitesSubnetCmdTestCasec                    sZ   t t|   d| _d| _| j  t| j| j	| j t| j| j	| j | j
  d S )NZtestsiteZ	testsite2)r   r/   r   r)   	sitename2r   transaction_startr   Zcreate_siter   transaction_commitr   r   r   r   r   =   s    
zSitesSubnetCmdTestCase.setUpc                    sN   | j   t| j | j| j t| j | j| j | j   tt	| 
  d S )N)r   r1   r   Zdelete_siter   r)   r0   r2   r   r/   tearDownr   r   r   r   r3   F   s
    

zSitesSubnetCmdTestCase.tearDownc           
      C   s&  d| j fd| jfd| jfd| j fd| j fd| jff}|D ]l\}}| ddd	||d
| j| j\}}}| ||| | jj| jt	j
d| d}| | | t|d q8t	| jd| j }|D ]b\}}t	| jd|| jf }	| jj|t	jd| d}| | | t|d | j|	dg qd S )Nz10.9.8.0/24z50.60.0.0/16z50.61.0.0/16z
50.0.0.0/8z50.62.1.2/32z+aaaa:bbbb:cccc:dddd:eeee:ffff:2222:1100/120r   subnetr   r   (&(objectclass=subnet)(cn=%s))r   r   zCN=Subnets,CN=Sites,%szCn=%s,CN=Subnets,CN=Sites,%sz(CN=%s)r   )r)   r0   r    r
   r   r!   r   r$   r   r"   SCOPE_SUBTREEassertIsNotNoner&   r'   r#   r%   r(   )
r   cidrscidrr)   r*   r+   r,   r-   Z	dnsubnetsZdnsubnetr   r   r   test_site_subnet_createM   sJ    	





z.SitesSubnetCmdTestCase.test_site_subnet_createc                 C   s   d| j fd| jfd| jfd| j fd| j ff}|D ]h\}}| ddd||d	| j| j\}}}| | | jj| jt	j
d
| d}| | | t|d q0d S )Nz10.9.8.0/33z50.60.0.0/8z50.261.0.0/16z7.0.0.0.0/0z+aaaa:bbbb:cccc:dddd:eeee:ffff:2222:1100/119r   r4   r   r   r5   r   r   )r)   r0   r    r
   r   ZassertCmdFailr   r$   r   r"   r6   r7   r&   r'   )r   r8   r9   r)   r*   r+   r,   r-   r   r   r   #test_site_subnet_create_should_failr   s.    




z:SitesSubnetCmdTestCase.test_site_subnet_create_should_fail)r   r   r   r   r3   r:   r;   r   r   r   r   r   r/   <   s   	%r/   )	r   r"   Zsamba.tests.samba_tool.baser   Zsambar   r   r   r/   r   r   r   r   <module>   s   