Your IP : 216.73.217.129


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_telnetlib.cpython-35.opt-1.pyc



��Yf?2�@s�ddlZddlZddlZddlZddlZddlmZddlZejd�Z	ej
Z
dd�ZGdd�dej�Z
Gdd	�d	e�ZGd
d�dej�ZGdd
�d
ej�Zejdd��Zfedd�ZGdd�dej�ZGdd�de�ZGdd�de�ZeZGdd�dej�ZGdd�dej�ZGdd�de�Zedkr�ej�dS)�N)�support�	threadingcCsb|j�|j�z<y |j�\}}|j�Wntjk
rNYnXWd|j�XdS)N)Zlisten�setZaccept�close�socket�timeout)�evtZservZconnZaddr�r	�8/opt/alt/python35/lib64/python3.5/test/test_telnetlib.py�server
s

	rc@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�GeneralTestscCs�tj�|_tjtjtj�|_|jjd�tj	|j�|_
tjdtd|j|jf�|_
|j
jd�|j
j�|jj�dS)N�<�target�argsT)rZEventrrZAF_INETZSOCK_STREAM�sockZ
settimeoutrZ	bind_port�portZThreadr�threadZ	setDaemon�start�wait)�selfr	r	r
�setUps'
zGeneralTests.setUpcCs|jj�|`dS)N)r�join)rr	r	r
�tearDown$s
zGeneralTests.tearDowncCs&tjt|j�}|jj�dS)N)�	telnetlib�Telnet�HOSTrrr)r�telnetr	r	r
�	testBasic(szGeneralTests.testBasiccCsz|jtj�dk�tjd�ztjt|j�}Wdtjd�X|j|j	j
�d�|j	j�dS)N�)�
assertTruer�getdefaulttimeout�setdefaulttimeoutrrrr�assertEqualr�
gettimeoutr)rrr	r	r
�testTimeoutDefault-s
zGeneralTests.testTimeoutDefaultcCs�|jtj�dk�tjd�ztjt|jdd�}Wdtjd�X|j|jj	�dk�|jj
�dS)Nrr)rrr r!rrrrrr#r)rrr	r	r
�testTimeoutNone7s
zGeneralTests.testTimeoutNonecCsEtjt|jdd�}|j|jj�d�|jj�dS)Nrr)rrrrr"rr#r)rrr	r	r
�testTimeoutValueBszGeneralTests.testTimeoutValuecCsOtj�}|jt|jdd�|j|jj�d�|jj�dS)Nrr)	rr�openrrr"rr#r)rrr	r	r
�testTimeoutOpenGszGeneralTests.testTimeoutOpencCsgtjt|jdd�}|j}|j|j�|�|j|j�|j��|jj�dS)Nrr)	rrrrrr"Z
get_socket�filenor)rrZt_sockr	r	r
�testGettersMs
	zGeneralTests.testGettersN)�__name__�
__module__�__qualname__rrrr$r%r&r(r*r	r	r	r
rs

rc@s=eZdZdZfdd�Zdd�Zdd�ZdS)	�
SocketStubz* a socket proxy that re-defines sendall() cCs%t|�|_g|_d|_dS)NF)�list�reads�writes�block)rr0r	r	r
�__init__Ws	zSocketStub.__init__cCs|jj|�dS)N)r1�append)r�datar	r	r
�sendall[szSocketStub.sendallcCs�d}x5|jr=t|�|kr=||jjd�7}q	Wt|�|kr}|jjd||d��|d|�}|S)N�r)r0�len�pop�insert)r�size�outr	r	r
�recv]szSocketStub.recvN)r+r,r-�__doc__r3r6r=r	r	r	r
r.Usr.c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TelnetAlikecCs
t��dS)N)�NotImplementedError)rr	r	r
r)gszTelnetAlike.filenocCsdS)Nr	)rr	r	r
riszTelnetAlike.closecCs|jjS)N)rr2)rr	r	r
�
sock_availjszTelnetAlike.sock_availcGsEtj��}tjj|||�WdQRX|j|j�7_dS)N)rZcaptured_stdoutrr�msg�	_messages�getvalue)rrBrr<r	r	r
rBlszTelnetAlike.msgN)r+r,r-r)rrArBr	r	r	r
r?fsr?c@sdeZdZdd�Zedd��Zddd�Zdd	�Zdd
d�Zdd
�Z	dS)�MockSelectorcCs
i|_dS)N)�keys)rr	r	r
r3tszMockSelector.__init__cCsdS)Ng����MbP?r	)rr	r	r
�
resolutionwszMockSelector.resolutionNcCs)tj|d||�}||j|<|S)Nr)�	selectorsZSelectorKeyrF)r�fileobj�eventsr5�keyr	r	r
�register{s
zMockSelector.registercCs|jj|�S)N)rFr9)rrIr	r	r
�
unregister�szMockSelector.unregistercCs^d}x-|jD]"}t|t�r|jj}PqW|r@gSdd�|jj�D�SdS)NFcSsg|]}||jf�qSr	)rJ)�.0rKr	r	r
�
<listcomp>�s	z'MockSelector.select.<locals>.<listcomp>)rF�
isinstancer?rr2�values)rrr2rIr	r	r
�select�szMockSelector.selectcCs|jS)N)rF)rr	r	r
�get_map�szMockSelector.get_map)
r+r,r-r3�propertyrGrLrMrRrSr	r	r	r
rErsrEc#s>�fdd�}ztj}|t_dVWd|t_XdS)Ncs
t��S)N)r.)Zignored)r0r	r
�new_conn�sztest_socket.<locals>.new_conn)rZcreate_connection)r0rUZold_connr	)r0r
�test_socket�s			
rVc
CsAx|D]}qWt|��|dd�}d|_WdQRX|S)za return a telnetlib.Telnet object that uses a SocketStub with
        reads queued up to be read �dummyr�N)rVrC)r0�cls�xrr	r	r
�test_telnet�s

r[c@s(eZdZdd�Zdd�ZdS)�ExpectAndReadTestCasecCstj|_tt_dS)N)r�_TelnetSelector�old_selectorrE)rr	r	r
r�szExpectAndReadTestCase.setUpcCs|jt_dS)N)r^rr])rr	r	r
r�szExpectAndReadTestCase.tearDownN)r+r,r-rrr	r	r	r
r\�sr\c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�	ReadTestscCs�dg}t|�}|jd�}|j|dd|j|j|jjf�dddddg}dj|d	d��}t|�}|jd�}|j||�d	S)zc
        read_until(expected, timeout=None)
        test the blocking version of read_util
        sxxxmatchyyysmatchsxxxmatchrB�x�2�yr7N����)r[Z
read_untilr"ZcookedqZrawqrr0r)r�wantrr5r0�expectr	r	r
�test_read_until�s	+zReadTests.test_read_untilcCsVddddddg}dj|�}t|�}|j�}|j||�dS)zJ
        read_all()
          Read all data until EOF; may block.
        r`i�rb�zr7N)rr[�read_allr")rr0rfrr5r	r	r
�
test_read_all�szReadTests.test_read_allcCsatddg�}|j�}|jt|�dk�t�}|j�}|jd|�dS)zQ
        read_some()
          Read at least one byte or EOF; may block.
        r`i�rcr7N)r[Z	read_somerr8r")rrr5r	r	r
�test_read_some�s	zReadTests.test_read_somecCs�dd}t|g�}t||�}d|j_|jd|��d|j_d}x+y||�7}Wq\tk
r�PYq\Xq\W|j||�dS)z
        read_*_eager()
          Read all data available already queued or on the socket,
          without blocking.
        r`�dTr7FN)r[�getattrrr2r"�EOFError)rZ	func_namerer�funcr5r	r	r
�_read_eager�s


zReadTests._read_eagercCs|jd�|jd�dS)NZ
read_eagerZread_very_eager)rp)rr	r	r
�test_read_eager�s
zReadTests.test_read_eagercCsdd}t|g�}|jd|j��x|jjrK|j�q2W|j�}|j||�|jt|j�dS)Nr`rlr7)r[r"�read_very_lazyrr0�	fill_rawqZassertRaisesrn)rrerr5r	r	r
rr�s
zReadTests.read_very_lazycCs�dd}t|g�}|jd|j��d}xZy*|j�}||7}|sa|j�Wntk
rwPYnX|j|j|��q8W|j||�dS)Nr`rlr7)r[r"Z	read_lazyrsrnr�
startswith)rrerr5Z	read_datar	r	r
�test_read_lazys


zReadTests.test_read_lazyN)
r+r,r-rgrjrkrprqrrrur	r	r	r
r_�s
r_c@s+eZdZddd�Zdd�ZdS)�nego_collectorNcCsd|_||_d|_dS)Nr7)�seen�	sb_getter�sb_seen)rrxr	r	r
r3s		znego_collector.__init__cCsJ|j||7_|tjkrF|jrF|j�}|j|7_dS)N)rw�tl�SErxry)rr�cmdZoptZsb_datar	r	r
�do_negosznego_collector.do_nego)r+r,r-r3r}r	r	r	r
rvsrvc@s"eZdZdZdd�ZdS)�
WriteTestszKThe only thing that write does is replace each tl.IAC for
    tl.IAC+tl.IACcCs�ddtjddtjtjdtjtjdg}xb|D]Z}t�}|j|�dj|jj�}|j|jtjtjtj�|�qCWdS)Nsdata sample without IACsdata sample withs one IACsa fews iacsr7)	rz�IACr[�writerrr1r"�replace)rZdata_sampler5rZwrittenr	r	r
�
test_write#s	
	
zWriteTests.test_writeN)r+r,r-r>r�r	r	r	r
r~sr~c@s�eZdZejejejejejej	ej
ejgZdd�Z
dd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�OptionTestscCs�t|�}tdj|��}t�}|j|j�|j�}|j}|jt|�dk�|j	|dd�|j
�|j|dd�tj
�|j|t||��d|_dS)z helper for testing IAC + cmd r7rNrc�)r[r8rrv�set_option_negotiation_callbackr}rirwr�assertIn�cmdsr"rzZNOOPTrx)rr5rZdata_len�nego�txtr|r	r	r
�
_test_command3s		zOptionTests._test_commandcCs�xg|jD]\}|jtj|g�|jddtj|ddg�|jdtj|dg�q
W|jdd�|jD��dS)	Nr`rlrb�
cSsg|]}tj|�qSr	)rzr)rNr|r	r	r
rOGs	z1OptionTests.test_IAC_commands.<locals>.<listcomp>s
xxxxxxxxxxs
yyyyyyyyyy)r�r�rzr)rr|r	r	r
�test_IAC_commandsAs
$ zOptionTests.test_IAC_commandscCs|tjtjtjtjtjtjtjtjtjtjtjtjtjtjdtjtjtjtjdtjtjtjtjtjtjdtjtjdtjtjg}t|�}t|j�}|j|j�|j	�}|j
|d�tjtjdtjdtjd}|j
|j|�|j
d|j��d|_dS)Nsaasbbsccsddr7saabb)
rzrZSBr{r[rvZread_sb_datar�r}rir"ryrx)r�sendrr�r�Zwant_sb_datar	r	r
�test_SB_commandsIs)--7*zOptionTests.test_SB_commandscCs�d
tjtdg�dftjtjtdg�dftjtjtdg�dftjtjtdg�dftjtjtdg�d	fg}xO|D]G\}}t|g�}|jd�|j	�}|j
||j�q�WdS)N�a�: recv b''
�Xz: IAC 88 not recognized
rcz: IAC DO 1
z
: IAC DONT 1
z
: IAC WILL 1
z
: IAC WONT 1
)r�r�)rzr�bytesZDOZDONTZWILLZWONTr[�set_debuglevelrir�rC)rZgiven_a_expect_b�a�brr�r	r	r
�test_debuglevel_reads[s   &
z!OptionTests.test_debuglevel_readscCs@t�}|jd�|jd�d}|j||j�dS)Nrcsxxxzsend b'xxx'
)r[r�r�r�rC)rrZexpectedr	r	r
�test_debuglevel_writens
	

z!OptionTests.test_debuglevel_writec
Cs]tg��tdd�}d|_WdQRX|jd�|jd�|j|jd�dS)NrW�0rXrc�testz0.*test)rVr?rCr�rBZassertRegex)rrr	r	r
�test_debug_accepts_str_portus


z'OptionTests.test_debug_accepts_str_portN)r+r,r-rzZAOZAYTZBRKZECZELZGAZIPZNOPr�r�r�r�r�r�r�r	r	r	r
r�/s6r�c@seZdZdd�ZdS)�ExpectTestscCs]ddd	g}t|�}|jdg�\}}}|j|dj|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`r�smatchrbr7Nrcs
xxxxxxxxxxs
yyyyyyyyyyrd)r[rfr"r)rrer�_r5r	r	r
�test_expect�szExpectTests.test_expectN)r+r,r-r�r	r	r	r
r�sr��__main__) rrHrZtime�
contextlibr�rZunittest�
import_modulerrrZTestCaser�objectr.rr?ZBaseSelectorrE�contextmanagerrVr[r\r_rvrzr~r�r�r+�mainr	r	r	r
�<module>s0	= 
bP