Your IP : 216.73.216.60


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.opt-1.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	Cs2|D]}qt|��|dd�}d|_W5QRX|S)za return a telnetlib.Telnet object that uses a SocketStub with
        reads queued up to be read �dummyr�)r^rI)r6�cls�xrr	r	r
�test_telnet�s

rcc@seZdZdd�Zdd�ZdS)�ExpectAndReadTestCasecCstj|_tt_dSr)r�_TelnetSelector�old_selectorrKrr	r	r
r�szExpectAndReadTestCase.setUpcCs|jt_dSr)rfrrerr	r	r
r�szExpectAndReadTestCase.tearDownN)r1r2r3rrr	r	r	r
rd�srdc@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���)rcZ
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)rrc�read_allr')rr6rkrr;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.
        rm�r=N)rcZ	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)rc�getattrrr8r'�EOFError)rZ	func_namerjr�funcr;r	r	r
�_read_eager�s

zReadTests._read_eagercCs|�d�|�d�dS)NZ
read_eagerZread_very_eager)rvrr	r	r
�test_read_eager�s
zReadTests.test_read_eagercCsVd}t|g�}|�d|���|jjr0|��q|��}|�||�|�t|j�dS�Nrrr=)rcr'�read_very_lazyrr6�	fill_rawqZassertRaisesrt)rrjrr;r	r	r
ry�s

zReadTests.read_very_lazycCs~d}t|g�}|�d|���d}z |��}||7}|s@|��Wntk
rZYqnYnX|�|�|��q"|�||�dSrx)rcr'Z	read_lazyrzrtr$�
startswith)rrjrr;Z	read_datar	r	r
�test_read_lazys

zReadTests.test_read_lazyN)
r1r2r3rlrorqrvrwryr|r	r	r	r
rg�s
rgc@seZdZddd�Zdd�ZdS)�nego_collectorNcCsd|_||_d|_dS)Nr=)�seen�	sb_getter�sb_seen)rrr	r	r
r9sznego_collector.__init__cCs<|j||7_|tjkr8|jr8|��}|j|7_dSr)r~�tl�SErr�)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��IACrc�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=rNrp�)rcr>rr}�set_option_negotiation_callbackr�rnr~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)Nrrsdyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy�
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�rcr}Zread_sb_datar�r�rnr'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
rpz: IAC DO 1
z
: IAC DONT 1
z
: IAC WILL 1
z
: IAC WONT 1
)r�r��bytesZDOZDONTZWILLZWONTrc�set_debuglevelrnr�rI)rZgiven_a_expect_b�a�brr�r	r	r
�test_debuglevel_reads_s�


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


z!OptionTests.test_debuglevel_writec	CsJtg��tdd�}d|_W5QRX|�d�|�d�|�|jd�dS)Nr_�0r`rp�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�rhr�r=Nri)rcrkr'r)rrjr�_r;r	r	r
�test_expect�s
zExpectTests.test_expectN)r1r2r3r�r	r	r	r
r��sr��__main__)rrOrr�
contextlibr�rZunittestrrZTestCaser�objectr4rrEZBaseSelectorrK�contextmanagerr^rcrdrgr}r�r�r�r�r1�mainr	r	r	r
�<module>s0B 

bP