HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_base64.cpython-37.opt-1.pyc
B

��g�x�@s�ddlZddlmZddlZddlZddlZddlmZddlmZGdd�dej	�Z
Gdd�dej	�ZGd	d
�d
ej	�Ze
dkr�e��dS)�N)�support)�array)�
script_helperc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�LegacyBase64TestCasecCsZ|�t|d�|�t|g�td��dd�}|�t||�td��d�}|�t||�dS)N�s1234�B)�r�I)�assertRaises�	TypeError�
memoryview�cast)�self�f�multidimensional�int_data�r�,/usr/local/lib/python3.7/test/test_base64.py�check_type_errors
sz&LegacyBase64TestCase.check_type_errorsc	Cs$|�t��t�d�WdQRXdS)Nswww.python.org)�assertWarns�DeprecationWarning�base64Zencodestring)rrrr�test_encodestring_warnssz,LegacyBase64TestCase.test_encodestring_warnsc	Cs$|�t��t�d�WdQRXdS)Nsd3d3LnB5dGhvbi5vcmc=
)rrrZdecodestring)rrrr�test_decodestring_warnssz,LegacyBase64TestCase.test_decodestring_warnscCs�|j}|t�d�d�|t�d�d�|t�d�d�|t�d�d�|t�d	�d	�|t�d
�d�|t�td��d�|t�td��d�|t�tdd��d�|�tj�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}|t�d�d�|t�d�d�|t�d�d�|t�d�d�|t�d	�d
�|t�d�d�|t�td��d�|t�td��d�|t�tdd��d�|�tj�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�}|�}t�||�||��d�|�ttj|d�|��|�ttj|d�|��|�ttj|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�}|�}t�||�|�|��d�|�ttj	|d�|��|�ttj	|d�|��|�ttj	|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
src@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 |�t|d�|�t|g�dS)Nr)r
r)rrrrr�check_encode_type_errorsdsz'BaseXYTestCase.check_encode_type_errorscCs|�t|g�dS)N)r
r)rrrrr�check_decode_type_errorshsz'BaseXYTestCase.check_decode_type_errorscCsl|j}t|�}|||�|�|||�||t|��|�||td|��|�|�tj|�|�tj|�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|��d|�}|�||�||��dS)Nr�rr)�lenrr
r)rr�data�paddingr5�shaperrrrr4ws
z%BaseXYTestCase.check_multidimensionalcCsBddt|�d}||}t|��d�}|�||�||��dS)Nr8�r	)r9rr
r)rrr:r;r5rrrrr2~sz+BaseXYTestCase.check_nonbyte_element_formatcCs�|j}|t�d�d�|t�d�d�|t�d�d�|t�d�d�|t�d	�d
�|t�d�d�|t�d�d
�|tjddd�d�|tjdtd�d�d�|tjdtd�d�d�|tjdtdd�d�d�|�tjdd�|�tj�|jt	tjddd�|t�
d�d�|t�
d�d�|t�
d�d�|t�
d	�d
�|t�
d�d�|t�
d�d
�|�tj
dd�|�tj
�|t�d�d�|�tjdd�|�tj�dS)Nswww.python.orgsd3d3LnB5dGhvbi5vcmc=r8sAA==rsYQ==sabsYWI=sabcsYWJjrsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}spYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==s�V�o�s*$)�altcharss01a*b$cdrsabcdsYWJjZA==z*$s01a-b_cd)rrr3rrrr7r0r
rZstandard_b64encodeZurlsafe_b64encode)rrrrr�test_b64encode�sB

zBaseXYTestCase.test_b64encodec
Cs�|j}dddddddd�}x:|��D].\}}|t�|�|�|t�|�d	��|�q$W|�tjd
d�|�tj�ddi}x||��D]p\\}}}|�d	�}|�d	�}|tj||d
�|�|tj||d
�|�|tj||d
�|�|tj||d
�|�q�Wx<|��D]0\}}|t�|�|�|t�|�d	��|��qW|�tjd
d�|�tj�ddd�}	x<|	��D]0\}}|t�|�|�|t�|�d	��|��qfW|�tjdd�|�tj�dS)Nswww.python.orgr8rsabsabcsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}r)sd3d3LnB5dGhvbi5vcmc=sAA==sYQ==sYWI=sYWJjsqYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==r�asciisYWJj)s01a*b$cds*$s�V�o�)r>)s01a-b_cdrs01a-b_cd)	r�itemsr�	b64decoder*r7r1�standard_b64decode�urlsafe_b64decode)
rr�testsr:�resZtests_altcharsr>�data_strZaltchars_strZ
tests_urlsaferrr�test_b64decode�sD


zBaseXYTestCase.test_b64decodecCs(|�tjtjd�|�tjtjd�dS)Nsabcr#)r
�binascii�ErrorrrB)rrrr�test_b64decode_padding_error�sz+BaseXYTestCase.test_b64decode_padding_errorcCs�d}tjtjtjf}x�|D]�\}}xL|D]D}|j||d��,|�||�|�|�||�d��|�WdQRXq(W|�tj	��tj|dd�WdQRX|�tj	��tj|�d�dd�WdQRXqWd}|�t�dd�|�|�t�d	�|�dS)
N)
)s%3d==��)s$3d==rL)s[==r)sYW]3=sam)s3{d==rL)s3d}==rL)s@@r)�!r)sYWJj
sabc)s	YWJj
YWI=sabcab)�bstr�funcr@T)Zvalidates����s++[[//]]s[]s++--//__)
rrBrCrD�subTestrr*r
rIrJ)rrEZfuncsrNrFrOrrr�test_b64decode_invalid_chars�s 
$"z+BaseXYTestCase.test_b64decode_invalid_charscCs�|j}|t�d�d�|t�d�d�|t�d�d�|t�d�d�|t�d�d	�|t�d
�d�|t�d�d
�|�tjd
d�|�tj�dS)Nrr8sAA======rsME======sabsMFRA====sabcsMFRGG===sabcdsMFRGGZA=sabcdesMFRGGZDF)rrZ	b32encoder7r0)rrrrr�test_b32encodeszBaseXYTestCase.test_b32encodecCsv|j}dddddddd�}x:|��D].\}}|t�|�|�|t�|�d	��|�q$W|�tjd
d�|�tj�dS)Nrr8rsabsabcsabcdsabcde)rsAA======sME======sMFRA====sMFRGG===sMFRGGZA=sMFRGGZDFr@sMFRGG===)rrAr�	b32decoder*r7r1)rrrEr:rFrrr�test_b32decode szBaseXYTestCase.test_b32decodec	CsV|j}dddddddddddd�}x>|��D]2\}}|t�|d�|�|t�|�d	�d�|�q,W|�tjtjd
�|�tjtjd�|t�d�d
�|t�d�d
�d
dd�}x�|��D]�\\}}}|�d	�}|�d	�}|tj||d�|�|tj||d�|�|tj||d�|�|tj||d�|�|�tjtj|�|�tjtj|�q�WdS)Nrrsabsabcsabcdsabcde)rsME======sMFRA====sMFRGG===sMFRGGZA=sMFRGGZDFsme======smfra====smfrgg===smfrggza=smfrggzdfTr@sme======zme======sMLO23456sbݭ�ZMLO23456sb��))sM1023456�L)sM1023456�I)�map01)rrArrSr*r
rIrJ)	rrrEr:rFZ	map_testsrWrGZ	map01_strrrr�test_b32decode_casefold1s<

z&BaseXYTestCase.test_b32decode_casefoldcCs�dddg}dddddd	g}xTtd
d�D]F}|r<|�d|�x.|D]&}t|�|d
krB|�|d|�qBWq&Wxn|D]f}|j|d��P|�tj��t�|�WdQRX|�tj��t�|�	d��WdQRXWdQRXqvWdS)NsabcsABCDEF==s==ABCDEF�MsMEsMFRAsMFRGGsMFRGGZAsMFRGGZDFr��=�)r:r@)
�range�appendr9rPr
rIrJrrSr*)rrE�prefixes�i�prefixr:rrr�test_b32decode_errorZs


z#BaseXYTestCase.test_b32decode_errorcCsF|j}|t�d�d�|t�d�d�|�tjdd�|�tj�dS)Ns���s
0102ABCDEFr8s00)rrZ	b16encoder7r0)rrrrr�test_b16encodejs
zBaseXYTestCase.test_b16encodecCs|j}|t�d�d�|t�d�d�|t�d�d�|t�d�d�|�tjtjd�|�tjtjd�|t�dd	�d�|t�dd	�d�|�tjdd�|�tj�|t�td�d	�d�|t�t	d�d	�d�|t�t
d
d�d	�d�|�tjtjd�|�tjtjd�dS)
Ns
0102ABCDEFs���Z
0102ABCDEFs00r8Z00s
0102abcdefZ
0102abcdefTrZ0102AGZ010)rr�	b16decoder
rIrJr7r1rrr)rrrrr�test_b16decodess(
zBaseXYTestCase.test_b16decodecCs`|j}ddddttd��ddddd	d
ddd
ddddddddddddi
}xZ|��D]N\}}|t�|�||�|tj|dd�||�|tj|dd�d|d|�qPW|�tjdd�|�ttjd�|tjdd dd!�d"�|tjd#d dd!�d$�|tjdd dd!�d%�|tjd&ddd'�d(�|tjd)ddd'�d*�|tjd+ddd'�d,�|tjd-ddd'�d.�dS)/Nrswww.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+<VdL��srrs��ss8Ns���ss8W*s����ss8W-!F)�adobeTs<~s~>r�)ZwrapcolrhsGB\6`E-
ZP=Df.1
GEb>swww.python.orgszGB\6`E
-ZP=Df.
1GEb>s<~GB\6`
E-ZP=Df
.1GEb>
~>s        )�
foldspacesrhsyys       sy+<Vds      sy+<Us     sy+9)	r�bytesr]rAr�	a85encoder7r
r)rrrEr:rFrrr�test_a85encode�s@"
zBaseXYTestCase.test_a85encodecCs�|j}ddddttd��ddddd	d
ddd
ddddddddddddi
}x$|��D]\}}|t�|�|�qPW|�tjdd�dS)Nrswww.python.orgscXxL#aCvlSZ*DGca%Trfs?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(hrgs{{s��s|Njs���s|Ns9s����s|NsC0)rrkr]rAr�	b85encoder7)rrrEr:rFrrr�test_b85encode�s&
zBaseXYTestCase.test_b85encodecCsL|j}ddttd��dddddd	d
ddd
d�
}x�|��D]�\}}|t�|�||�|tj|dd�||�|tj|�d�dd�||�|tjd|ddd�||�|tj|ddd�||�|tjd|�d�dd�||�q8W|tjdddd�d�|tjdddd�d�|tjdddd�d�|tjdddd�d�|�tjdd�dS) Nrswww.python.orgrfsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}sno padding..szero compressionszero compressions
Boundary:sSpace compr:    rgs��s���s����)
rsGB\6`E-ZP=Df.1GEb>sJ! ! * -'"
		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;HTsg@: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[PsDJpY:@:Wn_DJ(RSsH=_,8+Cf>,E,oN2F(oQ1zsH=_,8+Cf>,E,oN2F(oQ1!!!!s6>q!aA79M(3WK-[!!s;fH/TAKYK$D/aMV+<VdLsrrss8Nss8W*ss8W-!F)rhr@s<~s~>Tz<~%s~>syy)rjrhs        sy+<Vds       sy+<Us      sy+9s     sGB\6`E-ZP=Df.1GEb>)rrkr]rAr�	a85decoder*r7)rrrEr:rFrrr�test_a85decode�s8

zBaseXYTestCase.test_a85decodecCs~|j}ddttd��dddddd	d
ddd
d�
}x:|��D].\}}|t�|�|�|t�|�d��|�q8W|�tjdd�dS)Nrswww.python.orgrfsRabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}sno padding..szero compressionszero compressions
Boundary:sSpace compr:    rgs��s���s����)
rscXxL#aCvlSZ*DGca%Ts?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$(#{QdpsgVPa!sWoBn+X=-b1ZEkOHadLBXb#`}nd3r%YLqtVJM@UIZOH55pPf$@(Q&d$}S6EqEFflSSG&MFiI5{CeBQRbjDkv#CIy^osE+AW7dwlsZf_uPVPs@!Zf7nosdS!BNAY*TBaB^jHb7^mG00000sdS!BNAY*TBaB^jHb7^mG0000sLT`0$WMOi7IsgCw00sQ*dEpWgug3ZE$irARr(hs{{s|Njs|Ns9s|NsC0r@scXxL#aCvlSZ*DGca%T)rrkr]rAr�	b85decoder*r7)rrrEr:rFrrr�test_b85decodes&

zBaseXYTestCase.test_b85decodecCs�|j}|tjddd�d�|tjddd�d�|tjddd�d�|tjd	dd�d
�|tjddd�d�|t�d�d
�|t�d�d�|t�d�d�|t�d
�d	�|t�d�d�dS)N�xT)�padsGQ7^DsxxsG^'2gsxxxsG^+H5sxxxxsG^+IXsxxxxxs
G^+IXGQ7^Dsxsxxsxxxsxxxxx)rrrlrp)rrrrr�test_a85_padding2szBaseXYTestCase.test_a85_paddingcCs�|j}|tjddd�d�|tjddd�d�|tjddd�d�|tjd	dd�d
�|tjddd�d�|t�d�d
�|t�d�d�|t�d�d�|t�d
�d	�|t�d�d�dS)NrtT)ruscmMzZsxxscz6H+sxxxsczAdKsxxxxsczAetsxxxxxs
czAetcmMzZsxsxxsxxxsxxxxx)rrrnrr)rrrrr�test_b85_paddingAszBaseXYTestCase.test_b85_paddingc
Cs�ttd��ttdd��Btd�}x�|D]�}|jtt|g�d��t�dt|g��WdQRX|jtt|g�d��tjdt|g�dd�WdQRX|jtt|g�d��"tjd	t|g�d
dd�WdQRXq(W|jttjddd�|jttjd
dd�|�ttjd�|jttjddd�tjddd�|jttjddd�|jttjddd�|jttjdddd�|jttjddd�|jttjddd�|jttjddd�|jttjddd�|jttjddd�dS)N� �v�s 	

)�msgs!!!!F)rhs<~!!!!s~>Ts	malformeds<~still malformeds<~~>sabcxsabcdeysa b
cr)rhZignorechars�sss8ss8Wss8W-ss8W-")�setr]r
�
ValueErrorrkrrp)r�illegal�crrr�test_a85decode_errorsPs8"
"*











z$BaseXYTestCase.test_a85decode_errorsc
Cs�ttd��td�ttdd��}x@|D]8}|jtt|g�d��t�dt|g��WdQRXq(W|�ttjd�|�ttjd�|�ttjd	�|�ttjd
�|�ttjd�dS)N�!s	"',./:[\]�rz)r{s0000�|s|Ns|Nss|NsCs|NsC1)�listr]r
r~rkrrr)rrr�rrr�test_b85decode_errorsss
"z$BaseXYTestCase.test_b85decode_errorscCs@tjtjtjtjtjtjtjf}x|D]}|�t	|d�q&WdS)Nuwith non-ascii Ë)
rrBrCrDrSrdrrrpr
r~)rZdecode_funcsrrrr�test_decode_nonascii_str�s
z'BaseXYTestCase.test_decode_nonascii_strcCs|�ttjt��dS)N)Z
assertTrue�
issubclassrIrJr~)rrrr�test_ErrorHeritage�sz!BaseXYTestCase.test_ErrorHeritageN)r,r-r.r0r1r7r4r2r?rHrKrQrRrTrXrbrcrermrorqrsrvrwr�r�r�r�rrrrr/`s228 
)	2"-##r/c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestMaincCstj�tj�rt�tj�dS)N)�os�path�existsr�TESTFN�unlink)rrrr�tearDown�szTestMain.tearDowncGstjd|��jS)N�-mr)r�r)rZassert_python_ok�out)r�argsrrr�
get_output�szTestMain.get_outputcCs|�d�}|�|��d�dS)Nz-t)sb'Aladdin:open sesame's!b'QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n'sb'Aladdin:open sesame')r�ZassertSequenceEqual�
splitlines)r�outputrrr�test_encode_decode�s

zTestMain.test_encode_decodec	CsDttjd��}|�d�WdQRX|�dtj�}|�|��d�dS)N�wbsa�b
z-esYf9iCg==)�openrr��writer�r�rstrip)r�fpr�rrr�test_encode_file�szTestMain.test_encode_filec	CsFt�ddd��}|�d�\}}WdQRX|�|��d�|�|�dS)Nz-mrz-esa�b
sYf9iCg==)rZspawn_pythonZcommunicaterr�ZassertIsNone)r�procr��errrrr�test_encode_from_stdin�szTestMain.test_encode_from_stdinc	CsDttjd��}|�d�WdQRX|�dtj�}|�|��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__)ZunittestZtestrrrIr�rZtest.supportrZTestCaserr/r�r,�mainrrrr�<module>sV4"