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/kcc/__pycache__/ldif_import_export.cpython-310.pyc
o

�/a�&�@s�dZddlZddlZddlZddlZddlZddlZddlmZm	Z	ddlm
Z
ddlmZddl
mZddlmZddlmZee���Zej�ejd	d
�Zej�ejd	d�ZdZGd
d�dejj�ZGdd�dejj�ZdS)z&Tests for samba.kcc.ldif_import_export�N)�ldif_import_export�KCC)�ldb)�misc)�LoadParm)�Credentials)�SamDB�
SRCDIR_ABSz'testdata/ldif-utils-test-multisite.ldifz#testdata/unconnected-intrasite.ldif)
)zXCN=WIN08,CN=Servers,CN=Site-4,CN=Sites,CN=Configuration,DC=ad,DC=samba,DC=example,DC=com�Site-4)zXCN=WIN07,CN=Servers,CN=Site-4,CN=Sites,CN=Configuration,DC=ad,DC=samba,DC=example,DC=comr
)zXCN=WIN06,CN=Servers,CN=Site-3,CN=Sites,CN=Configuration,DC=ad,DC=samba,DC=example,DC=comzSite-3)zXCN=WIN09,CN=Servers,CN=Site-5,CN=Sites,CN=Configuration,DC=ad,DC=samba,DC=example,DC=com�Site-5)zXCN=WIN10,CN=Servers,CN=Site-5,CN=Sites,CN=Configuration,DC=ad,DC=samba,DC=example,DC=comr)zXCN=WIN02,CN=Servers,CN=Site-2,CN=Sites,CN=Configuration,DC=ad,DC=samba,DC=example,DC=com�Site-2)zXCN=WIN04,CN=Servers,CN=Site-2,CN=Sites,CN=Configuration,DC=ad,DC=samba,DC=example,DC=comr)zXCN=WIN03,CN=Servers,CN=Site-2,CN=Sites,CN=Configuration,DC=ad,DC=samba,DC=example,DC=comr)zXCN=WIN05,CN=Servers,CN=Site-2,CN=Sites,CN=Configuration,DC=ad,DC=samba,DC=example,DC=comr)�iCN=WIN01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ad,DC=samba,DC=example,DC=comzDefault-First-Site-NamecsDeZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Z�Z	S)
�LdifImportExportTestsc�0tt|���t�|_t�|_|j�|j�dS�N)�superr�setUpr�lpr�creds�guess��self��	__class__��D/usr/lib/python3/dist-packages/samba/tests/kcc/ldif_import_export.pyrI�zLdifImportExportTests.setUpcG�(|D]}|�|j�sJ�t�|�qdSr��
startswith�tempdir�os�unlink�r�files�frrr�remove_filesO��z"LdifImportExportTests.remove_filescCsdSrrrrrr�test_write_search_urlTsz+LdifImportExportTests.test_write_search_urlcCs�tj�|jd�}t�||jt�}|�|t	�d}|j
t�|d|�tj
dgd�}t�|���}|�t�|ddd�|�|j
dtj
dgd	�}t�||ddd�d
��}|�|t�|d|��|�|�dS)N�ldapr
�CN=NTDS Settings,�
objectGUID��scope�attrsr��
dsServiceName��baser-r.�utf8)r!�path�joinr r�
ldif_to_samdbr�MULTISITE_LDIF�assertIsInstancer�searchr�Dn�
SCOPE_BASEr�GUID�
get_ntds_GUID�assertEqual�decoder&)r�dburl�samdb�dsa�res�	ntds_guid�service_name_res�dnrrr�test_ldif_to_samdbWs(
����z(LdifImportExportTests.test_ldif_to_samdbc		Cs�tD]v\}}tj�|jd|�}tj||jt|d�}|�	|t
�|�|��|�|j
t�|d|�tjdgd�}t�|���}|�t�|ddd�|�|j
dtjdgd	�}t�||ddd�d
��}|�|t�|d|��|�|�qdS)Nz!ldif-to-samba-forced-local-dsa-%s)�forced_local_dsar*r+r,rr/r0r1r3)�MULTISITE_LDIF_DSASr!r4r5r rr6rr7r8rr>�server_site_namer9rr:r;rr<r=r?r&)	rrB�siter@rArCrDrErFrrr�#test_ldif_to_samdb_forced_local_dsams2�
�����z9LdifImportExportTests.test_ldif_to_samdb_forced_local_dsacCs�tj�|jd�}tj�|jd�}tj�|jd�}t�||jt�}|�|t	�tj
|||jd|d�|�tj�|�dd�t�||j|�}|�|t	�d}|j
t�|d|�tjd	gd
�}|�|�|�|�|�|�dS)Nr)�ldap_roundtrip�ldif)rr�	ldif_filei�z%LDIF should be larger than 1000 bytesr
r*r+r,)r!r4r5r rr6rr7r8r�samdb_to_ldif_file�
assertGreater�getsizer9rr:r;r&)rr@�dburl2rOrArBrCrrr�test_samdb_to_ldif_file�s2
���
��

z-LdifImportExportTests.test_samdb_to_ldif_file)
�__name__�
__module__�__qualname__rr&r(rGrLrT�
__classcell__rrrrrHsrcsNeZdZ�fdd�Zdd�Zddd�Zd	d
�Zdd�Zd
d�Zdd�Z	�Z
S)�KCCMultisiteLdifTestscrr)rrYrrrrrrrrrrr�rzKCCMultisiteLdifTests.setUpcGrrrr#rrrr&�r'z"KCCMultisiteLdifTests.remove_filesFNcCs>tt|||d�}tj�|jd�}|�||jt�|�	|�|S)N)�readonly�verify�dot_file_dir�tmpdb)
r�unix_nowr!r4r5r �import_ldifrr7r&)r�namerZr[r\�my_kccr]rrr�_get_kcc�s�
zKCCMultisiteLdifTests._get_kcccCs8|�d�}t|���}tdd�tD��}|�||�dS)Nz	test-listcss�|]}|dVqdS)rNr)�.0�xrrr�	<genexpr>�s�z7KCCMultisiteLdifTests.test_list_dsas.<locals>.<genexpr>)rb�set�	list_dsasrIr>)rra�dsas�
expected_dsasrrr�test_list_dsas�s
z$KCCMultisiteLdifTests.test_list_dsascCsR|jddd�}tj�|jd�}|�||jt�|jd|j|j	dd�|�
|�dS)zUCheck that the KCC generates graphs that pass its own verify
        option.
        �test-verifyT�r[�verify-tmpdbNF��attempt_live_connections)rbr!r4r5r r_rr7�runrr&�rrar]rrr�test_verify�s�z!KCCMultisiteLdifTests.test_verifyc	Cs�|jddd�}tj�|jd�}|�||jt�z?z
|jd|j|j	dd�Wnt
jjj
y1Ynty>|�d�YnwW|�|�dSW|�|�dSW|�|�dS|�|�w)	z@Check that the KCC generates errors on a unconnected db
        rkTrlrmNFrnzDid not expect this error.)rbr!r4r5r r_r�UNCONNECTED_LDIFrpr�samba�kcc�graph_utils�
GraphError�	Exception�failr&rqrrr�test_unconnected_db�s&
�����z)KCCMultisiteLdifTests.test_unconnected_dbc	Cs�|jd|jd�}tj�|jd�}|g}|�||jt�|jd|j|j	dd�d}t�
|j�D]=}|�d�rktj�|j|�}tj�|�rZt
�|d	g�d
krZt
�|d|g�}|�|d
�t�|�j}|�|d
�|�|�q.|j|�dS)z4Check that KCC writes dot_files when asked.
        z
test-dotfiles)r\z
dotfile-tmpdbNFrnz/usr/bin/dotz.dotz-?rz-Tcanon)rbr r!r4r5r_rr7rpr�listdir�endswith�exists�
subprocess�callr>�stat�st_size�assertNotEqual�appendr&)	rrar]r$�dot�fn�ffn�r�sizerrr�
test_dotfiles�s(�

�z#KCCMultisiteLdifTests.test_dotfiles)FFN)rUrVrWrr&rbrjrrrzr�rXrrrrrY�s


rY)�__doc__rtr!�timer~�logging�samba.tests�	samba.kccrrr�samba.dcerpcr�samba.paramr�samba.credentialsr�samba.samdbr�intr^r4r5�environr7rsrI�tests�TestCaseInTempDirrrYrrrr�<module>s.��U