
    b-                         d Z ddlmZ ddlZ G d dej        j                  Ze	dk    rddl
Z
 e
j                     dS dS )z 
Tests for samba.smbconf module
    )paramNc                        e Zd ZdZdZed             Zed             Ze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d Zd Zd Zd Zd Zd Zd Zd Zd Z xZS )SMBConfTestsNc                 L    | j         | j         S ddl}|j        | _         | j         S )zdProperty to access module under test without
        importing it at test module load-time.
        Nr   )_smbconfsamba.smbconfsmbconfselfsambas     5/usr/lib/python3/dist-packages/samba/tests/smbconf.pyr	   zSMBConfTests.smbconf   s1    
 =$= }    c                 V    | j         | j         S dd l}|j        j        | _         | j         S )Nr   )
_s3smbconfsamba.samba3.smbconfsamba3r	   r
   s     r   	s3smbconfzSMBConfTests.s3smbconf,   s2    ?&?"####,.r   c                     dS )Nz./testdata/samba3/smb.conf )r   s    r   example_conf_defaultz!SMBConfTests.example_conf_default6   s    ++r   c                     t                                                       t          j                                        | _        t          j                    }|                    | j        j	                   d S N)
supersetUpr   testsenv_loadparmlp_ctxs3paramget_contextload
configfile)r   s3_lp	__class__s     r   r   zSMBConfTests.setUp:   sV    k..00 #%%

4;)*****r   c                 :   | j                                         }|                     t          |j                   |                     t          |j                   |                     t          |j                   |                     t          |j        d           d S )Nfoo)r	   SMBConfassertRaisesRuntimeErrorrequires_messagingis_writeableshare_names	get_sharer   sconfs     r   test_uninitalized_smbconfz&SMBConfTests.test_uninitalized_smbconfD   s    $$&&,(@AAA,(:;;;,(9:::,?????r   c                     | j                             | j                  }|                     |                                           |                     |                                           d S r   )r	   init_txtr   assertFalser)   r*   r-   s     r   test_txt_backend_propertiesz(SMBConfTests.test_txt_backend_propertiesK   s`    %%d&?@@1133444++--.....r   c                     | j                             | j                  }|                                }|                     |g d           d S )N)globalcd1cd2mediatmp)r	   r1   r   r+   assertEqualr   r.   namess      r   test_share_nameszSMBConfTests.test_share_namesP   sN    %%d&?@@!!## H H HIIIIIr   c                     | j                             | j                  }|                    d          }|                     |dddgf           d S )Nr6   pathz/mnt/cd1publicyesr	   r1   r   r,   r:   r   r.   s1s      r   test_get_share_cd1zSMBConfTests.test_get_share_cd1U   S    %%d&?@@__U##e&:<M%NOPPPPPr   c                     | j                             | j                  }|                    d          }|                     |dddgf           d S )Nr7   )r@   z/mnt/cd2rA   rD   rE   s      r   test_get_share_cd2zSMBConfTests.test_get_share_cd2Z   rH   r   c                 2   | j                             | j                  }|                                }|                     t          |          d           |                     |d         dg df           |                     |d         dddgf           d S )	N   r   r5   ))	workgroupSAMBA)securityuser)zpassdb backendzdsmbpasswd:../testdata/samba3/smbpasswd tdbsam:../testdata/samba3/passdb.tdb ldapsam:tdb://samba3.ldb)zdebug level5)znetbios nameBEDWYR   r6   r?   rA   )r	   r1   r   
get_configr:   len)r   r.   servicess      r   test_get_configzSMBConfTests.test_get_config_   s    %%d&?@@##%%X***QK
 
 
	
 	
 	
" 	QK%"68I!JK	
 	
 	
 	
 	
r   c                     | j                             d           }|                     |                                           d S r   )r   init_reg
assertTruer*   r-   s     r   test_init_regzSMBConfTests.test_init_regx   s;    ''--**,,-----r   c                     | j                             d          }|                     |                                           d S )Nz	registry:)r   initrZ   r*   r-   s     r   test_init_str_regzSMBConfTests.test_init_str_reg|   s;    ##K00**,,-----r   c                     | j                             d| j                   }|                     |                                           d S )Nzfile:)r   r]   r   r2   r*   r-   s     r   test_init_str_filezSMBConfTests.test_init_str_file   sI    ##$GD,E$G$GHH++--.....r   c                 Z   | j                             d           }|                                 |                    d           |                    d           |                                }|                     |ddg           |                     | j        j        |j        d           d S Nalicebob)	r   rY   dropcreate_sharer+   r:   r'   r	   SMBConfErrorr;   s      r   test_create_sharezSMBConfTests.test_create_share   s    ''--

7###5!!!!!##% 0111L%u'97	
 	
 	
 	
 	
r   c                    | j                             d           }|                                 |                    d           |                                 |                                }|                     |g            d S )Nrc   )r   rY   re   rf   r+   r:   r;   s      r   rh   zSMBConfTests.test_create_share   sr    ''--

7###

!!#######r   c                 F   | j                             d           }|                                 |                    d           |                    ddd           |                    ddd           |                    d          }|                     |dddgf           d S )Nfoobarr@   /mnt/foobar
browseableno)r@   rl   )rm   rn   )r   rY   re   rf   set_parameterr,   r:   rE   s      r   test_set_parameterzSMBConfTests.test_set_parameter   s    ''--

8$$$Hfm<<<HlD999__X&&35IJK	
 	
 	
 	
 	
r   c                    | j                             d           }|                                 |                    dd           |                    dd           |                    d          }|                     |dddgf           d S )NrM   EXAMPLEx:customfaker5   rM   rr   )rs   rt   )r   rY   re   set_global_parameterr,   r:   rE   s      r   test_set_global_parameterz&SMBConfTests.test_set_global_parameter   s    ''--

"";	:::"":v666__X&&46JKL	
 	
 	
 	
 	
r   c                    | j                             d           }|                                 |                    d           |                    d           |                                }|                     |ddg           |                    d           |                                }|                     |dg           d S rb   )r   rY   re   rf   r+   r:   delete_sharer;   s      r   test_delete_sharezSMBConfTests.test_delete_share   s    ''--

7###5!!!!!##% 01117###!!##(((((r   c                 R   | j                             d           }|                                 g d}|                    d|           |                     |                    d          d|f           |                     | j        j        |j        d|           |                     t          |j        dd            |                     t          |j        dd d g           |                     t          |j        ddg           |                     t          |j        ddg           d S )Nr@   z/mnt/baz)rm   rC   z	read onlyrn   baz)hiN)abc)r   rY   re   create_set_sharer:   r,   r'   r	   rg   	TypeError
ValueErrorr   r.   paramss      r   test_create_set_sharez"SMBConfTests.test_create_set_share   s>   ''--


 
 

 	uf---//%AAAL%u'=uf	
 	
 	
 	)U%;UDIII.d|	
 	
 	
 	u-u|n	
 	
 	
 	.7H	
 	
 	
 	
 	
r   c                 r   | j                             d           }|                                 g d}|                    d|           |                     |                    d          d|f           |                    dd           |                     |                    d          dddgf           d S )Nr|   r   rm   r}   r~   )r   rY   re   r   r:   r,   delete_parameterr   s      r   test_delete_parameterz"SMBConfTests.test_delete_parameter   s    ''--


 
 

 	uf---//%AAAul333OOE""('		
 		
 		
 		
 		
r   c                    | j                             d           }|                                 |                    dd           |                    dd           |                    dd           |                    d          }|                     |dg df           |                    d           |                    d           |                    d          }|                     |dd	gf           d S )
NrM   rr   client min protocolNT1server min protocolSMB2r5   ru   )r   r   )r   r   ru   )r   rY   re   rv   r,   r:   delete_global_parameterrE   s      r   test_delete_global_parameterz)SMBConfTests.test_delete_global_parameter   s   ''--

"";	:::""#8%@@@""#8&AAA__X&&  
	
 
	
 
	
 	%%&;<<<%%&;<<<__X&&h)A(BCDDDDDr   c                    | j                             d           }|                                 |                    dd           |                                 |                    dd           |                    dd           |                                 |                    d          }|                     |ddgf           |                                 |                    dd           |                    dd           |                                 |                    d          }|                     |dg d	f           d S )
NrM   rr   r   r   r   r   r5   ru   r   )	r   rY   re   rv   transaction_starttransaction_cancelr,   r:   transaction_commitrE   s      r   test_transaction_directz$SMBConfTests.test_transaction_direct  s[   ''--

"";	:::!!!""#8%@@@""#8&AAA  """__X&&h)A(BCDDD!!!""#8%@@@""#8&AAA  """__X&&  
	
 
	
 
	
 
	
 
	
r   c                 >   | j                             d                                            fd} |ddgfddgfg           |                     | j        j        |ddgfddgfg                                           }|                     |ddg           d S )	Nc                                                       	 | D ]\  }}                    ||                                            d S # t          $ r                                   w xY wr   )r   r   r   	Exceptionr   )sharesnamer   r.   s      r   	_mksharesz7SMBConfTests.test_transaction_tryexc.<locals>._mkshares)  s    ##%%%$* 9 9LD&**48888((*****   ((***s   2A  A+hello)r@   z
/srv/world	goodnight)r@   z	/srv/moonmars)r@   z	/srv/mars)r@   z/srv/phobos)r   rY   re   r'   r	   rg   r+   r:   )r   r   r<   r.   s      @r   test_transaction_tryexcz$SMBConfTests.test_transaction_tryexc%  s    ''--

	 	 	 	 	 		123456	
 	
 	
 	L%/01678	
 	
 	
 !!##+ 677777r   c                     |                      | j        j                  5 }| j                            d           d d d            n# 1 swxY w Y   |                     | j        j        |j        j                   d S )Nz /foo/bar/baz/_I-dont/.exist/-ok-)r'   r	   rg   r1   r:   SBC_ERR_BADFILE	exception
error_code)r   raiseds     r   test_error_badfilezSMBConfTests.test_error_badfileG  s    t|899 	FVL!!"DEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	FL(&*:*E	G 	G 	G 	G 	Gs   AAAc                 2   | j                             | j                  }|                     | j         j                  5 }|                    dd           d d d            n# 1 swxY w Y   |                     | j         j        |j        j	                   d S )Nr   r   )
r	   r1   r   r'   rg   rv   r:   SBC_ERR_NOT_SUPPORTEDr   r   r   r.   r   s      r   test_error_not_supportedz%SMBConfTests.test_error_not_supportedM  s    %%d&?@@t|899 	EV&&'<eDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	EL.0@0K	M 	M 	M 	M 	M   A""A&)A&c                 2   | j                             | j                  }|                     | j         j                  5 }|                    d          f d d d            n# 1 swxY w Y   |                     | j         j        |j        j	                   d S )Nzilch)
r	   r1   r   r'   rg   r,   r:   SBC_ERR_NO_SUCH_SERVICEr   r   r   s      r   test_error_no_such_servicez'SMBConfTests.test_error_no_such_serviceT  s    %%d&?@@t|899 	&VOOG$$%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&L0&2B2M	O 	O 	O 	O 	Or   ) __name__
__module____qualname__r   r   propertyr	   r   r   r   r/   r3   r=   rG   rJ   rW   r[   r^   r`   rh   rp   rw   rz   r   r   r   r   r   r   r   r   __classcell__)r#   s   @r   r   r      s       HJ
 
 X
   X , , X,+ + + + +@ @ @/ / /
J J J
Q Q Q
Q Q Q

 
 
2. . .. . ./ / /	
 	
 	
$ $ $

 

 

	
 	
 	
) ) )
 
 
4
 
 
0E E E2
 
 
> 8  8  8DG G GM M MO O O O O O Or   r   __main__)__doc__samba.samba3r   r   samba.testsr   r   TestCaser   r   unittestmainr   r   r   <module>r      s   &  * ) ) ) ) )    ~O ~O ~O ~O ~O5;' ~O ~O ~OD
 zOOOHMOOOOO r   