Your IP : 216.73.217.129


Current Path : /opt/alt/python38/lib64/python3.8/test/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/__pycache__/test_telnetlib.cpython-38.pyc

U

i�f�2�@s,ddlZddlZddlZddlZddlZddlmZddlZejZdd�Z	Gdd�dej
�ZGdd�de�Z
Gd	d
�d
ej�ZGdd�dej�Zejd
d��Zdefdd�ZGdd�dej
�ZGdd�de�ZGdd�de�ZeZGdd�dej
�ZGdd�dej
�ZGdd�de�Zedk�r(e��dS)�N)�supportcCsT|��|��z4z|��\}}|��Wntjk
r@YnXW5|��XdS�N)Zlisten�set�closeZaccept�socket�timeout)�evtZservZconnZaddr�r	�8/opt/alt/python38/lib64/python3.8/test/test_telnetlib.py�servers
rc@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�GeneralTestscCsrt��|_t�tjtj�|_|j�d�t�	|j�|_
tjt|j|jfd�|_
|j
�d�|j
��|j��dS)N�<)�target�argsT)�	threadingZEventrrZAF_INETZSOCK_STREAM�sockZ
settimeoutrZ	bind_port�portZThreadr�threadZ	setDaemon�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.testBasicc	Cs:t�t|j��}|�|���W5QRX|�|���dSr)rrrrZassertIsNotNone�
get_socketZassertIsNone)rZtnr	r	r
�testContextManager,szGeneralTests.testContextManagerc	Cs\|�t��dk�t�d�zt�t|j�}W5t�d�X|�|j	�
�d�|j	��dS)N�)�
assertTruer�getdefaulttimeout�setdefaulttimeoutrrrr�assertEqualr�
gettimeoutrrr	r	r
�testTimeoutDefault1s
zGeneralTests.testTimeoutDefaultc	Csb|�t��dk�t�d�ztjt|jdd�}W5t�d�X|�|j�	�dk�|j�
�dS�Nr#)r)r$rr%r&rrrrrr(rrr	r	r
�testTimeoutNone;s
zGeneralTests.testTimeoutNonecCs2tjt|jdd�}|�|j��d�|j��dSr*)rrrrr'rr(rrr	r	r
�testTimeoutValueFszGeneralTests.testTimeoutValuecCs:t��}|jt|jdd�|�|j��d�|j��dSr*)	rr�openrrr'rr(rrr	r	r
�testTimeoutOpenKszGeneralTests.testTimeoutOpencCsJtjt|jdd�}|j}|�|��|�|�|��|���|j��dSr*)	rrrrrr'r!�filenor)rrZt_sockr	r	r
�testGettersQs
zGeneralTests.testGettersN)�__name__�
__module__�__qualname__rrr r"r)r+r,r.r0r	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)rr6r	r	r
�__init__[s
zSocketStub.__init__cCs|j�|�dSr)r7�append)r�datar	r	r
�sendall_szSocketStub.sendallcCsZd}|jr(t|�|kr(||j�d�7}qt|�|krV|j�d||d��|d|�}|S)N�r)r6�len�pop�insert)r�size�outr	r	r
�recvaszSocketStub.recvN)r	)r1r2r3�__doc__r9r<rCr	r	r	r
r4Ys
r4c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TelnetAlikecCs
t��dSr)�NotImplementedErrorrr	r	r
r/kszTelnetAlike.filenocCsdSrr	rr	r	r
rmr=zTelnetAlike.closecCs
|jjSr)rr8rr	r	r
�
sock_availnszTelnetAlike.sock_availc	Gs>t���}tjj||f|��W5QRX|j|��7_dSr)rZcaptured_stdoutrr�msg�	_messages�getvalue)rrHrrBr	r	r
rHps
zTelnetAlike.msgN)r1r2r3r/rrGrHr	r	r	r
rEjsrEc@sDeZdZdd�Zedd��Zddd�Zdd	�Zdd
d�Zdd
�Z	dS)�MockSelectorcCs
i|_dSr��keysrr	r	r
r9xszMockSelector.__init__cCsdS)Ng����MbP?r	rr	r	r
�
resolution{szMockSelector.resolutionNcCst�|d||�}||j|<|S)Nr)�	selectorsZSelectorKeyrM)r�fileobj�eventsr;�keyr	r	r
�registers
zMockSelector.registercCs|j�|�Sr)rMr?)rrPr	r	r
�
unregister�szMockSelector.unregistercCsFd}|jD]}t|t�r
|jj}q&q
|r.gSdd�|j��D�SdS)NFcSsg|]}||jf�qSr	)rQ)�.0rRr	r	r
�
<listcomp>�sz'MockSelector.select.<locals>.<listcomp>)rM�
isinstancerErr8�values)rrr8rPr	r	r
�select�s

zMockSelector.selectcCs|jSrrLrr	r	r
�get_map�szMockSelector.get_map)N)N)
r1r2r3r9�propertyrNrSrTrYrZr	r	r	r
rKvs


rKc#s0�fdd�}ztj}|t_dVW5|t_XdS)Ncst��Sr)r4)Zignored�r6r	r
�new_conn�sztest_socket.<locals>.new_conn)rZcreate_connection)r6r]Zold_connr	r\r
�test_socket�s
r^r	c	CsF|D]}t|�tkst|��qt|��|dd�}d|_W5QRX|S)za return a telnetlib.Telnet object that uses a SocketStub with
        reads queued up to be read �dummyr�)�type�bytes�AssertionErrorr^rI)r6�cls�xrr	r	r
�test_telnet�s

rfc@seZdZdd�Zdd�ZdS)�ExpectAndReadTestCasecCstj|_tt_dSr)r�_TelnetSelector�old_selectorrKrr	r	r
r�szExpectAndReadTestCase.setUpcCs|jt_dSr)rirrhrr	r	r
r�szExpectAndReadTestCase.tearDownN)r1r2r3rrr	r	r	r
rg�srgc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�	ReadTestscCstdg}t|�}|�d�}|j|d|j|j|jjfd�dddg}d�|dd	��}t|�}|�d�}|�||�dS)
zc
        read_until(expected, timeout=None)
        test the blocking version of read_util
        sxxxmatchyyy�matchsxxxmatch)rHs2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs2yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyr=N���)rfZ
read_untilr'ZcookedqZrawqrr6r)r�wantrr;r6�expectr	r	r
�test_read_until�s


zReadTests.test_read_untilcCs4dddg}d�|�}t|�}|��}|�||�dS)zJ
        read_all()
          Read all data until EOF; may block.
        ��xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxs�yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyys�zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzr=N)rrf�read_allr')rr6rnrr;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.
        rp�r=N)rfZ	read_somer$r>r')rrr;r	r	r
�test_read_some�s
zReadTests.test_read_somecCstd}t|g�}t||�}d|j_|�d|��d|j_d}z||�7}Wq:tk
r`YqdYq:Xq:|�||�dS)z
        read_*_eager()
          Read all data available already queued or on the socket,
          without blocking.
        �dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTr=FN)rf�getattrrr8r'�EOFError)rZ	func_namermr�funcr;r	r	r
�_read_eager�s

zReadTests._read_eagercCs|�d�|�d�dS)NZ
read_eagerZread_very_eager)ryrr	r	r
�test_read_eager�s
zReadTests.test_read_eagercCsVd}t|g�}|�d|���|jjr0|��q|��}|�||�|�t|j�dS�Nrur=)rfr'�read_very_lazyrr6�	fill_rawqZassertRaisesrw)rrmrr;r	r	r
r|�s

zReadTests.read_very_lazycCs~d}t|g�}|�d|���d}z |��}||7}|s@|��Wntk
rZYqnYnX|�|�|��q"|�||�dSr{)rfr'Z	read_lazyr}rwr$�
startswith)rrmrr;Z	read_datar	r	r
�test_read_lazys

zReadTests.test_read_lazyN)
r1r2r3rorrrtryrzr|rr	r	r	r
rj�s
rjc@seZdZddd�Zdd�ZdS)�nego_collectorNcCsd|_||_d|_dS)Nr=)�seen�	sb_getter�sb_seen)rr�r	r	r
r9sznego_collector.__init__cCs<|j||7_|tjkr8|jr8|��}|j|7_dSr)r��tl�SEr�r�)rr�cmd�optZsb_datar	r	r
�do_negosznego_collector.do_nego)N)r1r2r3r9r�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�|�q4dS)Nsdata sample without IACsdata sample withs one IACsa fews iacsr=)	r��IACrf�writerrr7r'�replace)rZdata_sampler;rZwrittenr	r	r
�
test_write's�
zWriteTests.test_writeN)r1r2r3rDr�r	r	r	r
r�#sr�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=rNrs�)rfr>rr��set_option_negotiation_callbackr�rqr�r$�assertIn�cmdsr'r�ZNOOPTr�)rr;rZdata_len�nego�txtr�r	r	r
�
_test_command7szOptionTests._test_commandcCs^|jD]<}|�tj|g�|�dtj|dg�|�dtj|dg�q|�dd�|jD��dS)Nrusdyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy�
xxxxxxxxxx�
yyyyyyyyyycSsg|]}tj|�qSr	)r�r�)rUr�r	r	r
rVKsz1OptionTests.test_IAC_commands.<locals>.<listcomp>)r�r�r�r�)rr�r	r	r
�test_IAC_commandsEs

zOptionTests.test_IAC_commandscCs0tjtjtjtjtjtjtjtjtjtjtjtjtjtjdtjtjtjtjdtjtjtjtjtjtjdtjtjdtjtjg}t|�}t|j�}|�|j�|�	�}|�
|d�tjtjdtjdtjd}|�
|j|�|�
d|���d|_dS)Nsaasbbsccsddr=saabb)
r�r�ZSBr�rfr�Zread_sb_datar�r�rqr'r�r�)r�sendrr�r�Zwant_sb_datar	r	r
�test_SB_commandsMs"&&*�
$zOptionTests.test_SB_commandscCs�dtjtdg�dftjtjtdg�dftjtjtdg�dftjtjtdg�dftjtjtdg�dfg}|D]2\}}t|g�}|�d�|�	�}|�
||j�q|dS)	N)�az: recv b''
�Xz: IAC 88 not recognized
rsz: IAC DO 1
z
: IAC DONT 1
z
: IAC WILL 1
z
: IAC WONT 1
)r�r�rbZDOZDONTZWILLZWONTrf�set_debuglevelrqr�rI)rZgiven_a_expect_b�a�brr�r	r	r
�test_debuglevel_reads_s�


z!OptionTests.test_debuglevel_readscCs0t�}|�d�|�d�d}|�||j�dS)Nrssxxxzsend b'xxx'
)rfr�r�r�rI)rrZexpectedr	r	r
�test_debuglevel_writers


z!OptionTests.test_debuglevel_writec	CsJtg��tdd�}d|_W5QRX|�d�|�d�|�|jd�dS)Nr_�0r`rs�testz0.*test)r^rErIr�rHZassertRegexrr	r	r
�test_debug_accepts_str_portys



z'OptionTests.test_debug_accepts_str_portN)r1r2r3r�ZAOZAYTZBRKZECZELZGAZIPZNOPr�r�r�r�r�r�r�r	r	r	r
r�3s$r�c@seZdZdd�ZdS)�ExpectTestscCsBdddg}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�rkr�r=Nrl)rfrnr'r)rrmr�_r;r	r	r
�test_expect�s
zExpectTests.test_expectN)r1r2r3r�r	r	r	r
r��sr��__main__)rrOrr�
contextlibr�rZunittestrrZTestCaser�objectr4rrEZBaseSelectorrK�contextmanagerr^rfrgrjr�r�r�r�r�r1�mainr	r	r	r
�<module>s0B 

bP