HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/samba/tests/samba_tool/__pycache__/contact.cpython-310.pyc
o

�/a]T�@s0ddlZddlZddlmZGdd�de�ZdS)�N)�SambaToolCmdTestcs�eZdZdZgZdZ�fdd�Z�fdd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zifdd�Zifdd�Zd!dd�Zdd�Zdd �Z�ZS)"�ContactCmdTestCasez(Tests for samba-tool contact subcommandsNc
sltt|���dtjdtjdf|_|�ddtjd|j�|_d}g|_|�	ddd��}|j�
|�|�	d	d	d
��}|j�
|�|�	dddd
dd
dd��}|j�
|�|�	ddddd��}|j�
|�|jD]J}|�|�\}}}|�|||�|�
d|d�|�d|d|�|�|d�}|�|�|d}|�d|�d�|�|�d|�d�|d�qidS)Nz-U%s%%%s�DC_USERNAME�DC_PASSWORDz-Hz	ldap://%s�	DC_SERVER�contact1)�expectedname�name�contact2)r�	givenName�contact3�contact3displayname�not_contact3�I�12345)rr	�displayNamer�initials�sn�mobilez
James T. Kirk�Kirk�T�James)rrrr�ERROR�$There shouldn't be any error message�Contact '%s' added successfullyr�%sr	�description)�superr�setUp�os�environ�creds�getSamDB�samdb�contacts�_randomContact�append�_create_contact�assertCmdSuccess�assertNotIn�assertIn�
_find_contact�assertIsNotNone�assertEqual�get)�self�contact�result�out�err�found�contactname��	__class__��@/usr/lib/python3/dist-packages/samba/tests/samba_tool/contact.pyrsh
������
���
��zContactCmdTestCase.setUpc	s`tt|���|jD]#}|�|d�r-|�ddd|d�\}}}|�|||d|d�q
dS)Nrr0�deleter�Failed to delete contact '%s')rr�tearDownr$r+�	runsubcmdr()r/r0r1r2r3r6r8r9r<Us

�
����zContactCmdTestCase.tearDownc		Cs�|jD]}|�|�\}}}|�|d�|�d|�q|jD]-}|�ddd|d�\}}}|�|||d|d�|�|d�}|�|d|d�q|�d	d
i�}|�	|�\}}}|�|||�|jD]G}|j|dd�\}}}|�|||�|�
|d
d�|�d|d|�|�|d�}|d}|�
d|�d	�|�|�
d|�d�|d�qd|jD]>}t�
|jd|d|d	|j��f�}|�ddd|�\}}}|�|||d|d�|�|d�}|�|d|d�q�|�ddd|d	�\}}}|�|||d|d	�|jD]F}|�|�\}}}|�|||�|�
|d
d�|�d|d|�|�|d�}|d}|�
d|�d	�|�|�
d|�d�|d��qdS)z=This tests the "contact create" and "contact delete" commandsz$Succeeded to create existing contactzalready existsr0r:rrr;z!Deleted contact '%s' still existsr	�testOUz	OU=testOU)�ou�rrr�CN=%s,OU=%s,%sr?�OU=%s�Failed to delete ou '%s'N)r$r'�
assertCmdFailr*r=r(r+�assertIsNone�	_randomOU�
_create_our-r.�ldb�Dnr#�	domain_dn)	r/r0r1r2r3r4�parentour5�
expecteddnr8r8r9�test_newcontact`s�


�
����
���
���
�
����

�

�
����z"ContactCmdTestCase.test_newcontactcCs�|�dd�\}}}|�|||d�d}|jj|j��tj|dgd�}|�t|�dkd�|D]}|j	ddd	�}|�
|t|�d
|�q.dS)Nr0�list�Error running list�(objectClass=contact)r	��base�scope�
expression�attrsr�no contacts found in samdb��idx�contact '%s' not found)r=r(r#�searchrJrH�
SCOPE_SUBTREE�
assertTrue�lenr.�assertMatch�str)r/r1r2r3�
search_filter�contactlist�
contactobjr	r8r8r9�	test_list�s���zContactCmdTestCase.test_listcCs�|�ddd�\}}}|�|||d�d}|jj|j��tj|dgd�}|�t|�dkd	�|D]}|�	|t
|j�d
t
|j��q/dS)Nr0rNz	--full-dnrOrP�dnrQrrVrY)r=r(r#rZrJrHr[r\r]r^r_rd)r/r1r2r3r`rarbr8r8r9�test_list_full_dn�s���z$ContactCmdTestCase.test_list_full_dnc	Cs�t|j���}|�ddd|�\}}}|�|||d�d}|jj|tj|dgd�}|�t	|�dkd	�|D]}|j
ddd
�}|�|t|�d|�q4dS)Nr0rNz-brOrPr	rQrrVrWrY)r_r#rJr=r(rZrHr[r\r]r.r^)	r/�base_dnr1r2r3r`rarbr	r8r8r9�test_list_base_dn�s$
����z$ContactCmdTestCase.test_list_base_dnc
	Cs�|�ddi�}|�|�\}}}|�|||�|jD]�}|�|d��d�}|�ddd|dd|d�\}}}|�|||d	|d�|�|d
d�|�d|d|�|�|d�}|�	|�d�|d
|d�|d}t
�|jd||d|j�
�f�}	|�|�d�|	d|d�|�ddd|dd|���\}}}|�|||d	|d�q|�ddd|d�\}}}|�|||d|d�dS)Nr	�parentOUrrdr0�moverrBzFailed to move contact '%s'r@rzMoved contact "%s"z0Moved contact '%s' still exists with the same dnrAz!Moved contact '%s' does not existr?r:rC)rFrGr(r$r+r.r=r-r*�assertNotEqualsrHrIr#rJ�parent)
r/rKr1r2r3r0�olddnr4r5�
newexpecteddnr8r8r9�	test_move�sf



�
���������


�
��

�

�zContactCmdTestCase.test_movecCs.|jD�]}d|vr|dn|d}d|}d}d|}d|}d|||f}|�dd	|d
d|d|d
|�\}}	}
|�||	|
�|�|
dd�|�d|	�|�|�}|�d|�d�|�|�d|�d�|�|�d|�d�|�|�d|�d�|�|�d|�d�|�|�dd	|d|ddd�\}}	}
|�||	|
�|�|
dd�|�d|	�|�|�}|�|�d�d�|�|�d�d�|�|�d�d�d|vr�|dnd}d|vr�|dnd}
d|vr�|dnd}d|vr�|dn|}|�dd	|d|d|d|
d
|�\}}	}
|�||	|
�qdS)zCrename and remove given name, initials and surname for all contactsr	r�new_given_name_of_�A�new_surname_of_�
new_cn_of_z	%s %s. %sr0�renamez
--reset-cnz--surname=%sz
--initials=%sz--given-name=%sr@�Shouldn't be any error messages�successfullyrrrr�cn�--force-new-cn=%sz
--surname=z--initials=z
--given-name=N�r$r=r(r-r*r+r.)r/r0r	�
new_givenname�new_initials�new_surname�new_cn�expected_cnr1r2r3r4�old_surname�old_initials�
old_givenname�old_cnr8r8r9�&test_rename_givenname_initials_surname
s^

�


�


��z9ContactCmdTestCase.test_rename_givenname_initials_surnamecCs�|jD]s}d|vr
|dn|d}d|}|�dd|d|�\}}}|�|||�|�|dd�|�d	|�|�|�}|�d
|�d�|�|�dd|d�\}}}|�|�|�d
|�|�d|�|�dd|d|�\}}}|�|||�qdS)z/rename and try to remove the cn of all contactsr	rrrr0rsrwr@rtrurrvz--force-new-cn=zFailed to rename contactzdelete protected attributeN)r$r=r(r-r*r+r.rD)r/r0r	r|r1r2r3r4r8r8r9�test_rename_cnEs,


�


�


��z!ContactCmdTestCase.test_rename_cnc	Csz|jD]�}d|vr
|dn|d}d|}d|}|�dd|d|d|�\}}}|�|||�|�|d	d
�|�d|�|�|�}|�d|�d
�|�|�d|�d�|�|�dd|dd�\}}}|�|||�|�|d	d
�|�d|�|�|�}|�|�d
�d�|�|�d�d�d|vr�|dnd	}	d|vr�|dnd	}
|�dd|d|	d|
�\}}}|�|||�qdS)zHrename and remove the mail and the displayname attribute of all contactsr	r�new_mailaddress_of_znew displayname of r0rsz--mail-address=%sz--display-name=%sr@rtrur�mailrz--mail-address=z--display-name=Nrrvrx)r/r0r	�new_mail�new_displaynamer1r2r3r4�old_mail�old_displaynamer8r8r9�#test_rename_mailaddress_displaynamebsH

��
�


�


��z6ContactCmdTestCase.test_rename_mailaddress_displaynamecCsd|jdd�i}|�|�|S)zVCreate a contact with random attribute values, you can specify base
        attributesr�d��count��
randomName�update)r/rRr0r8r8r9r%�s�
z!ContactCmdTestCase._randomContactcCs$|��|jdd�d�}|�|�|S)zSCreate an ou with random attribute values, you can specify base
        attributes.r�r�)r	rr�)r/rRr?r8r8r9rF�s

�
zContactCmdTestCase._randomOUcCs�d}d|vr|d�|d�7}|d�|j�7}|dur"|d�|�7}d|vr/|d�|d�7}d|vr<|d	�|d�7}d
|vrI|d�|d
�7}d|vrV|d
�|d�7}d|vrc|d�|d�7}d|vrp|d�|d�7}|��}|jddg|�R�S)Nr@r	z{0}z {0}z	 --ou={0}rz --description={0}rz --surname={0}rz --initials={0}rz --given-name={0}rz --display-name={0}rz --mobile-number={0}r0�create)�formatr!�splitr=)r/r0r?�argsr8r8r9r'�s(z"ContactCmdTestCase._create_contactcCs |�ddd|dd|d�S)Nr?r�rBr	z--description=%sr)r=)r/r?r8r8r9rG�s


�zContactCmdTestCase._create_oucCs>|}dt�|�}|jj|j��tj|gd�}|r|dSdS)Nz!(&(objectClass=contact)(name=%s))rQr)rH�
binary_encoder#rZrJr[)r/r	r5r`rar8r8r9r+�s��z ContactCmdTestCase._find_contact)N)�__name__�
__module__�__qualname__�__doc__r$r#rr<rMrcrergrnr�r�r�r%rFr'rGr+�
__classcell__r8r8r6r9rs&7N+8)
r)rrH�samba.tests.samba_tool.baserrr8r8r8r9�<module>s