Your IP : 216.73.216.196


Current Path : /opt/alt/python37/lib64/python3.7/test/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/test/__pycache__/test_uu.cpython-37.pyc

B

� fV#�@s�dZddlZddlmZddlZddlZddlZddlZddlZdZ	dZ
Gdd�dej�Zdd	d
�Z
Gdd�dej�ZGd
d�dej�ZGdd�dej�Zedkr�e��dS)z%
Tests for uu module.
Nick Mathewson
�N)�supports7The symbols on top of your keyboard are !@#$%^&*()_+|~
sOM5&AE('-Y;6)O;',@;VX@=&]P(&]F('EO=7(@:V5Y8F]A<F0@87)E("% (R0E
*7B8J*"E?*WQ^"@  cs*eZdZdZd
�fdd�	Zdd	�Z�ZS)�FakeIOz�Text I/O implementation using an in-memory buffer.

    Can be a used as a drop-in replacement for sys.stdin and sys.stdout.
    ��utf-8�strict�
csVtt|�jt��|||d�||_||_|rRt|t�s>t|�}|�	|�|�
d�dS)N)�encoding�errors�newliner)�superr�__init__�io�BytesIO�	_encoding�_errors�
isinstance�str�write�seek)�selfZ
initial_valuerr	r
)�	__class__��1/opt/alt/python37/lib64/python3.7/test/test_uu.pyrs

zFakeIO.__init__cCs|��|j���|j|j�S)N)�flush�buffer�getvalue�decoderr)rrrrr,szFakeIO.getvalue)rrrr)�__name__�
__module__�__qualname__�__doc__rr�
__classcell__rr)rrrs
rFcCsF|r(td||fd�t�dd�d}ntd||fd�td}|S)Nzbegin %03o %s
�ascii� �`s
`
end
s
 
end
)�bytes�encodedtext�replace)�mode�filename�backtickZresrrr�encodedtextwrapped1s$r+c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�UUTestc	Cs�t�t�}t��}t�||d�|�|��tdd��t�t�}t��}t�||dd�|�|��tdd��t�t�}t��}tj||ddd�|�|��tddd��|�t	��t�||ddd�WdQRXdS)N�t1i�i�T)r*)
r
r�	plaintext�uu�encode�assertEqualrr+�assertRaises�	TypeError)r�inp�outrrr�test_encode<s


zUUTest.test_encodec	Cs�x�dD]x}t�tdd|d��}t��}t�||�|�|��t�t�dtdd|d��}t��}t�||�|�|��t�qWdS)N)TFi�r-)r*sMUUencoded files may contain many lines,
even some that have 'begin' in them.
)r
rr+r/rr1rr.)rr*r4r5rrr�test_decodeLs
zUUTest.test_decodec
Csjt�dt�}t��}yt�||�|�d�Wn4tjk
rd}z|�t|�d�Wdd}~XYnXdS)Ns
begin 644 t1
zNo exception raisedzTruncated input file)	r
rr&r/r�fail�Errorr1r)rr4r5�errr�test_truncatedinput[szUUTest.test_truncatedinputc
Csft�d�}t��}yt�||�|�d�Wn4tjk
r`}z|�t|�d�Wdd}~XYnXdS)N�zNo exception raisedz'No valid begin line found in input file)r
rr/rr8r9r1r)rr4r5r:rrr�test_missingbeginds
zUUTest.test_missingbeginc	
Cs�d}d}d}x�||fD]�}|�d��8t�|�}t��}tj||dd�|�|��|�WdQRX|�d��&ddl}|�|d�}|�||�WdQRXqWdS)	Nsbegin 644 file
!,___
 
end
sbegin 644 file
!,___
`
end
�3zuu.decode()T)�quiet�uu_codecr)ZsubTestr
rr/rr1r�codecs)	rZencodedtext1Zencodedtext2r.r&r4r5rAZdecodedrrr�test_garbage_paddingms
zUUTest.test_garbage_paddingcCs<t�t�}t��}d}d}t�|||�|�||���dS)Nztest.txt

overflow.txtstest.txt\n\roverflow.txt)r
rr.r/r0ZassertInr)rr4r5r)Zsafefilenamerrr�test_newlines_escaped�s
zUUTest.test_newlines_escapedc	Cs�d}|�tjd��t�t�|��WdQRXtjrj|�dd�}|�tjd��t�t�|��WdQRXd}|�tjd��t�t�|��WdQRXtjr�|�dd�}|�tjd��t�t�|��WdQRXdS)Ns<begin 644 ../../../../../../../../tmp/test1
$86)C"@``
`
end
Z	directory�/�\s%begin 644 /tmp/test2
$86)C"@``
`
end
)	ZassertRaisesRegexr/r9rr
r�os�altsepr')rZrelative_badZrelative_bad_bsZabsolute_badZabsolute_bad_bsrrr�test_no_directory_traversal�sz"UUTest.test_no_directory_traversalN)
rrrr6r7r;r=rBrCrHrrrrr,:s			r,c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�UUStdIOTestcCstj|_tj|_dS)N)�sys�stdin�stdout)rrrr�setUp�szUUStdIOTest.setUpcCs|jt_|jt_dS)N)rKrJrL)rrrr�tearDown�szUUStdIOTest.tearDowncCsJtt�d��t_t�t_t�dddd�|�tj�	�t
dd��d��dS)Nr"�-r-i�)rr.rrJrKrLr/r0r1rr+)rrrrr6�s
zUUStdIOTest.test_encodecCsZttdd��d��t_t�t_t�dd�tj}|jt_|jt_|�|��t	�d��dS)Ni�r-r"rO)
rr+rrJrKrLr/r1rr.)rrLrrrr7�szUUStdIOTest.test_decodeN)rrrrMrNr6r7rrrrrI�srIc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�
UUFileTestcCs<tjd|_tjd|_|�tj|j�|�tj|j�dS)N�i�o)rZTESTFN�tmpin�tmpout�
addCleanup�unlink)rrrrrM�szUUFileTest.setUpc
Cs�t|jd��}|�t�WdQRXt|jd��2}t|jd��}tj|||jdd�WdQRXWdQRXt|jd��}|��}WdQRX|�|t	d|j��tj|j|j|jdd�t|jd��}|��}WdQRX|�|t	d|j��dS)N�wb�rbi�)r()
�openrSrr.rTr/r0�readr1r+)rZfinZfout�srrrr6�s(zUUFileTest.test_encodec	Cs|t|jd��}|�td|j��WdQRXt|jd��}t�|�WdQRXt|jd��}|��}WdQRX|�|t	�dS)NrWi�rX)
rYrSrr+rTr/rrZr1r.)r�fr[rrrr7�szUUFileTest.test_decodec	Csft|jd��}|�td|j��WdQRXt�|j�t|jd��}|��}WdQRX|�|t	�dS)NrWi�rX)
rYrSrr+rTr/rrZr1r.)rr\r[rrr�test_decode_filename�szUUFileTest.test_decode_filenamec	Cszt|jd��}|�td|j��WdQRXt|jd��}t�|�WdQRXt|jd��}|�tjtj|�WdQRXdS)NrWi�rX)	rYrSrr+rTr/rr2r9)rr\rrr�test_decodetwice�szUUFileTest.test_decodetwicec	Cs�d}t|jd��}|�t||j��WdQRX|�tj|j|tj	B�t|jd��}t
�|�WdQRX|�t�
t�|j�j�|�dS)Ni$rWrX)rYrSrr+rTrUrF�chmod�stat�S_IWRITEr/rr1�S_IMODE�st_mode)rZ
expected_moder\rrr�test_decode_modeszUUFileTest.test_decode_modeN)	rrrrMr6r7r]r^rdrrrrrP�s

rP�__main__)F)r ZunittestZtestrrFr`rJr/r
r.r&�
TextIOWrapperrr+ZTestCaser,rIrPr�mainrrrr�<module>s 
	vL