Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_telnetlib.cpython-34.pyc

�
f f�2�@s�ddlZddlZddlZddlZddlZddlmZddlmZej	d�Z
ejZdd�ZGdd�de�Z
Gd	d
�d
e�ZGdd�dej�ZGd
d�dej�Zejdd��Zfedd�ZGdd�de�ZGdd�de�ZGdd�de�ZeZGdd�de�ZGdd�de�ZGdd�de�Zddd �Zed!kr�e�ndS)"�N)�TestCase)�support�	threadingcCse|jd�|j�z<y |j�\}}|j�Wntjk
rQYnXWd|j�XdS)N�)Zlisten�setZaccept�close�socket�timeout)�evtZservZconnZaddr�r�8/opt/alt/python34/lib64/python3.4/test/test_telnetlib.py�server
s

	r
c@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)rZEventr
rZAF_INETZSOCK_STREAM�sockZ
settimeoutrZ	bind_port�portZThreadr
�threadZ	setDaemon�start�wait)�selfrrr�setUps'
zGeneralTests.setUpcCs|jj�|`dS)N)r�join)rrrr�tearDown$s
zGeneralTests.tearDowncCs&tjt|j�}|jj�dS)N)�	telnetlib�Telnet�HOSTrrr)r�telnetrrr�	testBasic(szGeneralTests.testBasiccCsz|jtj�dk�tjd�ztjt|j�}Wdtjd�X|j|j	j
�d�|j	j�dS)N�)�
assertTruer�getdefaulttimeout�setdefaulttimeoutrrrr�assertEqualr�
gettimeoutr)rrrrr�testTimeoutDefault-s
zGeneralTests.testTimeoutDefaultcCs�|jtj�dk�tjd�ztjt|jdd�}Wdtjd�X|j|jj	�dk�|jj
�dS)Nr r	)r!rr"r#rrrrrr%r)rrrrr�testTimeoutNone7s
zGeneralTests.testTimeoutNonecCsEtjt|jdd�}|j|jj�d�|jj�dS)Nr	r )rrrrr$rr%r)rrrrr�testTimeoutValueBszGeneralTests.testTimeoutValuecCsOtj�}|jt|jdd�|j|jj�d�|jj�dS)Nr	r )	rr�openrrr$rr%r)rrrrr�testTimeoutOpenGszGeneralTests.testTimeoutOpencCsgtjt|jdd�}|j}|j|j�|�|j|j�|j��|jj�dS)Nr	r )	rrrrrr$Z
get_socket�filenor)rrZt_sockrrr�testGettersMs
	zGeneralTests.testGettersN)�__name__�
__module__�__qualname__rrrr&r'r(r*r,rrrrrs

rc@s=eZdZdZfdd�Zdd�Zdd�ZdS)	�
SocketStubz* a socket proxy that re-defines sendall() cCs%t|�|_g|_d|_dS)NF)�list�reads�writes�block)rr2rrr�__init__Ws	zSocketStub.__init__cCs|jj|�dS)N)r3�append)r�datarrr�sendall[szSocketStub.sendallcCs�d}x5|jr=t|�|kr=||jjd�7}q	Wt|�|kr�|jjd||d��|d|�}n|S)N�r)r2�len�pop�insert)r�size�outrrr�recv]szSocketStub.recvN)r-r.r/�__doc__r5r8r?rrrrr0Usr0c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TelnetAlikecCs
t��dS)N)�NotImplementedError)rrrrr+gszTelnetAlike.filenocCsdS)Nr)rrrrriszTelnetAlike.closecCs|jjS)N)rr4)rrrr�
sock_availjszTelnetAlike.sock_availcGsDtj��}tjj|||�WdQX|j|j�7_dS)N)rZcaptured_stdoutrr�msg�	_messages�getvalue)rrDrr>rrrrDlszTelnetAlike.msgN)r-r.r/r+rrCrDrrrrrAfsrAc@sdeZdZdd�Zedd��Zddd�Zdd	�Zdd
d�Zdd
�Z	dS)�MockSelectorcCs
i|_dS)N)�keys)rrrrr5tszMockSelector.__init__cCsdS)Ng����MbP?r)rrrr�
resolutionwszMockSelector.resolutionNcCs)tj|d||�}||j|<|S)Nr)�	selectorsZSelectorKeyrH)r�fileobj�eventsr7�keyrrr�register{s
zMockSelector.registercCs|jj|�S)N)rHr;)rrKrrr�
unregister�szMockSelector.unregistercCsad}x0|jD]%}t|t�r|jj}PqqW|rCgSdd�|jj�D�SdS)NFcSsg|]}||jf�qSr)rL)�.0rMrrr�
<listcomp>�s	z'MockSelector.select.<locals>.<listcomp>)rH�
isinstancerArr4�values)rr	r4rKrrr�select�szMockSelector.selectcCs|jS)N)rH)rrrr�get_map�szMockSelector.get_map)
r-r.r/r5�propertyrIrNrOrTrUrrrrrGrsrGc#s>�fdd�}ztj}|t_dVWd|t_XdS)Ncs
t��S)N)r0)Zignored)r2rr�new_conn�sztest_socket.<locals>.new_conn)rZcreate_connection)r2rWZold_connr)r2r�test_socket�s			
rXc
Cs^x,|D]$}t|�tkst|��qWt|��|dd�}d|_WdQX|S)za return a telnetlib.Telnet object that uses a SocketStub with
        reads queued up to be read �dummyr�N)�type�bytes�AssertionErrorrXrE)r2�cls�xrrrr�test_telnet�s
"
r`c@s(eZdZdd�Zdd�ZdS)�ExpectAndReadTestCasecCstj|_tt_dS)N)r�_TelnetSelector�old_selectorrG)rrrrr�szExpectAndReadTestCase.setUpcCs|jt_dS)N)rcrrb)rrrrr�szExpectAndReadTestCase.tearDownN)r-r.r/rrrrrrra�srac@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
        sxxxmatchyyysmatchsxxxmatchrD�x�2�yr9N����)r`Z
read_untilr$ZcookedqZrawqrr2r)r�wantrr7r2�expectrrr�test_read_until�s	+zReadTests.test_read_untilcCsVddddddg}dj|�}t|�}|j�}|j||�dS)zJ
        read_all()
          Read all data until EOF; may block.
        rei�rg�zr9N)rr`�read_allr$)rr2rkrr7rrr�
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.
        rei�rhr9N)r`Z	read_somer!r:r$)rrr7rrr�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.
        re�dTr9FN)r`�getattrrr4r$�EOFError)rZ	func_namerjr�funcr7rrr�_read_eager�s


zReadTests._read_eagercCs|jd�|jd�dS)NZ
read_eagerZread_very_eager)ru)rrrr�test_read_eager�s
zReadTests.test_read_eagercCsdd}t|g�}|jd|j��x|jjrK|j�q2W|j�}|j||�|jt|j�dS)Nrerqr9)r`r$�read_very_lazyrr2�	fill_rawqZassertRaisesrs)rrjrr7rrrrw�s
zReadTests.read_very_lazycCs�dd}t|g�}|jd|j��d}x]y-|j�}||7}|sd|j�nWntk
rzPYnX|j|j|��q8W|j||�dS)Nrerqr9)r`r$Z	read_lazyrxrsr!�
startswith)rrjrr7Z	read_datarrr�test_read_lazys


zReadTests.test_read_lazyN)
r-r.r/rlrorprurvrwrzrrrrrd�s
rdc@s+eZdZddd�Zdd�ZdS)�nego_collectorNcCsd|_||_d|_dS)Nr9)�seen�	sb_getter�sb_seen)rr}rrrr5s		znego_collector.__init__cCsM|j||7_|tjkrI|jrI|j�}|j|7_ndS)N)r|�tl�SEr}r~)rr�cmdZoptZsb_datarrr�do_negosznego_collector.do_nego)r-r.r/r5r�rrrrr{sr{c@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 iacsr9)	r�IACr`�writerrr3r$�replace)rZdata_sampler7rZwrittenrrr�
test_write#s	
	
zWriteTests.test_writeN)r-r.r/r@r�rrrr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 r9rNrh�)r`r:rr{�set_option_negotiation_callbackr�rnr|r!�assertIn�cmdsr$rZNOOPTr})rr7rZdata_len�nego�txtr�rrr�
_test_command3s		zOptionTests._test_commandcCs�xg|jD]\}|jtj|g�|jddtj|ddg�|jdtj|dg�q
W|jdd�|jD��dS)	Nrerqrg�
cSsg|]}tj|�qSr)rr�)rPr�rrrrQGs	z1OptionTests.test_IAC_commands.<locals>.<listcomp>s
xxxxxxxxxxs
yyyyyyyyyy)r�r�rr�)rr�rrr�test_IAC_commandsAs
$ zOptionTests.test_IAC_commandscCs|tjtjtjtjtjtjtjtjtjtjtjtjtjtjdtjtjtjtjdtjtjtjtjtjtjdtjtjdtjtjg}t|�}t|j�}|j|j�|j	�}|j
|d�tjtjdtjdtjd}|j
|j|�|j
d|j��d|_dS)Nsaasbbsccsddr9saabb)
rr�ZSBr�r`r{Zread_sb_datar�r�rnr$r~r})r�sendrr�r�Zwant_sb_datarrr�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
rhz: IAC DO 1
z
: IAC DONT 1
z
: IAC WILL 1
z
: IAC WONT 1
)r�r�)rr�r\ZDOZDONTZWILLZWONTr`�set_debuglevelrnr�rE)rZgiven_a_expect_b�a�brr�rrr�test_debuglevel_reads[s   &
z!OptionTests.test_debuglevel_readscCs@t�}|jd�|jd�d}|j||j�dS)Nrhsxxxzsend b'xxx'
)r`r�r�r�rE)rrZexpectedrrr�test_debuglevel_writens
	

z!OptionTests.test_debuglevel_writec
Cs\tg��tdd�}d|_WdQX|jd�|jd�|j|jd�dS)NrY�0rZrh�testz0.*test)rXrArEr�rDZassertRegex)rrrrr�test_debug_accepts_str_portus


z'OptionTests.test_debug_accepts_str_portN)r-r.r/rZAOZAYTZBRKZECZELZGAZIPZNOPr�r�r�r�r�r�r�rrrr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.
        rer�smatchrgr9Nrhs
xxxxxxxxxxs
yyyyyyyyyyri)r`rkr$r)rrjr�_r7rrr�test_expect�szExpectTests.test_expectN)r-r.r/r�rrrrr�sr�cCstjttttt�dS)N)rZrun_unittestrrdr�r�r�)�verboserrr�	test_main�sr��__main__) rrJrZtime�
contextlibZunittestrr�r�
import_modulerrr
r�objectr0rrAZBaseSelectorrG�contextmanagerrXr`rardr{rr�r�r�r�r-rrrr�<module>s2	= 
bP