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: //usr/lib/python3/dist-packages/samba/tests/samba_tool/__pycache__/base.cpython-310.pyc
o

�/aR�@srddlZddlZddlZddlmZddlmZddlmZddl	m
Z
ddlZddd�Z
Gd	d
�d
ejj�ZdS)�N)�system_session)�SamDB)�StringIO)�
cmd_sambatool�dcCs0t|�|dkr
|S|d|�dt|�|S)N�z[%d more characters])�len)�s�cutoff�r�=/usr/lib/python3/dist-packages/samba/tests/samba_tool/base.py�truncate_string"sr
c@sneZdZdd�Zdd�Zdd�Zdd�Zdd
d�Zddd
�Zddd�Z	ddd�Z
dd�Zddd�Zdd�Z
dS)�SambaToolCmdTestcGs�tjdjd}|�d�\}}|�t|��\}}|dd�}t|j�}|jD]}|jD]}	|	j	dur6||	j	=q+q&|�
|�|�dd�}
|�dd�}|�dd�}|��}
|j
|
dd	�}t|
t�||
d
�}|S)zFa convenience function to get a samdb instance so that we can query it�user�	setexpiry�N�H�	sambaopts�credoptsT)�fallback_machine)�url�session_info�credentials�lp)r�subcommands�_create_parser�
parse_args�list�dict�__dict__�
option_groups�option_list�dest�update�get�get_loadparm�get_credentialsrr)�self�argv�cmd�parser�optiongroups�opts�args�kwargs�option_group�optionrrrr�creds�samdbrrr�getSamDB*s*



��
�zSambaToolCmdTest.getSamDBcGsFtj|}t�|_t�|_|jd|g|�R�}||j��|j��fS)zrun a single level command�
samba-tool %s�rrr�outf�errf�_run�getvalue)r'�namer-r)�resultrrr�runcmdHs

zSambaToolCmdTest.runcmdcGsPtj|j|}t�|_t�|_|jd||fg|�R�}||j��|j��fS)zrun a command with sub commandszsamba-tool %s %sr5)r'r:�subr-r)r;rrr�	runsubcmdPs
zSambaToolCmdTest.runsubcmdcGsjtj|}d|}|D]
}|j|}|d|7}qt�|_t�|_|j|g|�R�}||j��|j��fS)z3run a command with any number of sub command levelsr4z %sr5)r'r:�	sublevelsr-r)�cmd_strr=r;rrr�runsublevelcmd[s

zSambaToolCmdTest.runsublevelcmd�cCs*d||||f}|j||�dd�d�dS)Nz"exit[%s] stdout[%s] stderr[%s]: %sz
]
z
] 
)�msg)�assertIsNone�replace)r'�exit�out�errrCrrr�assertCmdSuccesslsz!SambaToolCmdTest.assertCmdSuccesscCs|�||�dS�N)�assertIsNotNone)r'�valrCrrr�
assertCmdFailsszSambaToolCmdTest.assertCmdFailNcCs.|durdt|�t|�f}|�|||�dS)Nz%r is not in %r)r
�assertIn)r'�base�stringrCrrr�assertMatchvs
�zSambaToolCmdTest.assertMatch�cCs0t�tj�}|d�dd�t|d�D��7}|S)zPCreate a random name, cap letters and numbers, and always starting with a letterrBcss(�|]}t�tjtjtj�VqdSrJ)�random�choicerP�ascii_uppercase�ascii_lowercase�digits)�.0�xrrr�	<genexpr>�s�&z.SambaToolCmdTest.randomName.<locals>.<genexpr>r)rSrTrPrU�join�range)r'�countr:rrr�
randomName}s zSambaToolCmdTest.randomNamecCsrz|jWntyg|_Ynwd}|dkr5t�dd�}||jvr-|j|g7_|S|d7}|dksJd��)Nr�2iX�Gi:IrFzNo Xid are available)�	used_xids�AttributeErrorrS�randint)r'�failed�xidrrr�	randomXid�s

�
�zSambaToolCmdTest.randomXidcCs$|�|||ko
|||k|�dS)zFAssert that val1 is within delta of val2, useful for time computationsN)�
assertTrue)r'�val1�val2�deltarCrrr�assertWithin�s$zSambaToolCmdTest.assertWithinc	CsL|�ddd|dtjdtjdfdtjd�\}}}|�|||�dS)	N�domain�demotez--remove-other-dead-server=%s z-U%s%%%s�USERNAME�PASSWORDz--server=%s�SERVER)r>�os�environrI)r'�netbios_namer;rGrHrrr�cleanup_join�s��zSambaToolCmdTest.cleanup_join)rBrJ)rR)�__name__�
__module__�__qualname__r3r<r>rArIrMrQr^rerjrsrrrrr(s




r)r)rprSrP�
samba.authr�samba.samdbr�ior�samba.netcmd.mainr�samba.tests�sambar
�tests�BlackboxTestCaserrrrr�<module>s