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_base64.cpython-34.pyo

�
g f�s�@s�ddlZddlmZddlZddlZddlZddlZddlZddlZddl	m	Z	Gdd�dej
�ZGdd�dej
�ZGdd	�d	ej
�Z
d
d�Zedkr�e�ndS)
�N)�support)�arrayc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�LegacyBase64TestCasecCs}|jt|d�|jt|g�td�jdd�}|jt||�td�jd�}|jt||�dS)N�s1234�B��I)rr)�assertRaises�	TypeError�
memoryview�cast)�self�f�multidimensional�int_data�r�5/opt/alt/python34/lib64/python3.4/test/test_base64.py�check_type_errorssz&LegacyBase64TestCase.check_type_errorscCs�|j}|tjd�d�|tjd�d�|tjd�d�|tjd�d�|tjd	�d	�|tjd
�d�|tjtd��d�|tjtd��d�|tjtdd��d�|jtj�dS)
Nswww.python.orgsd3d3LnB5dGhvbi5vcmc=
�asYQ==
sabsYWI=
sabcsYWJj
�sRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}srYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==
r)�assertEqual�base64Zencodebytes�	bytearrayrrr)r
�eqrrr�test_encodebytess	z%LegacyBase64TestCase.test_encodebytescCs�|j}|tjd�d�|tjd�d�|tjd�d�|tjd�d�|tjd	�d
�|tjd�d�|tjtd��d�|tjtd��d�|tjtdd��d�|jtj�dS)
Nsd3d3LnB5dGhvbi5vcmc=
swww.python.orgsYQ==
rsYWI=
sabsYWJj
sabcsrYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==
sRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}rr)rrZdecodebytesrrrr)r
rrrr�test_decodebytes*s	z%LegacyBase64TestCase.test_decodebytescCs�|j}ddlm}m}|d�}|�}tj||�||j�d�|jttj|d�|��|jttj|d�|��|jttj|d�|��dS)Nr)�BytesIO�StringIOsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}srYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==
�abcsabc)	r�iorrr�encode�getvaluer	r
)r
rrr�infp�outfprrr�test_encode=s		""z LegacyBase64TestCase.test_encodecCs�ddlm}m}|d�}|�}tj||�|j|j�d�|jttj	|d�|��|jttj	|d�|��|jttj	|d�|��dS)Nr)rrsd3d3LnB5dGhvbi5vcmc=swww.python.orgzYWJj
sYWJj
)
rrrr�decoderr!r	r
r )r
rrr"r#rrr�test_decodeNs	""z LegacyBase64TestCase.test_decodeN)�__name__�
__module__�__qualname__rrrr$r&rrrrrs
rc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3S)4�BaseXYTestCasecCs*|jt|d�|jt|g�dS)Nr)r	r
)r
rrrr�check_encode_type_errors^sz'BaseXYTestCase.check_encode_type_errorscCs|jt|g�dS)N)r	r
)r
rrrr�check_decode_type_errorsbsz'BaseXYTestCase.check_decode_type_errorscCs�|j}t|�}|||�|�|||�||t|��|�||td|��|�|jtj|�|jtj|�dS)Nr)rrrr�check_nonbyte_element_formatr�	b64encode�check_multidimensional)r
r�
bytes_dataZexpectedr�brrr�check_other_typeses	
z BaseXYTestCase.check_other_typescCstt|�drdnd}||}t|�ddf}t|�jd|�}|j||�||��dS)Nrsrr)�lenrrr)r
r�data�paddingr0�shaperrrrr/qs

z%BaseXYTestCase.check_multidimensionalcCsWddt|�d}||}t|�jd�}|j||�||��dS)Ns�r)r3rrr)r
rr4r5r0rrrrr-xs
z+BaseXYTestCase.check_nonbyte_element_formatcCsT|j}|tjd�d�|tjd�d�|tjd�d�|tjd�d�|tjd	�d
�|tjd�d�|tjd�d
�|tjddd�d�|tjddtd��d�|tjddtd��d�|tjddtdd��d�|jtjdd�|jtj�|jt	tjddd�|tj
d�d�|tj
d�d�|tj
d�d�|tj
d	�d
�|tj
d�d�|tj
d�d
�|jtj
dd�|jtj
�|tjd�d�|jtjdd�|jtj�dS)Nswww.python.orgsd3d3LnB5dGhvbi5vcmc=ssAA==rsYQ==sabsYWI=sabcsYWJjrsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}spYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==s�V�o��altcharss*$s01a*b$cdrsabcdsYWJjZA==z*$s01a-b_cd)rrr.rrrr2r+r	r
Zstandard_b64encodeZurlsafe_b64encode)r
rrrr�test_b64encodesB	

zBaseXYTestCase.test_b64encodec
Cs~|j}idd6dd6dd6dd6d	d
6dd6d
d
6}xO|j�D]A\}}|tj|�|�|tj|jd��|�qMW|jtjd
d	�|jtj�idd6}x�|j�D]�\\}}}|jd�}|jd�}|tj|d|�|�|tj|d|�|�|tj|d|�|�|tj|d|�|�q�WxO|j�D]A\}}|tj|�|�|tj|jd��|�q�W|jtjd
d	�|jtj�idd6d
d
6}	xO|	j�D]A\}}|tj|�|�|tj|jd��|�qW|jtjdd�|jtj�dS)Nswww.python.orgsd3d3LnB5dGhvbi5vcmc=ssAA==rsYQ==sabsYWI=sabcsYWJjsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}sqYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==r�asciis�V�o��01a*b$cd�*$r8s01a-b_cd)r;r<)	r�itemsr�	b64decoder%r2r,�standard_b64decode�urlsafe_b64decode)
r
r�testsr4�resZtests_altcharsr8�data_strZaltchars_strZ
tests_urlsaferrr�test_b64decode�sD	

#
 #

#zBaseXYTestCase.test_b64decodecCs6|jtjtjd�|jtjtjd�dS)Nsabcr)r	�binascii�Errorrr>)r
rrr�test_b64decode_padding_error�sz+BaseXYTestCase.test_b64decode_padding_errorcCs�d}x�|D]�\}}|jtj|�|�|jtj|jd��|�|jtj��tj|dd�WdQX|jtj��!tj|jd�dd�WdQXq
WdS)N�%3d==���$3d==�[==r�YW]3=�am�3{d==�3d}==�@@�!�	YWJj
YWI=�abcabr:ZvalidateT�rHrI�rJrI�rKr�rLrM�rNrI�rOrI�rPr�rQr�rRrS)	rTrUrVrWrXrYrZr[r\)rrr>r%r	rErF)r
rAZbstrrBrrr�test_b64decode_invalid_chars�s "z+BaseXYTestCase.test_b64decode_invalid_charscCs�|j}|tjd�d�|tjd�d�|tjd�d�|tjd�d�|tjd�d	�|tjd
�d�|tjd�d
�|jtjd
d�|jtj�dS)NrssAA======rsME======sabsMFRA====sabcsMFRGG===sabcdsMFRGGZA=sabcdesMFRGGZDF)rrZ	b32encoder2r+)r
rrrr�test_b32encodes	zBaseXYTestCase.test_b32encodecCs�|j}idd6dd6dd6dd6dd	6d
d6dd
6}xO|j�D]A\}}|tj|�|�|tj|jd��|�qMW|jtjd	d�|jtj�dS)NrssAA======rsME======sabsMFRA====sabcsMFRGG===sabcdsMFRGGZA=sabcdesMFRGGZDFr:)rr=r�	b32decoder%r2r,)r
rrAr4rBrrr�test_b32decode
s	

#zBaseXYTestCase.test_b32decodec	Cs
|j}idd6dd6dd6dd6dd	6d
d6dd6dd
6dd6dd6d
d6}xU|j�D]G\}}|tj|d�|�|tj|jd�d�|�qiW|jtjtjd�|jtjtjd�|tjd�d�|tjd�d�idd6dd6}x�|j�D]�\\}}}|jd�}|jd�}|tj|d|�|�|tj|d|�|�|tj|d|�|�|tj|d|�|�|jtjtj|�|jtjtj|�q3WdS)NrrsME======sabsMFRA====sabcsMFRGG===sabcdsMFRGGZA=sabcdesMFRGGZDFsme======smfra====smfrgg===smfrggza=smfrggzdfTr:zme======sMLO23456sbݭ�ZMLO23456�M1023456�Lsb���I�map01)rarb)rarc)rr=rr_r%r	rErF)	r
rrAr4rBZ	map_testsrdrCZ	map01_strrrr�test_b32decode_casefolds<	

&

z&BaseXYTestCase.test_b32decode_casefoldcCssxldddgD][}|jtj��tj|�WdQX|jtj��tj|jd��WdQXqWdS)NsabcsABCDEF==s==ABCDEFr:)r	rErFrr_r%)r
r4rrr�test_b32decode_errorGs
z#BaseXYTestCase.test_b32decode_errorcCs_|j}|tjd�d�|tjd�d�|jtjdd�|jtj�dS)Ns���s
0102ABCDEFss00)rrZ	b16encoder2r+)r
rrrr�test_b16encodeNs	zBaseXYTestCase.test_b16encodecCsO|j}|tjd�d�|tjd�d�|tjd�d�|tjd�d�|jtjtjd�|jtjtjd�|tjdd	�d�|tjdd	�d�|jtjdd�|jtj�|tjtd�d	�d�|tjt	d�d	�d�|tjt
d
d�d	�d�dS)Ns
0102ABCDEFs���Z
0102ABCDEFs00sZ00s
0102abcdefZ
0102abcdefTr)rr�	b16decoder	rErFr2r,rrr)r
rrrr�test_b16decodeWs$	zBaseXYTestCase.test_b16decodecCs|j}i
dd6dd6dttd��6dd6dd	6d
d6dd
6dd6dd6dd6dd/6dd06dd16}xy|j�D]k\}}|tj|�||�|tj|dd�||�|tj|dd�d|d|�q�W|jtjdd�|jttjd�|tjdd d!dd�d"�|tjd#d d!dd�d$�|tjdd d!dd�d%�|tjd2d(ddd�d)�|tjd3d(ddd�d*�|tjd4d(ddd�d,�|tjd5d(ddd�d.�dS)6NrsGB\6`E-ZP=Df.1GEb>swww.python.orgs?!!*-'"9eu7#RLhG$k3[W&.oNg'GVB"(`=52*$$(B+<_pR,UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Ykm5X@_(6q'R884cEH9MJ8X:f1+h<)lt#=BSg3>[:ZC?t!MSA7]@cBPD3sCi+'.E,fo>FEMbNG^4U^I!pHnJ:W<)KS>/9Ll%"IN/`jYOHG]iPa.Q$R$jD4S=Q7DTV8*TUnsrdW2ZetXKAY/Yd(L?['d?O\@K2_]Y2%o^qmn*`5Ta:aN;TJbg"GZd*^:jeCE.%f\,!5gtgiEi8N\UjQ5OekiqBum-X60nF?)@o_%qPq"ad`r;HT�sg@:E_WAS,RgBkhF"D/O92EH6,BF`qtRH$VbC6UX@47n?3D92&&T:Jand;cHat='/U/0JP==1c70M3&r-I,;<FN.OZ`-3]oSW/g+A(H[PsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}sDJpY:@:Wn_DJ(RSsno padding..sH=_,8+Cf>,E,oN2F(oQ1zszero compressionsH=_,8+Cf>,E,oN2F(oQ1!!!!szero compressions6>q!aA79M(3WK-[!!s
Boundary:s;fH/TAKYK$D/aMV+<VdLsSpace compr:    srrs�ss8Nrss8W*�ss8W-!r7�adobeFTs<~s~>rZwrapcol�sGB\6`E-
ZP=Df.1
GEb>swww.python.orgszGB\6`E
-ZP=Df.
1GEb>s<~GB\6`
E-ZP=Df
.1GEb>
~>� ��
foldspacessyysy+<Vd�sy+<U�sy+9s��s���s����s        s       s      s     )	r�bytes�ranger=r�	a85encoder2r	r
)r
rrAr4rBrrr�test_a85encodens@		
+"""zBaseXYTestCase.test_a85encodecCs�|j}i
dd6dd6dttd��6dd6dd	6d
d6dd
6dd6dd6dd6dd6dd6dd6}x0|j�D]"\}}|tj|�|�q�W|jtjdd�dS)NrscXxL#aCvlSZ*DGca%Tswww.python.orgs?009C61O)~M2nh-c3=Iws5D^j+6crX17#SKH9337XAR!_nBqb&%C@Cr{EG;fCFflSSG&MFiI5|2yJUu=?KtV!7L`6nNNJ&adOifNtP*GA-R8>}2SXo+ITwPvYU}0ioWMyV&XlZI|Y;A6DaB*^Tbai%jczJqze0_d@fPsR8goTEOh>41ejE#<ukdcy;l$Dm3n3<ZJoSmMZprN9pq@|{(sHv)}tgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv(9zP<)YaD4*xB0K+}+;a;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{QdprjsgVPa!sWoBn+X=-b1ZEkOHadLBXb#`}nd3r%YLqtVJM@UIZOH55pPf$@(Q&d$}S6EqEFflSSG&MFiI5{CeBQRbjDkv#CIy^osE+AW7dwlsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}sZf_uPVPs@!Zf7nosno padding..sdS!BNAY*TBaB^jHb7^mG00000szero compressionsdS!BNAY*TBaB^jHb7^mG0000szero compressionsLT`0$WMOi7IsgCw00s
Boundary:sQ*dEpWgug3ZE$irARr(hsSpace compr:    s{{s�s|Njrs|Ns9rks|NsC0r7s��s���s����)rrsrtr=r�	b85encoder2)r
rrAr4rBrrr�test_b85encode�s&		
zBaseXYTestCase.test_b85encodecCs�|j}i
dd6dd6ttd��d6dd6dd	6d
d6dd
6dd6dd6dd6d+d6d,d6d-d6}x�|j�D]�\}}|tj|�||�|tj|dd�||�|tj|jd�dd�||�|tjd|ddd�||�|tjd |jd�dd�||�q�W|tjd!d"ddd�d.�|tjd%d"ddd�d/�|tjd'd"ddd�d0�|tjd)d"ddd�d1�|jtjdd�dS)2Nrswww.python.orgsGB\6`E-ZP=Df.1GEb>rjsJ! ! * -'"
		9eu
7#  RLhG$k3[W&.oNg'GVB"(`=52*$$(B+<_pR,UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Ykm5X@_(6q'R884cEH9MJ8X:f1+h<)lt#=BSg3>[:ZC?t!MSA7]@cBPD3sCi+'.E,fo>FEMbNG^4U^I!pHnJ:W<)KS>/9Ll%"IN/`jYOHG]iPa.Q$R$jD4S=Q7DTV8*TUnsrdW2ZetXKAY/Yd(L?['d?O\@K2_]Y2%o^qmn*`5Ta:aN;TJbg"GZd*^:jeCE.%f\,!5gtgiEi8N\UjQ5OekiqBum-X60nF?)@o_%qPq"ad`r;HTsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}sg@:E_WAS,RgBkhF"D/O92EH6,BF`qtRH$VbC6UX@47n?3D92&&T:Jand;cHat='/U/0JP==1c70M3&r-I,;<FN.OZ`-3]oSW/g+A(H[Psno padding..sDJpY:@:Wn_DJ(RSszero compressionsH=_,8+Cf>,E,oN2F(oQ1zszero compressionsH=_,8+Cf>,E,oN2F(oQ1!!!!s
Boundary:s6>q!aA79M(3WK-[!!sSpace compr:    s;fH/TAKYK$D/aMV+<VdLs�srrrss8Nrkss8W*r7ss8W-!rlFr:s<~s~>Tz<~%s~>syyrprnrosy+<Vdrmsy+<Urqsy+9rrs��s���s����s        s       s      s     )rrsrtr=r�	a85decoder%r2)r
rrAr4rBrrr�test_a85decode�s8	
('"""""zBaseXYTestCase.test_a85decodecCs�|j}i
dd6dd6ttd��d6dd6dd	6d
d6dd
6dd6dd6dd6dd6dd6dd6}xO|j�D]A\}}|tj|�|�|tj|jd��|�q�W|jtjdd�dS)Nrswww.python.orgscXxL#aCvlSZ*DGca%Trjs?009C61O)~M2nh-c3=Iws5D^j+6crX17#SKH9337XAR!_nBqb&%C@Cr{EG;fCFflSSG&MFiI5|2yJUu=?KtV!7L`6nNNJ&adOifNtP*GA-R8>}2SXo+ITwPvYU}0ioWMyV&XlZI|Y;A6DaB*^Tbai%jczJqze0_d@fPsR8goTEOh>41ejE#<ukdcy;l$Dm3n3<ZJoSmMZprN9pq@|{(sHv)}tgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv(9zP<)YaD4*xB0K+}+;a;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{QdpsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}sgVPa!sWoBn+X=-b1ZEkOHadLBXb#`}nd3r%YLqtVJM@UIZOH55pPf$@(Q&d$}S6EqEFflSSG&MFiI5{CeBQRbjDkv#CIy^osE+AW7dwlsno padding..sZf_uPVPs@!Zf7noszero compressionsdS!BNAY*TBaB^jHb7^mG00000szero compressionsdS!BNAY*TBaB^jHb7^mG0000s
Boundary:sLT`0$WMOi7IsgCw00sSpace compr:    sQ*dEpWgug3ZE$irARr(hs�s{{rs|Njrks|Ns9r7s|NsC0r:s��s���s����)rrsrtr=r�	b85decoder%r2)r
rrAr4rBrrr�test_b85decode�s(	
#zBaseXYTestCase.test_b85decodecCs|j}|tjddd�d�|tjddd�d�|tjddd�d�|tjd	dd�d
�|tjddd�d�|tjd�d
�|tjd�d�|tjd�d�|tjd
�d	�|tjd�d�dS)N�x�padTsGQ7^DsxxsG^'2gsxxxsG^+H5sxxxxsG^+IXsxxxxxs
G^+IXGQ7^Dsxsxxsxxxsxxxxx)rrrury)r
rrrr�test_a85_paddings	zBaseXYTestCase.test_a85_paddingcCs|j}|tjddd�d�|tjddd�d�|tjddd�d�|tjd	dd�d
�|tjddd�d�|tjd�d
�|tjd�d�|tjd�d�|tjd
�d	�|tjd�d�dS)Nr}r~TscmMzZsxxscz6H+sxxxsczAdKsxxxxsczAetsxxxxxs
czAetcmMzZsxsxxsxxxsxxxxx)rrrwr{)r
rrrr�test_b85_padding s	zBaseXYTestCase.test_b85_paddingcCs�ttd��ttdd��Btd�}x�|D]�}|jtdt|g���tjdt|g��WdQX|jtdt|g���%tjdt|g�dd�WdQX|jtdt|g���)tjd	t|g�d
dd�WdQXq6W|jttjddd�|jttjd
dd�|jttjddd�|jttjd�|jttjddd�tjddd�|jttjddd�|jttjddd�|jttjddddd�|jttjddd�|jttjddd�|jttjddd�|jttjddd�|jttjddd�dS)N� �v�s 	

�msgs!!!!rlFs<~!!!!s~>Ts	malformeds<~still malformedsalso malformed~>s<~~>sabcxsabcdeysa b
cZignorecharsr�sss8ss8Wss8W-ss8W-")�setrtr	�
ValueErrorrsrry)r
�illegal�crrr�test_a85decode_errors/s</
 &.





z$BaseXYTestCase.test_a85decode_errorscCs�ttd��td�ttdd��}xM|D]E}|jtdt|g���tjdt|g��WdQXq6W|jttjd�|jttjd�|jttjd	�|jttjd
�|jttjd�dS)N�!s	"',./:[\]�r�r�s0000�|s|Ns|Nss|NsCs|NsC1)�listrtr	r�rsrr{)r
r�r�rrr�test_b85decode_errorsTs
$z$BaseXYTestCase.test_b85decode_errorscCsXtjtjtjtjtjtjtjf}x!|D]}|jt	|d�q7WdS)Nuwith non-ascii Ë)
rr>r?r@r_rhr{ryr	r�)r
Zdecode_funcsrrrr�test_decode_nonascii_strbs
z'BaseXYTestCase.test_decode_nonascii_strcCs|jttjt��dS)N)Z
assertTrue�
issubclassrErFr�)r
rrr�test_ErrorHeritagemsz!BaseXYTestCase.test_ErrorHeritageN)r'r(r)r+r,r2r/r-r9rDrGr]r^r`rerfrgrirvrxrzr|rr�r�r�r�r�rrrrr*Zs228
)	2",#%r*c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestMaincCs,tjjtj�r(tjtj�ndS)N)�os�path�existsr�TESTFN�unlink)r
rrr�tearDownsszTestMain.tearDowncOs&tjddf|}tj||�S)Nz-mr)�sys�
executable�
subprocessZcheck_output)r
�argsZoptionsrrr�
get_outputwszTestMain.get_outputcCs)|jd�}|j|j�d�dS)Nz-t�b'Aladdin:open sesame'�!b'QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n')r�r�r�)r�ZassertSequenceEqual�
splitlines)r
�outputrrr�test_encode_decode{s
zTestMain.test_encode_decodecCs�ttjd��}|jd�WdQX|jdtj�}|j|j�d�ttjd��}|jdd|�}WdQX|j|j�d�dS)N�wbsa�b
z-esYf9iCg==�rb�stdin)�openrr��writer�r�rstrip)r
�fpr�rrr�test_encode_file�szTestMain.test_encode_filec	CsWttjd��}|jd�WdQX|jdtj�}|j|j�d�dS)Nr�sYf9iCg==z-dsa�b)r�rr�r�r�rr�)r
r�r�rrrr&�szTestMain.test_decodeN)r'r(r)r�r�r�r�r&rrrrr�rs
r�cCstjt�dS)N)rZrun_unittestr'rrrr�	test_main�sr��__main__)ZunittestZtestrrrEr�r�r�ZstructrZTestCaserr*r�r�r'rrrr�<module>s N��$