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

�/aI�@s�dZddlZddlZddlZddlZddlmmZddl	Z	ddl
ZddlZGdd�dej
j�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zddd�ZGdd�de�ZdS)z$Tests for presence of documentation.�Nc@seZdZdd�ZdS)�TestCasecCs0t|�}ttt|��}|��|dd�|�S)Nz

    %sz
    )�list�map�str�sort�join)�self�
parameters�message�r�2/usr/lib/python3/dist-packages/samba/tests/docs.py�_format_message"szTestCase._format_messageN)�__name__�
__module__�__qualname__r
rrrrr srcCs0t��}|dkr
dSt|d�}|dkrdS|S)N�)�multiprocessing�	cpu_count�int)r�max_workersrrr�get_max_worker_count(srcCsXtj|tjtj|d���}|d������}||��kr*|dkr%|dks*|||fSdS)N��stdout�stderr�cwdr�z"")�
subprocess�Popen�PIPE�communicate�decode�upper�strip)�cmdline�topdir�param�
default_param�p�resultrrr�check_or_set_smbconf_default5s��
r)cCs�tj|tjtj|d���}|d������}||��kr.|dkr.d�|���|��kr.dS|dkrOzt	|d�t	|d��d�krDWdSWnY|||fSdS)Nrrr�, �integer�)
rrrrr r!r"r�splitr)r#r$r%�
param_type�value_to_user'r(rrr�set_smbconf_arbitaryAs*���
r0cCs:tjd|dd�}z|d}||d|7}|�|�W|��n|��wtj|d|jgtjtj|d���}	t	�
|j�|��|��kr�|	d���
�D]M}
|
���|�sYdS|
�d	�d
����}||��kr�tdkr|d�|���|��kr|dStd
kr�zt|d�t|d�kr�WqMWnY|||fSqMdS)N�wF)�mode�dir�delete�
z = z-srr�=�rr*r+r,)�tempfile�NamedTemporaryFile�write�closerr�namerr�os�unlink�lowerr �
splitlinesr"�
startswithr-r!r.rr)r#r$�tempdir�sectionr%�opposite_valuer/�g�towriter'�line�value_foundrrr�set_smbconf_arbitary_oppositeYsB����rIc

cs��tj�|dddd�}tj�tj�|d��std��zttj�|d�d�}Wnty6}ztd��d}~ww|��}t�	|�}|D]&}|j
�d	�}|j
�d
�dkrSqB|V|�d�}|durh|D]}	|	j
VqaqB|��dS)
N�bin�default�docs-xml�
smbdotconf�parameters.all.xml�!Unable to find parameters.all.xml�r�Error opening parameters filer<�removed�1�synonym)r=�pathr�exists�	Exception�open�IOError�read�ET�
fromstring�attrib�get�findall�textr;)
�	sourcedirrUr'�e�out�root�	parameterr<�syn�syrrr�get_documented_parameters�s.���


�rhTc
csR�tj�|dddd�}tj�tj�|d��std��zttj�|d�d�}Wnty6}ztd��d}~ww|��}t�	|�}|D]`}|j
�d	�}|j
�d
�}	|j
�d�dkrYqB|�d
�}
g}|
D]}|j
�d
�dkrq|�
|�qbd}
t|�dkr~|r}qBnt|�dkr�td|��|dj}
|
dur�d}
|j
�d�}||
||	fVqB|��dS)NrJrKrLrMrNrOrPrQr<�typerRrS�valuerr7z,More than one default found for parameter %sr�context)r=rUrrVrWrXrYrZr[r\r]r^r_�append�lenr`r;)ra�omit_no_defaultrUr'rbrcrdrer<r.�values�defaultsrj�default_textrkrrr�get_documented_tuples�sH���


��
rrcsfeZdZegd��Z�fdd�Z�fdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
ddd�Zdd�Z�Z
S)�SmbDotConfTests)�	log levelrUzpanic actionzhomedir mapzNIS homedirz
server stringznetbios namezsocket optionszctdbd socket�printingz
printcap namezqueueresume commandzqueuepause commandzlpresume commandzlppause commandzlprm commandzlpq commandz
print commandztemplate homedirzmax open fileszinclude system krb5 conf�smbd max async dosmodecs tt|���tj�|jd�|_t|jd�}z|�	d�W|�
�n|�
�wtj�|jd�|_t|jd�}z|�	d�W|�
�n|�
�wtj�t
���|_z
tt|j��|_Wn	|�d�Yz
tt|j��|_Wn	|�d�Yztt|jd��|_WdS|�d�YdS)	Nzparamtestsmb.confr1z
[test]
   path = /
zemptytestsmb.confrz$Unable to load documented parameterszUnable to load parametersF)�superrs�setUpr=rUrrB�smbconfrXr:r;�	blankconf�abspath�samba�source_tree_topdirr$�setrh�
documented�failrrrp�defaults_all)r�f��	__class__rrrx�s0zSmbDotConfTests.setUpcs*tt|���t�|j�t�|j�dS�N)rwrs�tearDownr=r>ryrz�rr�rrr�szSmbDotConfTests.tearDowncCs<|�dg�|�dg�|jdggd�d�|�dg�dS)N�bin/testparm)zclient lanman authzclient plaintext authzregistry shares�	smb ports�rpc server dynamic port range�name resolve order�
clustering��
exceptions��
_test_default�
_set_defaults�_set_arbitrary�_test_emptyr�rrr�test_default_s3s�zSmbDotConfTests.test_default_s3cCsD|�ddg�|�ddg�|jddggd�d�|�ddg�dS)N�bin/samba-tool�testparm)r�r�r�r�r�r�rrr�test_default_s4s
�zSmbDotConfTests.test_default_s4c	Cs~|ddkrt�dd�rtjdg|}t�}tjjt�d���}g}|jD]T}|\}}}}	||j	vr3q%d|vr8q%d}
|dkrAd}
n|dkrHd	}
n|�
d
|�d|jg}|ddkr`d
|jg}||d|
d|g}|�t
||j||�}
|�|
�q%tj�|�D]}|��r�|��\}}}d||f}|�d||f�q�Wd�n1s�wYt|�dkr�|�
|�|d��dSdS)Nrr��PYTHON�r�:�G�global�S�test�%s has no valid context�--configfile=%sr��--suppress-prompt�--section-name�--parameter-name�%s
      Expected: %s�%s
      Got: %s�.Parameters that do not have matching defaults:)r=�getenv�environr~�
concurrent�futures�ProcessPoolExecutorrrp�
special_casesr�ry�submitr)r$rl�as_completedr(�addrmr
)r�program�failset�executor�result_futures�tuplesr%rKrkr.rC�program_arg1r#�futurer�r(r&�
doc_triplerrrr�sR


����'

��zSmbDotConfTests._test_defaultcCs�|ddkrt�dd�rtjdg|}t�}tjjt�d���}g}|jD]Z}|\}}}}	tddg�}
||
vr8q%d}|dkrAd}n|d	krHd
}n|�	d|�d|j
g}|dd
kr`d|j
g}||d|d|dd||fg}
|�t|
|j
||�}|�|�q%tj�|�D]}|��r�|��\}}}d||f}|�d||f�q�Wd�n1s�wYt|�dkr�|�	|�|d��dSdS)Nrr�r�r�rurvr�r�r�r�r�r�r�r�r�r��--option�%s = %sr�r�r�)r=r�r�r~r�r�r�rrpr�ryr�r)r$rlr�r(r�rmr
)rr�r�r�r�r�r%rKrkr.r�rCr�r#r�r�r(r&r�rrrr�QsZ
�

����+

��zSmbDotConfTests._set_defaultsNc
Cs�|ddkrt�dd�rtjdg|}ddddddd	d
dddd
d�}ddddddddddddd�}t�}tjjt�d���}g}g}|jD]�}	|	\}
}}}
|
dvrRqE|
dvrWqE|dur`|
|vr`qEd}|dkrid}n|dkrpd}n|�	d|
�|�
|
�}|dur�|�	d |
�d!|jg}|dd"kr�d#|jg}||d$|d%|
d&d'|
|fg}|�t
||j|
|
|�}|�|�|�
|
�}|d#d&d'|
|fg}|�t||j|j||
||�}|�|�qEtj�|�D]}|��r�|��\}}
}d(|
|f}|�d)||f�q�tj�|�D]}|���r"|��\}
}}d(|
|f}|�d)||f��qWd�n	1�s/wYt|�dk�rF|�	|�|d*��dSdS)+Nrr�r��string�yes�5za b c�10�0123�ustringr�aza, b, c)r��booleanr+zboolean-rev�cmdlist�bytes�octalr��enum�boolean-auto�charr�string2�no�6zd e f�11�0567�ustring2�bzd, e, fr�)ru�copy�includert)r�r�r�r�r�r�r�z%s has an invalid typer�r�r�r�r�r�r�r�r�z*Parameters that were unexpectedly not set:)r=r�r�r~r�r�r�rr�r�r^ryr�r0r$rlrIrBr�r(r�rmr
)rr�r��	arbitrary�opposite_arbitraryr�r��result_futures1�result_futures2r�r%rKrkr.rCr/r�r#r�rDr�r(r�rHrrrr��s���



�


��
���D

��zSmbDotConfTests._set_arbitrarycCs�|ddkrt�dd�rtjdg|}d|jdg}|ddkr&d|jg}t||�tj||tjtj|jd��	�}d}|d�
���D]}|���
d	�rPqF|���
d
�rXqF||����d7}qF|��dkrv|��d
krx|�d�dSdSdS)Nrr�r�r�r�r�rr�#zidmap config *r5z[global]z	[globals]z9Testparm returned unexpected output on an empty smb.conf.)r=r�r�rz�printrrrr$rr r@r"rAr?r�)rr�r�r'�outputrGrrrr��s.

���zSmbDotConfTests._test_emptyr�)rrrr~r�rxr�r�r�r�r�r�r��
__classcell__rrr�rrs�s%	2
6^rs)T)�__doc__r|�samba.testsr=r�xml.etree.ElementTree�etree�ElementTreer[r�concurrent.futuresr�r8�tests�TestCaseInTempDirrrr)r0rIrhrrrsrrrr�<module>s"
(
&