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_base64.cpython-35.pyc



��Yfw�@s�ddlZddlmZddlZddlZddlZddlmZddlmZGdd�dej	�Z
Gdd�dej	�ZGd	d
�d
ej	�Ze
dkr�ej�dS)�N)�support)�array)�
script_helperc@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�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/python35/lib64/python3.5/test/test_base64.py�check_type_errors
sz&LegacyBase64TestCase.check_type_errorsc	Cs(|jt��tjd�WdQRXdS)Nswww.python.org)�assertWarns�DeprecationWarning�base64Zencodestring)rrrr�test_encodestring_warnssz,LegacyBase64TestCase.test_encodestring_warnsc	Cs(|jt��tjd�WdQRXdS)Nsd3d3LnB5dGhvbi5vcmc=
)rrrZdecodestring)rrrr�test_decodestring_warnssz,LegacyBase64TestCase.test_decodestring_warnscCs�|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)�assertEqualrZencodebytes�	bytearrayrrr)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)rrZdecodebytesrrrr)rrrrr�test_decodebytes0s	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�ior!r"r�encode�getvaluer
r)rrr!r"�infp�outfprrr�test_encodeCs		""z LegacyBase64TestCase.test_encodecCs�ddlm}m}|d�}|�}tj||�|j|j�d�|jttj	|d�|��|jttj	|d�|��|jttj	|d�|��dS)Nr)r!r"sd3d3LnB5dGhvbi5vcmc=swww.python.orgzYWJj
sYWJj
)
r$r!r"r�decoderr&r
rr%)rr!r"r'r(rrr�test_decodeTs	""z LegacyBase64TestCase.test_decodeN)
�__name__�
__module__�__qualname__rrrrr r)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)rrrrr�check_encode_type_errorsdsz'BaseXYTestCase.check_encode_type_errorscCs|jt|g�dS)N)r
r)rrrrr�check_decode_type_errorshsz'BaseXYTestCase.check_decode_type_errorscCs�|j}t|�}|||�|�|||�||t|��|�||td|��|�|jtj|�|jtj|�dS)Nr)rrrr�check_nonbyte_element_formatr�	b64encode�check_multidimensional)rr�
bytes_dataZexpectedr�brrr�check_other_typesks	
z BaseXYTestCase.check_other_typescCstt|�drdnd}||}t|�ddf}t|�jd|�}|j||�||��dS)Nrsrr)�lenrr
r)rr�data�paddingr5�shaperrrrr4ws

z%BaseXYTestCase.check_multidimensionalcCsWddt|�d}||}t|�jd�}|j||�||��dS)Ns�r	)r8rr
r)rrr9r:r5rrrrr2~s
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)rrr3rrrr7r0r
rZstandard_b64encodeZurlsafe_b64encode)rrrrr�test_b64encode�sB	

zBaseXYTestCase.test_b64encodec
Cst|j}ddddddddd	d
ddd
d
i}xO|j�D]A\}}|tj|�|�|tj|jd��|�qFW|jtjd	d
�|jtj�ddi}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�ddd
d
i}	xO|	j�D]A\}}|tj|�|�|tj|jd��|�qW|jtjdd�|jtj�dS)Nsd3d3LnB5dGhvbi5vcmc=swww.python.orgsAA==ssYQ==rsYWI=sabsYWJjsabcsqYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==sRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}r�ascii�01a*b$cd�*$s�V�o�r=s01a-b_cd)r@rA)	r�itemsr�	b64decoder*r7r1�standard_b64decode�urlsafe_b64decode)
rr�testsr9�resZtests_altcharsr=�data_strZaltchars_strZ
tests_urlsaferrr�test_b64decode�sF	# ##zBaseXYTestCase.test_b64decodecCs6|jtjtjd�|jtjtjd�dS)Nsabcr#)r
�binascii�ErrorrrC)rrrr�test_b64decode_padding_error�sz+BaseXYTestCase.test_b64decode_padding_errorcCs=d }tjtjtjf}x�|D]�\}}xc|D][}|jd|d|��:|j||�|�|j||jd��|�WdQRXq8W|jtj	��tj|dd�WdQRX|jtj	��!tj|jd�dd�WdQRXq%Wd}|jtjdd�|�|jtjd�|�dS)!N�%3d==���$3d==�[==r�YW]3=�am�3{d==�3d}==�@@�!�	YWJj
YWI=�abcab�bstr�funcr?ZvalidateTs����s++[[//]]s[]s++--//__�rMrN�rOrN�rPr�rQrR�rSrN�rTrN�rUr�rVr�rWrX)	r[r\r]r^r_r`rarbrc)
rrCrDrEZsubTestrr*r
rJrK)rrFZfuncsrYrGrZrrr�test_b64decode_invalid_chars�s0
*'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	b32encoder7r0)rrrrr�test_b32encodes	zBaseXYTestCase.test_b32encodecCs�|j}dddddddddd	d
ddd
i}xO|j�D]A\}}|tj|�|�|tj|jd��|�qFW|jtjdd	�|jtj�dS)NrsAA======ssME======rsMFRA====sabsMFRGG===sabcsMFRGGZA=sabcdsMFRGGZDFsabcder?)rrBr�	b32decoder*r7r1)rrrFr9rGrrr�test_b32decodes	#zBaseXYTestCase.test_b32decodec	Cs|j}dddddddddd	d
dddd
ddddd	ddi}xU|j�D]G\}}|tj|d�|�|tj|jd�d�|�q^W|jtjtjd�|jtjtjd�|tjd�d�|tjd�d�ddddi}x�|j�D]�\\}}}|jd�}|jd�}|tj|d|�|�|tj|d|�|�|tj|d|�|�|tj|d|�|�|jtjtj|�|jtjtj|�q&WdS)NrsME======rsMFRA====sabsMFRGG===sabcsMFRGGZA=sabcdsMFRGGZDFsabcdesme======smfra====smfrgg===smfrggza=smfrggzdfTr?zme======sMLO23456sbݭ�ZMLO23456�M1023456�L�Isb���map01)rhri)rhrj)rrBrrfr*r
rJrK)	rrrFr9rGZ	map_testsrkrHZ	map01_strrrr�test_b32decode_casefold0s<	&z&BaseXYTestCase.test_b32decode_casefoldcCsuxndddgD]]}|jtj��tj|�WdQRX|jtj��tj|jd��WdQRXqWdS)NsabcsABCDEF==s==ABCDEFr?)r
rJrKrrfr*)rr9rrr�test_b32decode_errorYs
z#BaseXYTestCase.test_b32decode_errorcCs_|j}|tjd�d�|tjd�d�|jtjdd�|jtj�dS)Ns���s
0102ABCDEFss00)rrZ	b16encoder7r0)rrrrr�test_b16encode`s	zBaseXYTestCase.test_b16encodecCs�|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�|jtjtjd�|jtjtjd�dS)
Ns
0102ABCDEFs���Z
0102ABCDEFs00sZ00s
0102abcdefZ
0102abcdefTrZ0102AGZ010)rr�	b16decoder
rJrKr7r1rrr)rrrrr�test_b16decodeis(	zBaseXYTestCase.test_b16decodecCs|j}ddddttd��ddddd	d
ddd
ddddddd/dd0dd1di
}xy|j�D]k\}}|tj|�||�|tj|dd�||�|tj|dd�d|d|�qvW|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)6Nrswww.python.orgsGB\6`E-ZP=Df.1GEb>�s?!!*-'"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;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�srrrss8N�ss8W*r<ss8W-!�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�rangerBr�	a85encoder7r
r)rrrFr9rGrrr�test_a85encode�s@	+"""zBaseXYTestCase.test_a85encodecCs�|j}ddddttd��ddddd	d
ddd
ddddddddddddi
}x0|j�D]"\}}|tj|�|�qvW|jtjdd�dS)Nrswww.python.orgscXxL#aCvlSZ*DGca%Trqs?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|Njrrs|Ns9r<s|NsC0s��s���s����)rrzr{rBr�	b85encoder7)rrrFr9rGrrr�test_b85encode�s&	zBaseXYTestCase.test_b85encodecCs�|j}dddddttd��dddd	d
ddd
dddddddd+dd,dd-i
}x�|j�D]�\}}|tj|�||�|tj|dd�||�|tj|jd�dd�||�|tjd|ddd�||�|tj|ddd�||�|tjd |jd�dd�||�qvW|tjd!d"ddd�d.�|tjd%d"ddd�d/�|tjd'd"ddd�d0�|tjd)d"ddd�d1�|jtjdd�dS)2NrsGB\6`E-ZP=Df.1GEb>swww.python.orgsJ! ! * -'"
		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;HTrqsg@: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*rrss8W-!r<rsFr?s<~s~>Tz<~%s~>syyrwrurvsy+<Vdrtsy+<Urxsy+9rys��s���s����s        s       s      s     )rrzr{rBr�	a85decoder*r7)rrrFr9rGrrr�test_a85decode�s<	('#"""""zBaseXYTestCase.test_a85decodecCs�|j}dddddttd��dddd	d
ddd
ddddddddddddi
}xO|j�D]A\}}|tj|�|�|tj|jd��|�qvW|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$(#{QdprqsgVPa!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|Ns9rrs|NsC0r<r?s��s���s����)rrzr{rBr�	b85decoder*r7)rrrFr9rGrrr�test_b85decodes*	#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)rrr|r�)rrrrr�test_a85_padding(s	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)rrr~r�)rrrrr�test_b85_padding7s	zBaseXYTestCase.test_b85_paddingcCswttd��ttdd��Btd�}x�|D]�}|jtdt|g���tjdt|g��WdQRX|jtdt|g���%tjdt|g�dd�WdQRX|jtdt|g���)tjd	t|g�d
dd�WdQRXq6W|jttjddd�|jttjd
dd�|jttjd�|jttjddd�tjddd�|jttjddd�|jttjddd�|jttjddddd�|jttjddd�|jttjddd�|jttjddd�|jttjddd�|jttjddd�dS)N� �v�s 	

�msgs!!!!rsFs<~!!!!s~>Ts	malformeds<~still malformeds<~~>sabcxsabcdeysa b
cZignorecharsr�sss8ss8Wss8W-ss8W-")�setr{r
�
ValueErrorrzrr�)r�illegal�crrr�test_a85decode_errorsFs8/
!'/




z$BaseXYTestCase.test_a85decode_errorscCs�ttd��td�ttdd��}xN|D]F}|jtdt|g���tjdt|g��WdQRXq6W|jttjd�|jttjd�|jttjd	�|jttjd
�|jttjd�dS)N�!s	"',./:[\]�r�r�s0000�|s|Ns|Nss|NsCs|NsC1)�listr{r
r�rzrr�)rr�r�rrr�test_b85decode_errorsis
%z$BaseXYTestCase.test_b85decode_errorscCsXtjtjtjtjtjtjtjf}x!|D]}|jt	|d�q7WdS)Nuwith non-ascii Ë)
rrCrDrErfror�r�r
r�)rZdecode_funcsrrrr�test_decode_nonascii_strws
z'BaseXYTestCase.test_decode_nonascii_strcCs|jttjt��dS)N)Z
assertTrue�
issubclassrJrKr�)rrrr�test_ErrorHeritage�sz!BaseXYTestCase.test_ErrorHeritageN)r,r-r.r0r1r7r4r2r>rIrLrdrergrlrmrnrpr}rr�r�r�r�r�r�r�r�rrrrr/`s228
)	2"-##r/c@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestMaincCs)tjjtj�r%tjtj�dS)N)�os�path�existsr�TESTFN�unlink)rrrr�tearDown�szTestMain.tearDowncGstjdd|�jS)Nz-mr)rZassert_python_ok�out)r�argsrrr�
get_output�szTestMain.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_decodec
CsXttjd��}|jd�WdQRX|jdtj�}|j|j�d�dS)N�wbsa�b
z-esYf9iCg==)�openrr��writer�r�rstrip)r�fpr�rrr�test_encode_file�szTestMain.test_encode_filec
Cs[tjddd��}|jd�\}}WdQRX|j|j�d�|j|�dS)Nz-mrz-esa�b
sYf9iCg==)rZspawn_pythonZcommunicaterr�ZassertIsNone)r�procr��errrrr�test_encode_from_stdin�szTestMain.test_encode_from_stdinc
CsXttjd��}|jd�WdQRX|jdtj�}|j|j�d�dS)Nr�sYf9iCg==z-dsa�b)r�rr�r�r�rr�)rr�r�rrrr+�szTestMain.test_decodeN)	r,r-r.r�r�r�r�r�r+rrrrr��sr��__main__)ZunittestZtestrrrJr�rZtest.supportrZTestCaserr/r�r,�mainrrrr�<module>sV��("