Your IP : 216.73.216.52


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_telnetlib.cpython-310.opt-1.pyc

o

0�i�2�@s:ddlZddlZddlZddlZddlZddlmZddlmZddl	Z	ej
Z
dd�ZGdd�de	j�Z
Gdd	�d	e�ZGd
d�dej�ZGdd
�d
ej�Zejdd��Zdefdd�ZGdd�de	j�ZGdd�de�ZGdd�de�ZeZGdd�de	j�ZGdd�de	j�ZGdd�de�Zedkr�e	��dSdS) �N)�support)�
socket_helpercCsd|��|��z$z|��\}}|��Wn	tyYnwW|��dSW|��dS|��w�N)Zlisten�setZaccept�close�TimeoutError)�evtZservZconnZaddr�r	�:/opt/alt/python310/lib64/python3.10/test/test_telnetlib.py�server
s���rc@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�GeneralTestscCsnt��|_t�tjtj�|_|j�d�t�	|j�|_
tjt|j|jfd�|_
d|j
_|j
��|j��dS)N�<)�target�argsT)�	threadingZEventr�socketZAF_INETZSOCK_STREAM�sockZ
settimeoutrZ	bind_port�portZThreadr�threadZdaemon�start�wait��selfr	r	r
�setUps

zGeneralTests.setUpcCs|j��|`dSr)r�joinrr	r	r
�tearDown$s
zGeneralTests.tearDowncCst�t|j�}|j��dSr)�	telnetlib�Telnet�HOSTrrr�r�telnetr	r	r
�	testBasic(szGeneralTests.testBasiccCsNt�t|j��}|�|���Wd�n1swY|�|���dSr)rrrrZassertIsNotNone�
get_socketZassertIsNone)rZtnr	r	r
�testContextManager-s�zGeneralTests.testContextManagerc	Csf|�t��du�t�d�zt�t|j�}Wt�d�nt�d�w|�|j	�
�d�|j	��dS)N�)�
assertTruer�getdefaulttimeout�setdefaulttimeoutrrrr�assertEqualr�
gettimeoutrrr	r	r
�testTimeoutDefault2s
zGeneralTests.testTimeoutDefaultc	Csl|�t��du�t�d�ztjt|jdd�}Wt�d�nt�d�w|�|j�	�du�|j�
�dS�Nr$)�timeout)r%rr&r'rrrrrr)rrr	r	r
�testTimeoutNone<s
zGeneralTests.testTimeoutNonecCs2tjt|jdd�}|�|j��d�|j��dSr+)rrrrr(rr)rrr	r	r
�testTimeoutValueGszGeneralTests.testTimeoutValuecCs:t��}|jt|jdd�|�|j��d�|j��dSr+)	rr�openrrr(rr)rrr	r	r
�testTimeoutOpenLszGeneralTests.testTimeoutOpencCsJtjt|jdd�}|j}|�|��|�|�|��|���|j��dSr+)	rrrrrr(r"�filenor)rr Zt_sockr	r	r
�testGettersRs
zGeneralTests.testGettersN)�__name__�
__module__�__qualname__rrr!r#r*r-r.r0r2r	r	r	r
rs

rc@s*eZdZdZd
dd�Zdd�Zdd�Zd	S)�
SocketStubz* a socket proxy that re-defines sendall() r	cCst|�|_g|_d|_dS)NF)�list�reads�writes�block)rr8r	r	r
�__init__\s

zSocketStub.__init__cCs|j�|�dSr)r9�append)r�datar	r	r
�sendall`szSocketStub.sendallcCsjd}|jrt|�|kr||j�d�7}|jrt|�|kst|�|kr3|j�d||d��|d|�}|S)N�r)r8�len�pop�insert)r�size�outr	r	r
�recvbs�zSocketStub.recvN)r	)r3r4r5�__doc__r;r>rEr	r	r	r
r6Zs

r6c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TelnetAlikecCst��r)�NotImplementedErrorrr	r	r
r1l�zTelnetAlike.filenocCsdSrr	rr	r	r
rnszTelnetAlike.closecCs
|jjSr)rr:rr	r	r
�
sock_availo�
zTelnetAlike.sock_availcGsTt���}tjj||g|�R�Wd�n1swY|j|��7_dSr)rZcaptured_stdoutrr�msg�	_messages�getvalue)rrLrrDr	r	r
rLqs

�zTelnetAlike.msgN)r3r4r5r1rrJrLr	r	r	r
rGks
rGc@sDeZdZdd�Zedd��Zddd�Zdd	�Zdd
d�Zdd
�Z	dS)�MockSelectorcCs
i|_dSr��keysrr	r	r
r;yrKzMockSelector.__init__cCsdS)Ng����MbP?r	rr	r	r
�
resolution|szMockSelector.resolutionNcCst�|d||�}||j|<|S)Nr)�	selectorsZSelectorKeyrQ)r�fileobj�eventsr=�keyr	r	r
�register�s
zMockSelector.registercCs|j�|�Sr)rQrA)rrTr	r	r
�
unregister��zMockSelector.unregistercCsBd}|jD]
}t|t�r|jj}nq|rgSdd�|j��D�S)NFcSsg|]}||jf�qSr	)rU)�.0rVr	r	r
�
<listcomp>��z'MockSelector.select.<locals>.<listcomp>)rQ�
isinstancerGrr:�values)rr,r:rTr	r	r
�select�s

�zMockSelector.selectcCs|jSrrPrr	r	r
�get_map�rIzMockSelector.get_mapr)
r3r4r5r;�propertyrRrWrXr_r`r	r	r	r
rOws


rOc#s6��fdd�}ztj}|t_dVW|t_dS|t_w)Ncst��Sr)r6)Zignored�r8r	r
�new_conn�sztest_socket.<locals>.new_conn)rZcreate_connection)r8rcZold_connr	rbr
�test_socket�s��rdr	cCsH|D]}qt|��|dd�}d|_Wd�|S1swY|S)za return a telnetlib.Telnet object that uses a SocketStub with
        reads queued up to be read �dummyr�N)rdrM)r8�cls�xr r	r	r
�test_telnet�s



��ric@seZdZdd�Zdd�ZdS)�ExpectAndReadTestCasecCstj|_tt_dSr)r�_TelnetSelector�old_selectorrOrr	r	r
r�s
zExpectAndReadTestCase.setUpcCs|jt_dSr)rlrrkrr	r	r
r�rYzExpectAndReadTestCase.tearDownN)r3r4r5rrr	r	r	r
rj�srjc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�	ReadTestscCsrdg}t|�}|�d�}|j|d|j|j|jjfd�gd�}d�|dd��}t|�}|�d�}|�||�dS)	zc
        read_until(expected, timeout=None)
        test the blocking version of read_util
        sxxxmatchyyy�matchsxxxmatch)rL)s2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrns2yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr?N���)riZ
read_untilr(ZcookedqZrawqrr8r)r�wantr r=r8�expectr	r	r
�test_read_until�s

zReadTests.test_read_untilcCs2gd�}d�|�}t|�}|��}|�||�dS)zJ
        read_all()
          Read all data until EOF; may block.
        )��xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs�yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys�zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzr?N)rri�read_allr()rr8rqr r=r	r	r
�
test_read_all�s
zReadTests.test_read_allcCsBtdg�}|��}|�t|�dk�t�}|��}|�d|�dS)zQ
        read_some()
          Read at least one byte or EOF; may block.
        rs�r?N)riZ	read_somer%r@r()rr r=r	r	r
�test_read_some�s
zReadTests.test_read_somecCspd}t|g�}t||�}d|j_|�d|��d|j_d}	z||�7}Wn	ty.Ynwq|�||�dS)z
        read_*_eager()
          Read all data available already queued or on the socket,
          without blocking.
        �dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTr?FN)ri�getattrrr:r(�EOFError)rZ	func_namerpr �funcr=r	r	r
�_read_eager�s

��zReadTests._read_eagercCs|�d�|�d�dS)NZ
read_eagerZread_very_eager)r|rr	r	r
�test_read_eager�s
zReadTests.test_read_eagercCs\d}t|g�}|�d|���|jjr|��|jjs|��}|�||�|�t|j�dS�Nrxr?)rir(�read_very_lazyrr8�	fill_rawqZassertRaisesrz)rrpr r=r	r	r
r�s
�zReadTests.read_very_lazycCszd}t|g�}|�d|���d}	z|��}||7}|s!|��Wn	ty+Yn
w|�|�|��q|�||�dSr~)rir(Z	read_lazyr�rzr%�
startswith)rrpr r=Z	read_datar	r	r
�test_read_lazys"
���	zReadTests.test_read_lazyN)
r3r4r5rrrurwr|r}rr�r	r	r	r
rm�s
rmc@seZdZddd�Zdd�ZdS)�nego_collectorNcCsd|_||_d|_dS)Nr?)�seen�	sb_getter�sb_seen)rr�r	r	r
r;s
znego_collector.__init__cCsD|j||7_|tjkr|jr |��}|j|7_dSdSdSr)r��tl�SEr�r�)rr�cmd�optZsb_datar	r	r
�do_negos
�znego_collector.do_negor)r3r4r5r;r�r	r	r	r
r�s
r�c@seZdZdZdd�ZdS)�
WriteTestszKThe only thing that write does is replace each tl.IAC for
    tl.IAC+tl.IACcCszddtjddtjtjdtjtjdg}|D] }t�}|�|�d�|jj�}|�|�tjtjtj�|�qdS)Nsdata sample without IACsdata sample withs one IACsa fews iacsr?)	r��IACri�writerrr9r(�replace)rZdata_sampler=r Zwrittenr	r	r
�
test_write(s�
 �zWriteTests.test_writeN)r3r4r5rFr�r	r	r	r
r�$sr�c@s`eZdZejejejejejej	ej
ejgZdd�Z
dd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�OptionTestscCs�t|�}td�|��}t�}|�|j�|��}|j}|�t|�dk�|�	|dd�|j
�|�|dd�tj
�|�|t||��d|_dS)z helper for testing IAC + cmd r?rNrv�)rir@rr��set_option_negotiation_callbackr�rtr�r%�assertIn�cmdsr(r�ZNOOPTr�)rr=r Zdata_len�nego�txtr�r	r	r
�
_test_command8s
zOptionTests._test_commandcCs^|jD]}|�tj|g�|�dtj|dg�|�dtj|dg�q|�dd�|jD��dS)Nrxsdyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy�
xxxxxxxxxx�
yyyyyyyyyycSsg|]}tj|�qSr	)r�r�)rZr�r	r	r
r[Lr\z1OptionTests.test_IAC_commands.<locals>.<listcomp>)r�r�r�r�)rr�r	r	r
�test_IAC_commandsFs

zOptionTests.test_IAC_commandscCs0tjtjtjtjtjtjtjtjtjtjtjtjtjtjdtjtjtjtjdtjtjtjtjtjtjdtjtjdtjtjg}t|�}t|j�}|�|j�|�	�}|�
|d�tjtjdtjdtjd}|�
|j|�|�
d|���d|_dS)Nsaasbbsccsddr?saabb)
r�r�ZSBr�rir�Zread_sb_datar�r�rtr(r�r�)r�sendr r�r�Zwant_sb_datar	r	r
�test_SB_commandsNs"&&*�
$
zOptionTests.test_SB_commandscCs�dtjtdg�dftjtjtdg�dftjtjtdg�dftjtjtdg�dftjtjtdg�dfg}|D]\}}t|g�}|�d�|�	�}|�
||j�q>dS)	N)�az: recv b''
�Xz: IAC 88 not recognized
rvz: IAC DO 1
z
: IAC DONT 1
z
: IAC WILL 1
z
: IAC WONT 1
)r�r��bytesZDOZDONTZWILLZWONTri�set_debuglevelrtr�rM)rZgiven_a_expect_b�a�br r�r	r	r
�test_debuglevel_reads`s�


z!OptionTests.test_debuglevel_readscCs0t�}|�d�|�d�d}|�||j�dS)Nrvsxxxzsend b'xxx'
)rir�r�r�rM)rr Zexpectedr	r	r
�test_debuglevel_writess


z!OptionTests.test_debuglevel_writecCs^tg��tdd�}d|_Wd�n1swY|�d�|�d�|�|jd�dS)Nre�0rfrv�testz0.*test)rdrGrMr�rLZassertRegexrr	r	r
�test_debug_accepts_str_portzs

�

z'OptionTests.test_debug_accepts_str_portN)r3r4r5r�ZAOZAYTZBRKZECZELZGAZIPZNOPr�r�r�r�r�r�r�r	r	r	r
r�4s$r�c@seZdZdd�ZdS)�ExpectTestscCs@gd�}t|�}|�dg�\}}}|�|d�|dd���dS)z�
        expect(expected, [timeout])
          Read until the expected string has been seen, or a timeout is
          hit (default is no timeout); may block.
        )r�rnr�rnr?Nro)rirqr(r)rrpr �_r=r	r	r
�test_expect�szExpectTests.test_expectN)r3r4r5r�r	r	r	r
r��sr��__main__) rrSrr�
contextlibr�rZtest.supportrZunittestrrZTestCaser�objectr6rrGZBaseSelectorrO�contextmanagerrdrirjrmr�r�r�r�r�r3�mainr	r	r	r
�<module>s6B 

bP
�