
    b!m                     V    d dl Z d dlZd dlZd dlmZ d dlmZmZ  G d de          ZdS )    N)SambaToolCmdTest)nttime2unixdsdbc                        e Zd ZdZg ZdZ fdZ fd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d Zi fdZi fdZi fdZd Zd Zd Zd Zd Zd Zd Zd Zi fdZ d Z! xZ"S )GroupCmdTestCasez&Tests for samba-tool group subcommandsNc           	      
	   t          t          |                                            |                     ddt          j        d         z  dt          j        d         dt          j        d                   | _        g | _        | j                            | 	                    dd	i                     | j                            | 	                    dd
i                     | j                            | 	                    ddi                     | j                            | 	                    ddi                     | j                            | 	                    ddi                     | j                            | 
                    ddi                     | j                            | 
                    ddi                     | j                            | 
                    ddi                     | j                            | 
                    ddi                     | j                            | 
                    ddi                     | j                            |                     ddi                     | j                            |                     ddi                     | j                            |                     ddi                     | j                            |                     ddi                     | j                            |                     ddi                     | j        D ]4} |d         |          \  }}}|                     |||           |                     |dd           d|d         v r |                     d|d         z  |           n|                     d|d         z  |            |d         |           |                     |d                   }|                     |           |                     d|                    d          z  |d                    |                     d|                    d           z  |d                     6d S )!N-H	ldap://%s	DC_SERVER-UDC_USERNAME%DC_PASSWORDname
testgroup1
testgroup2
testgroup3
testgroup4ztestgroup5 (with brackets)posixgroup1posixgroup2posixgroup3posixgroup4zposixgroup5 (with brackets)
unixgroup1
unixgroup2
unixgroup3
unixgroup4zunixgroup5 (with brackets)createGroupFn $There shouldn't be any error messageunixz Modified Group '%s' successfullyAdded group %scheckGroupFn%sdescription)superr   setUpgetSamDBosenvironsamdbgroupsappend_randomGroup_randomPosixGroup_randomUnixGroupassertCmdSuccessassertEqualassertIn_find_groupassertIsNotNoneget)selfgroupresultouterrfound	__class__s         >/usr/lib/python3/dist-packages/samba/tests/samba_tool/group.pyr&   zGroupCmdTestCase.setUp!   s>   %%++---]]4rz+7N)N)N13M1J1J1JBJWdLeLe#fh h
4,,fl-CDDEEE4,,fl-CDDEEE4,,fl-CDDEEE4,,fl-CDDEEE4,,f6R-STTUUU4116=2IJJKKK4116=2IJJKKK4116=2IJJKKK4116=2IJJKKK4116;X2YZZ[[[400&,1GHHIII400&,1GHHIII400&,1GHHIII400&,1GHHIII400&:V1WXXYYY [ 	T 	TE!7!7!>!>VS#!!&#s333S"&LMMMv&&@ %f./24 4 4 4 .v>DDD!E.!%((($$U6]33E  '''TEIIf$5$55uV}EEETEIIm$<$<<eM>RSSSS'	T 	T    c                     t          t          |                                            | j        D ]:}|                     |d                   r|                     dd|d                    ;d S )Nr   r7   delete)r%   r   tearDownr+   r3   	runsubcmd)r6   r7   r<   s     r=   rA   zGroupCmdTestCase.tearDownL   su    %%..000[ 	A 	AEf.. Aw%-@@@	A 	Ar>   c                    | j         D ]G}|                     |          \  }}}|                     |d           |                     d|           H| j         D ]~}|                     dd|d                   \  }}}|                     |||d|d         z             |                     |d                   }|                     |d|d         z             | j         D ]}|                     dd|d         d	|d
         z  ddt          j	        d         z  dt          j	        d         dt          j	        d                   \  }}}|                     |||           | 
                    |dd           |                     d|d         z  |           |                     |d                   }| 
                    d|                    d          z  d|d         z             	dS )z6This tests the "group add" and "group delete" commandszSucceeded to add existing groupz'LDAP error 68 LDAP_ENTRY_ALREADY_EXISTSr7   r@   r   zFailed to delete group '%s'zDeleted group '%s' still existsadd--description=%sr$   r	   r
   r   r   r   r   r   r   r   r!   r#   samaccountnameN)r+   _create_groupassertCmdFailr2   rB   r0   r3   assertIsNoner(   r)   r1   r5   )r6   r7   r8   r9   r:   r;   s         r=   test_newgroupzGroupCmdTestCase.test_newgroupS   s4    [ 	J 	JE!%!3!3E!:!:VS#v'HIIIMMCSIIII [ 	Q 	QE!%5=!Q!QVS#!!&#s"?%-"OQ Q Q$$U6]33Ee?%-OQ Q Q Q [ 	4 	4E!%f0BU=EY0Y04kBJ{D[6[6[>@j>W>W>W>@j>W>W1Y"Z "ZVS# !!&#s333S"&LMMMMM*U6]:C@@@$$U6]33ETEII.>$?$??"U6]24 4 4 4	4 	4r>   c                 :   |                      ddddt          j        d         z  dt          j        d         dt          j        d	                   \  }}}|                     |||d
           d}| j                            | j                                        t          j        |dg          }| 	                    t          |          dk    d           |D ]@}t          |                    dd                    }|                     ||d|z            }Ad S )Nr7   listr	   r
   r   r   r   r   r   Error running list(objectClass=group)rF   basescope
expressionattrsr   no groups found in samdbidxgroup '%s' not foundrB   r(   r)   r0   r*   search	domain_dnldbSCOPE_SUBTREE
assertTruelenstrr5   assertMatch	r6   r8   r9   r:   search_filter	grouplistgroupobjr   r;   s	            r=   	test_listzGroupCmdTestCase.test_listu   s:   !^^GV,0+
;@W2W2W:<*]:S:S:S:<*]:S:S-UV Vc 	fc30DEEE-J%%4:+?+?+A+A,/,=1>-=,> & @ @	
 	I*,FGGG! 	D 	DHx||$4!|<<==D$$S$%;d%BD DEE	D 	Dr>   c                 ^   |                      dddddt          j        d         z  dt          j        d         d	t          j        d
                   \  }}}|                     |||d           i }|                    d          dd         }|D ]9}|                    d          }|d         }t          |d                   }	|	||<   :d}
| j                            | j                                        t          j
        |
ddg          }|                     t          |          dk    d           i }|D ]O}t          |                    dd                    }t          |                    dg                     }	|	||<   P|                     ||k    dd|d|dz              d S )Nr7   rL   z	--verboser	   r
   r   r   r   r   r   zError running list --verbose
   z   r   rN   rF   memberrO   rT   rU   )defaultz+Command output doesn't match LDAP results.
z	Command='z'
LDAP='')rB   r(   r)   r0   splitintr*   rY   rZ   r[   r\   r]   r^   r_   r5   )r6   r8   r9   r:   output_membershipsgroup_lineslinevaluesr   num_membersrb   rc   ldap_membershipsrd   s                 r=   test_list_verbosez"GroupCmdTestCase.test_list_verbose   s   !^^GV[,0+
;@W2W2W:<*]:S:S:S:<*]:S:S-UV Vc 	fc30NOOO   iiooad+ 	3 	3D ZZ&&F!9DfRj//K'2t$$ .J%%4:+?+?+A+A,/,=1>-=x,H & J J	 	I*,FGGG! 	1 	1Hx||$4!|<<==Dhll8Rl@@AAK%0T"" 	*.>>FF4F4F4F4D4D4DFF	G 	G 	G 	G 	Gr>   c                 :   |                      dddddt          j        d         z  dt          j        d         d	t          j        d
                   \  }}}|                     |||d           d}| j                            | j                                        t          j        |g           }| 	                    t          |          dk    d           |D ]@}t          |                    dd                    }|                     ||d|z            }Ad S )Nr7   rL   	--full-dnr	   r
   r   r   r   r   r   rM   rN   rO   r   rT   dnrU   rW   rX   ra   s	            r=   test_list_full_dnz"GroupCmdTestCase.test_list_full_dn   s6   !^^GV[,0+
;@W2W2W:<*]:S:S:S:<*]:S:S-UV Vc 	fc30DEEE-J%%4:+?+?+A+A,/,=1>,. & 0 0	
 	I*,FGGG! 	D 	DHx||Da|0011D$$S$%;d%BD DEE	D 	Dr>   c                 D   d}|                      ddd|ddt          j        d         z  dt          j        d	         d
t          j        d                   \  }}}|                     |||d           d}| j                            | j                            |          t          j        |dg          }| 	                    t          |          dk    d           |D ]@}t          |                    dd                    }|                     ||d|z            }	Ad S )NzCN=Usersr7   rL   z	--base-dnr	   r
   r   r   r   r   r   rM   rN   r   rO   r   rT   rU   rW   )rB   r(   r)   r0   r*   rY   normalize_dn_in_domainr[   r\   r]   r^   r_   r5   r`   )
r6   base_dnr8   r9   r:   rb   rc   rd   r   r;   s
             r=   test_list_base_dnz"GroupCmdTestCase.test_list_base_dn   sA   !^^GV[',0+
;@W2W2W:<*]:S:S:S:<*]:S:S-UV Vc 	fc30DEEE-J%%4:+L+LW+U+U,/,=1>-3H & 6 6	
 	I*,FGGG! 	D 	DHx||F|2233D$$S$%;d%BD DEE	D 	Dr>   c                 p   |                      dddddt          j        d         z  dt          j        d         d	t          j        d
                   \  }}}|                     |||d           d| j                                        z  }| j                            | j                                        t          j        |dg          }| 	                    t          |          dk    d           |D ]@}t          |                    dd                    }|                     ||d|z            }Ad S )Nr7   listmembersDomain Usersr	   r
   r   r   r   r   r   Error running listmembers=(|(primaryGroupID=513)(memberOf=CN=Domain Users,CN=Users,%s))samAccountNamerO   r   rT   rU   rW   rB   r(   r)   r0   r*   rZ   rY   r[   r\   r]   r^   r_   r5   r`   ra   s	            r=   test_listmembersz!GroupCmdTestCase.test_listmembers   sK   !^^G]N,0+
;@W2W2W:<*]:S:S:S:<*]:S:S-UV Vc 	fc30KLLLWZ^ZdZnZnZpZppJ%%4:+?+?+A+A,/,=1>-=,> & @ @	
 	I*,FGGG! 	O 	OHx||$4!|<<==D$$S$0F0MNNEE	O 	Or>   c                     d}|                      d|i          }|                     |           |                     ddddddt          j        d	         z  d
t          j        d         dt          j        d                   \  }}}|                     |||d           |                     ||v d|z             | j                            d|z  dd           |                     ddddddt          j        d	         z  d
t          j        d         dt          j        d                   \  }}}|                     |||d           | 	                    ||v d|z             | j        
                    |           d S )N
expireUserr   r7   r   r   z--hide-expiredr	   r
   r   r   r   r   r   r   user '%s' not found(sAMAccountname=%s)ri   F)_random_user_create_userrB   r(   r)   r0   r]   r*   	setexpiryassertFalse
deleteuser)r6   expire_usernameexpire_userr8   r9   r:   s         r=   test_listmembers_hide_expiredz.GroupCmdTestCase.test_listmembers_hide_expired   s   &''(ABB+&&&!^^"*[111*]333*]3356 6c 	fc30KLLL3..@	B 	B 	B 	
!O3	 	 	
 "^^"*[111*]333*]3356 6c 	fc30KLLLC/.@	B 	B 	B 	
o.....r>   c                    d}|                      d|i          }|                     |           |                     ddddddt          j        d	         z  d
t          j        d         dt          j        d                   \  }}}|                     |||d           |                     ||v d|z             | j                            d|z             |                     ddddddt          j        d	         z  d
t          j        d         dt          j        d                   \  }}}|                     |||d           | 	                    ||v d|z             | j        
                    |           d S )NdisableUserr   r7   r   r   z--hide-disabledr	   r
   r   r   r   r   r   r   r   r   )r   r   rB   r(   r)   r0   r]   r*   disable_accountr   r   )r6   disable_usernamedisable_userr8   r9   r:   s         r=   test_listmembers_hide_disabledz/GroupCmdTestCase.test_listmembers_hide_disabled  s   (((&2B)CDD,'''!^^"*[111*]333*]3356 6c 	fc30KLLL(C/.1AA	C 	C 	C 	
""#8;K#KLLL!^^"*[111*]333*]3356 6c 	fc30KLLL)S0.1AA	C 	C 	C 	
./////r>   c                 r   |                      ddddddt          j        d         z  dt          j        d	         d
t          j        d                   \  }}}|                     |||d           d| j                                        z  }| j                            | j                                        t          j        |dg          }| 	                    t          |          dk    d           |D ]@}t          |                    dd                    }|                     ||d|z            }Ad S )Nr7   r   r   rw   r	   r
   r   r   r   r   r   r   r   rx   rO   r   rT   rU   rW   r   ra   s	            r=   test_listmembers_full_dnz)GroupCmdTestCase.test_listmembers_full_dn<  sJ   !^^G]N,7,0+
;@W2W2W:<*]:S:S:S:<*]:S:S-UV Vc
 	fc30KLLLWZ^ZdZnZnZpZppJ%%4:+?+?+A+A,/,=1>-1F & 4 4	
 	I*,FGGG! 	O 	OHx||Da|0011D$$S$0F0MNNEE	O 	Or>   c                    t          | j                            d                    }|                     dd|          \  }}}|                     |||           |                     |dd           |                     d|z  |           | j        D ]_}|                     dd|d	         |          \  }}}|                     |||d
           |                     d|d	         d|d|           `|                     dd|          \  }}}|                     |           |                     dt          | j                  z  |           | j        D ]{}d| j        
                                z  }|                     dd|d	         |          \  }}}|                     |||d
           |                     d|d	         d|d|           ||                     dd|          \  }}}|                     |||d|z             d S )NzOU=movetestourD   r   r   zAdded ou "%s"r7   mover   zError running movezMoved group "z" into ""r@   zFsubtree_delete: Unable to delete a non-leaf node (it has %d children)!zCN=Users,%szFailed to delete ou '%s')r_   r*   r{   rB   r0   r1   r2   r+   rH   r^   rZ   )r6   
full_ou_dnr8   r9   r:   r7   new_dns          r=   	test_movezGroupCmdTestCase.test_moveR  sj   ::=IIJJ
!^^D%DDcfc3///b"HIIIo
2C888[ 	< 	<E!%v
"< "<VS#!!&#s4HIIIMMM ===***67:< < < < "^^D(JGGc6""" /25dk2B2BCDG	I 	I 	I [ 	8 	8E"TZ%9%9%;%;;F!%v"8 "8VS#!!&#s4HIIIMMM ===&&&2368 8 8 8 "^^D(JGGcfc38:E	G 	G 	G 	G 	Gr>   c                 <   |                      dddddt          j        d         z  dt          j        d         d	t          j        d
                   \  }}}|                     |||           |                     |dd           |                     d|           dS )z*Assert that we can show a group correctly.r7   showr   r	   r
   r   r   r   r   r   r   Shouldn't be any error messagesz@dn: CN=Domain Users,CN=Users,DC=addom,DC=samba,DC=example,DC=comN)rB   r(   r)   r0   r1   r2   )r6   r8   r9   r:   s       r=   	test_showzGroupCmdTestCase.test_showr  s    !^^GV^,0+
;@W2W2W:<*]:S:S:S:<*]:S:S-UV Vc 	fc3///b"CDDDXZ]^^^^^r>   c           	      p   | j         D ],}d|d         z   }|                     dd|d         d|z             \  }}}|                     |||           |                     |dd           |                     d|           |                     |          }|                     d	|                    d
          z  |d
                    d|vs,t          |d                   t          |d                   k    r-|                     d	|                    d          z  |           n2|                     d	|                    d          z  |d                    |                     dd|d          \  }}}|                     |           |                     d|           |                     d|           |                     dd|d|d         z             \  }}}|                     |||           d|v rB|                     dd|d         d|d         z            \  }}}|                     |||           .dS )z'rename the samaccountname of all groupsnew_samaccountname_of_r   r7   renamez--samaccountname=r   r   successfullyr#   r$   cnFailed to rename groupdelete protected attributez--force-new-cn=%sN)	r+   rB   r0   r1   r2   r3   r5   r_   rH   )r6   r7   new_namer8   r9   r:   r;   s          r=   test_rename_samaccountnamez+GroupCmdTestCase.test_rename_samaccountname|  s]   [ 	8 	8E/%-?H "&5=0Ch0N"P "PVS#!!&#s333S"&GHHHMM.#...$$X..ETEIIm$<$<<eM>RSSS5==Cd$4$4E&M8J8J$J$J  		$!7BBBB  		$!7tEEE "&80C"E "EVS#v&&&MM2C888MM6<<< "&80CeFm0S"U "UVS#!!&#s333u}}%)^^GXuV}4G%PT+4U&W &W"c%%fc3777?	8 	8r>   c           	         | j         D ]?}d|d         z   }d|d         z   }|                     dd|d         d|z   d|z             \  }}}|                     |||           |                     |dd	           |                     d
|           |                     |d                   }|                     d|                    d          z  |           |                     d|                    d          z  |           |                     dd|d         d          \  }}}|                     |||           |                     |dd	           |                     d
|           |                     |d                   }|                     |                    d          d           |                     dd|d         d          \  }}}|                     |           |                     d|           |                     d|           |                     dd|d         d          \  }}}|                     |||           AdS )z:change and remove the cn and mail attributes of all groupsznew mail of r   z
new cn of r7   r   z--mail-address=z--force-new-cn=r   r   r   r#   mailr   Nr   r   z
--reset-cn)r+   rB   r0   r1   r2   r3   r5   rH   )r6   r7   new_mailnew_cnr8   r9   r:   r;   s           r=   test_rename_cn_mailz$GroupCmdTestCase.test_rename_cn_mail  sr   [ $	4 $	4E%f5H!E&M1F "&5=0AH0L0AF0J"L "LVS# !!&#s333S"&GHHHMM.#...$$U6]33ETEIIf$5$55x@@@TEIIdOO3V<<< "&5=0A"C "CVS#!!&#s333S"&GHHHMM.#...$$U6]33EUYYv..555 "&5=0A"C "CVS#v&&&MM2C888MM6<<< "&5=0<"> ">VS#!!&#s3333I$	4 $	4r>   c                     |                                  |                      d          | j        | j        d}|                    |           |S )zMcreate a group with random attribute values, you can specify base
 attributesd   count)r   r$   r   r"   )
randomNamerG   _check_groupupdate)r6   rP   r7   s      r=   r-   zGroupCmdTestCase._randomGroup  sS     OO%%???55!/ -	
 
 	Tr>   c                    |                      i           }|                    |           |                                 |                                 | j        | j        d}|                    |           |                    |           |S )vcreate a group with random attribute values and additional RFC2307
        attributes, you can specify base attributes)
unixdomain	gidNumberr   r"   )r-   r   r   	randomXid_create_posix_group_check_posix_groupr6   rP   r7   posixAttributess       r=   r.   z"GroupCmdTestCase._randomPosixGroup  s     !!"%%T//++))!5 3	
 
 	_%%%Tr>   c                     |                      i           }|                    |           |                                 | j        | j        d}|                    |           |                    |           |S )r   )r   r   r"   )r-   r   r   _create_unix_group_check_unix_groupr   s       r=   r/   z!GroupCmdTestCase._randomUnixGroup  sy     !!"%%T))!4 2
 

 	_%%%Tr>   c                    |                      |d                   }|                     d|                    d          z  |d                    |                     d|                    d          z  |d                    dS )zF check if a group from SamDB has the same attributes as
 its template r   r#   r$   N)r3   r1   r5   r6   r7   r;   s      r=   r   zGroupCmdTestCase._check_group  sx       v//		& 1 115=AAA		- 8 88%:NOOOOOr>   c                     |                      |d                   }|                     d|                    d          z  d|d         z             |                     |           dS )zL check if a posix_group from SamDB has the same attributes as
 its template r   r#   r   Nr3   r1   r5   r   r   s      r=   r   z#GroupCmdTestCase._check_posix_group  o       v//		+ 6 66,9- 	. 	. 	.%     r>   c                     |                      |d                   }|                     d|                    d          z  d|d         z             |                     |           dS )zJ check if a unix_group from SamDB has the same attributes as its
template r   r#   r   Nr   r   s      r=   r   z"GroupCmdTestCase._check_unix_group  r   r>   c                     |                      dd|d         d|d         z  ddt          j        d         z  d	t          j        d
         dt          j        d                   S )Nr7   rD   r   rE   r$   r	   r
   r   r   r   r   r   rB   r(   r)   r6   r7   s     r=   rG   zGroupCmdTestCase._create_group
  si    ~~gueFm053GG"K"*[2I$I$I,.J},E,E,E,.J},E,EGH H 	Hr>   c                     |                      dd|d         d|d         z  d|d         z  d|d	         z  d
dt          j        d         z  dt          j        d         dt          j        d         	  	        S )z, create a new group with RFC2307 attributes r7   rD   r   rE   r$   z--nis-domain=%sr   z--gid-number=%sr   r	   r
   r   r   r   r   r   r   r   s     r=   r   z$GroupCmdTestCase._create_posix_group  s    ~~gueFm053GG/%2EE/%2DD"K"*[2I$I$I,.J},E,E,E j779: : 	:r>   c                     |                      |           |                     dd|d         d|d         z  ddt          j        d         z  d	t          j        d
         dt          j        d                   S )z" Add RFC2307 attributes to a groupr7   addunixattrsr   r#   r   r	   r
   r   r   r   r   r   )rG   rB   r(   r)   r   s     r=   r   z#GroupCmdTestCase._create_unix_group  sy    5!!!~~g~uV}"U;%77"K"*[2I$I$I,.J},E,E,E j779: : 	:r>   c                     dt          j        |          ddd| j                                        d}| j                            | j                                        t           j        |          }|r|d         S d S )Nz(&(sAMAccountName=z)(objectCategory=z#CN=Group,CN=Schema,CN=Configuration,z)))rP   rQ   rR   r   )r[   binary_encoder*   rZ   rY   r\   )r6   r   rb   rc   s       r=   r3   zGroupCmdTestCase._find_group$  s     +D1111???*..00002 J%%4:+?+?+A+A,/,=1> & @ @	  	Q<4r>   c                    |                      ddddt          j        d         z  dt          j        d         dt          j        d	                   \  }}}|                     |||d
           d}| j                            | j                                        t          j        |g           }t          |          }| 
                    d                    |          |v d           d S )Nr7   statsr	   r
   r   r   r   r   r   zError running statsrN   rO   zTotal groups: {0}z#Total groups not reported correctly)rB   r(   r)   r0   r*   rY   rZ   r[   r\   r^   r]   format)r6   r8   r9   r:   rb   rc   total_groupss          r=   
test_statszGroupCmdTestCase.test_stats1  s    !^^GW,0+
;@W2W2W:<*]:S:S:S:<*]:S:S-UV Vc 	fc30EFFF .J%%4:+?+?+A+A,/,=1>,. & 0 0	
 9~~+22<@@CG=	? 	? 	? 	? 	?r>   c           
      x   |                                  |                     d          |                                  |                                  |                                  |                                  |                                  |                      d          | j        d	}|                    |           |S )ze
        create a user with random attribute values, you can specify
        base attributes
           r   r   )	r   passwordsurname
given-name	job-title
departmentcompanyr$   createUserFn)r   random_passwordr   r   )r6   rP   users      r=   r   zGroupCmdTestCase._random_userC  s     OO%%,,R00((//++**//++((???55 -

 

 	Dr>   c                 :   |                      dd|d         |d         d|d         z  d|d         z  d	|d
         z  d|d         z  d|d         z  d|d         z  ddt          j        d         z  dt          j        d         dt          j        d                   S )Nr   rD   r   r   z--surname=%sr   z--given-name=%sr   z--job-title=%sr   z--department=%sr   rE   r$   z--company=%sr   r	   r
   r   r   r   r   r   r   )r6   r   s     r=   r   zGroupCmdTestCase._create_userV  s    ~~LT)_,\ 22tK00\ 22m!44T)_,"*[111*]333*]3356 6 	6r>   )#__name__
__module____qualname____doc__r+   r*   r&   rA   rJ   re   ru   ry   r}   r   r   r   r   r   r   r   r   r-   r.   r/   r   r   r   rG   r   r   r3   r   r   r   __classcell__)r<   s   @r=   r   r      s?       00FE)T )T )T )T )TVA A A A A 4  4  4DD D D*'G 'G 'GRD D D*D D D,O O O(%/ %/ %/N!0 !0 !0FO O O,G G G@_ _ _!8 !8 !8F&4 &4 &4P !# 
 
 
 
 &(     %'    P P P! ! !! ! !H H H: : :: : :  ? ? ?$ !#    &6 6 6 6 6 6 6r>   r   )	r(   timer[   samba.tests.samba_tool.baser   sambar   r   r    r>   r=   <module>r      s   $ 
			  



 8 8 8 8 8 8
 
 
 
 
 
 
 
I	6 I	6 I	6 I	6 I	6' I	6 I	6 I	6 I	6 I	6r>   