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: //proc/thread-self/root/usr/local/lib/python3.7/test/__pycache__/test_tcl.cpython-37.opt-1.pyc
B

��g�t�@sddlZddlZddlZddlZddlZddlmZe�d�Zddl	Z	ddl	m
Z
ddlmZyddlm
Z
mZWnek
r�ejZ
ZYnXeeeej�d���Zdadd	�ZGd
d�dej�ZGdd
�d
ej�ZGdd�dej�Zdd�Zdd�Zedk�r
e�dS)�N)�support�_tkinter)�Tcl)�TclError)�INT_MAX�PY_SSIZE_T_MAX�.cCs�tdkr�t�}|�dd�}t�d|�}|��\}}}}t|�t|�t|�}}}dddd�|}|dkrz||||dfan||d||fatS)	N�info�
patchlevelz(\d+)\.(\d+)([ab.])(\d+)ZalphaZbeta�final)�a�brr)�_tk_patchlevelr�call�re�	fullmatch�groups�int)�tclr
�m�major�minor�releaselevel�serial�r�)/usr/local/lib/python3.7/test/test_tcl.py�get_tk_patchlevelsrc@seZdZdd�ZdS)�TkinterTestcCs|�ttjd�dS)NT)�assertRaises�	TypeErrorrZ_flatten)�selfrrr�testFlattenLen)szTkinterTest.testFlattenLenN)�__name__�
__module__�__qualname__r!rrrrr'src@sfeZdZdd�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�Ze�ejd3kd4�d5d6��Z d7d8�Z!d9d:�Z"d;d<�Z#d=d>�Z$e�e%d?kd@�dAdB��Z&dCdD�Z'dEdF�Z(dGdH�Z)dIdJ�Z*dKdL�Z+dMdN�Z,dOdP�Z-dQdR�Z.dSS)T�TclTestcCst�|_|jj��|_dS)N)r�interp�tk�wantobjects)r rrr�setUp0sz
TclTest.setUpcCs&|j}|�d�|�|�d�d�dS)Nzset a 1zset a�1)r&�eval�assertEqual)r rrrr�testEval4s
zTclTest.testEvalcCs|j}|�|�d�d�dS)Nzset a "a\0b"zab)r&r,r+)r rrrr�test_eval_null_in_result9sz TclTest.test_eval_null_in_resultcCs|j}|�t|jd�dS)Nzset a)r&rrr+)r rrrr�testEvalException=szTclTest.testEvalExceptioncCs|j}|�t|jd�dS)Nz
this is wrong)r&rrr+)r rrrr�testEvalException2AszTclTest.testEvalException2cCs,|j}|�ddd�|�|�dd�d�dS)N�setrr*)r&rr,)r rrrr�testCallEszTclTest.testCallcCs|j}|�t|jdd�dS)Nr1r)r&rrr)r rrrr�testCallExceptionJszTclTest.testCallExceptioncCs|j}|�t|jddd�dS)N�this�isZwrong)r&rrr)r rrrr�testCallException2NszTclTest.testCallException2cCs(|j}|�dd�|�|�d�d�dS)Nrr*zset a)r&�setvarr,r+)r rrrr�
testSetVarRszTclTest.testSetVarcCs(|j}|�dd�|�|�d�d�dS)Nza(1)r*zset a(1))r&r7r,r+)r rrrr�testSetVarArrayWszTclTest.testSetVarArraycCs&|j}|�d�|�|�d�d�dS)Nzset a 1rr*)r&r+r,�getvar)r rrrr�
testGetVar\s
zTclTest.testGetVarcCs&|j}|�d�|�|�d�d�dS)Nz
set a(1) 1za(1)r*)r&r+r,r:)r rrrr�testGetVarArrayas
zTclTest.testGetVarArraycCs|j}|�t|jd�dS)Nr)r&rrr:)r rrrr�testGetVarExceptionfszTclTest.testGetVarExceptioncCs|j}|�t|jd�dS)Nza(1))r&rrr:)r rrrr�testGetVarArrayExceptionjsz TclTest.testGetVarArrayExceptioncCsD|j}|�dd�|�|�d�d�|�d�|�|�d�d�dS)Nr�z
info exists ar*�0)r&r7r,r+�unsetvar)r rrrr�testUnsetVarns

zTclTest.testUnsetVarcCst|j}|�dd�|�dd�|�|�d�d�|�|�d�d�|�d�|�|�d�d�|�|�d�d�dS)	Nza(1)r?za(2)�zinfo exists a(1)r*zinfo exists a(2)r@)r&r7r,r+rA)r rrrr�testUnsetVarArrayus
zTclTest.testUnsetVarArraycCs|j}|�t|jd�dS)Nr)r&rrrA)r rrrr�testUnsetVarExceptionszTclTest.testUnsetVarExceptioncCsFd}t�dks(dt�kr$dkrBnn|ddddddf7}|S)	N)	rr?���i���i�ll����l����l����)��rr)rG�rG)rGrHll����rCi�)r)r Zintegersrrr�get_integers�s

zTclTest.get_integersc	Cs4|jj}xx|��D]l}|�|�d|�|�tdkrJ|�|�d|�|�|�|�d|�dd��|�|�|�d|�|�qWtdkr�|�t|jt	dd��|�|�d	�d	�|�t
|j�|�t
|jd
d�|�t
|jd�|�t
|jd
�|�t|jd�|�t
ttf|jd�|�tttf|jd�dS)Nz %d )rGrIz %#o �o�z %#x rCi��*Z42�10s42gE@rz42u42�)
r&r'rJr,�getint�tcl_version�replacerr�strr�
ValueError�UnicodeEncodeError)r r�irrr�test_getint�s&
zTclTest.test_getintcCs�|jj}|�|�d�d�|�|�d�d�|�|�d�d�|�|�d�d�|�t|j�|�t|jdd�|�t|jd�|�t|jd	�|�tttf|jd
�|�tttf|jd�dS)Nz 42 gE@z 42.5 g@E@rMz42.5rNs42.5rz42.5u42.5�)	r&r'r,�	getdoublerrrrSrT)r rrrr�test_getdouble�s
zTclTest.test_getdoublecCs�|jj}|�|�d�d�|�|�d�d�|�|�d�d�|�|�d�d�|�t|j�|�t|jdd�|�t|jd�|�t|jd�|�t|jd	�|�tttf|jd
�|�tttf|jd�dS)N�onTr*rMrFsong�?rzonuon�)	r&r'ZassertIs�
getbooleanrrrrSrT)r rrrr�test_getboolean�s
zTclTest.test_getbooleanc	Cs~|j}ttjd�� }|�tjtj�|�d�WdQRX|�tj�|�|�	d�d�|�|�	d�d�|�|�	d�d�dS)	N�wzKset a 1
            set b 2
            set c [ expr $a + $b ]
            zset ar*zset b�2zset c�3)
r&�openr�TESTFN�
addCleanup�unlink�write�evalfiler,r+)r r�frrr�testEvalFile�szTclTest.testEvalFilec	Csl|j}ttjd�� }|�tjtj�|�d�WdQRX|�tj�|�|�	d�d�|�|�	d�d�dS)Nr\z>
            set a "ab"
            set b "a\0b"
            zset azabzset b)
r&r_rr`rarbrcrdr,r+)r rrerrr�test_evalfile_null_in_result�sz$TclTest.test_evalfile_null_in_resultc
CsP|j}d}yt�|�Wn"tk
r:}zWdd}~XYnX|�t|j|�dS)NZ
doesnotexists)r&�os�remove�	Exceptionrrrd)r r�filename�errr�testEvalFileException�szTclTest.testEvalFileExceptioncCs|j}|�t|jd�dS)Nzpackage require DNE)r&rrr+)r rrrr�testPackageRequireException�sz#TclTest.testPackageRequireException�win32zRequires Windowsc	Cs�tj�tj�}|ddkr$t�d��dtjd|d|dd�f}tj�|�sZt�d��t	�
�� }|�d	�t�
|d
dg�}WdQRX|�d|�dS)
Nr?�:z$Absolute path should have drive partz\\%s\%s$\%sZCOMPUTERNAMEr�zCannot connect to UNC PathZTCL_LIBRARYz-czimport tkinter; print(tkinter)stkinter)rh�path�abspath�sys�
executable�unittestZSkipTest�environ�existsrZEnvironmentVarGuardZunset�
subprocessZcheck_output�assertIn)r �fullnameZunc_name�env�stdoutrrr�testLoadWithUNC�s




zTclTest.testLoadWithUNCcsJ�j���ddd���ddd���fdd�}��t�j���t�jdd	���t�jd
���t�jd�|dd
�|dd�|dd�|dd�|dd�|dd
�|dd
�|dd�|dd�|dd�|dd�|dd �|d!d�|d"d#�|d$d#�|d%d&�|d'd(�|d)d(�|d*d+�td,k�rF|d-td.��dS)/Nr1rrqr
rHcs&��|�}��||���|t�dS)N)�
exprstringr,�assertIsInstancerR)�expr�expected�result)r rrr�check�s
z&TclTest.test_exprstring.<locals>.checkz8.2z+6s8.2 + 6�spamrLr@z8.2 + 6z14.2z3.1 + $az6.1z2 + "$a.$b"z5.6z4*[llength "6 2"]�8z{word one} < "word $a"z4*2 < 7zhypot($a, 4)z5.0z5 / 4r*z5 / 4.0z1.25z$5 / ( [string length "abcd"] + 0.0 )z20.0/5.0z4.0z"0x03" > "2"u[string length "a½€"]r^z[string length "a\xbd\u20ac"]z"abc"�abcu"a½€"ua½€z
"a\xbd\u20ac"z"a\0b"zab)rGrIz2**64l)r&rrrrrrPrR)r r�r)r rr�test_exprstring�s:



















zTclTest.test_exprstringcs2�j���ddd���ddd���fdd�}��t�j���t�jdd	���t�jd
���t�jd�|dd
�|dd�|dd�|dd�|dd�|dd
�|dd
�|dd�|dd�|dd�|dd�|dd �|d!d�|d"d#�|d$d#���t�jd%�td&k�r.|d'td(��dS))Nr1rrqr
rHcs&��|�}��||���|t�dS)N)�
exprdoubler,r��float)r�r�r�)r rrrr�"s
z&TclTest.test_exprdouble.<locals>.checkz8.2z+6s8.2 + 6r�rLgz8.2 + 6gffffff,@z3.1 + $agffffff@z2 + "$a.$b"gffffff@z4*[llength "6 2"]g @z{word one} < "word $a"z4*2 < 7zhypot($a, 4)g@z5 / 4g�?z5 / 4.0g�?z$5 / ( [string length "abcd"] + 0.0 )z20.0/5.0g@z"0x03" > "2"u[string length "a½€"]g@z[string length "a\xbd\u20ac"]z"abc")rGrIz2**64l)r&rrrr�rrPr�)r r�r)r rr�test_exprdoubles4















zTclTest.test_exprdoublecs4�j���ddd���ddd���fdd�}��t�j���t�jdd	���t�jd
���t�jd�|dd
�|dd�|dd�|dd�|dd�|dd
�|dd
�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|d d���t�jd!�td"k�r0��t�jd#�dS)$Nr1rrqr
rHcs&��|�}��||���|t�dS)N)�exprlongr,r�r)r�r�r�)r rrrr�Bs
z$TclTest.test_exprlong.<locals>.checkz8.2z+6s8.2 + 6r�rLrz8.2 + 6�z3.1 + $az2 + "$a.$b"rIz4*[llength "6 2"]rGz{word one} < "word $a"z4*2 < 7zhypot($a, 4)z5 / 4r?z5 / 4.0z$5 / ( [string length "abcd"] + 0.0 )z20.0/5.0�z"0x03" > "2"u[string length "a½€"]z[string length "a\xbd\u20ac"]z"abc")rGrIz2**64)r&rrrr�rrP)r r�r)r rr�
test_exprlong>s4















zTclTest.test_exprlongcs��j���ddd���ddd���fdd�}��t�j���t�jdd	���t�jd
���t�jd�|dd
�x2dD]*}||d
�|d|d
�|d|d
�q�Wx2dD]*}||d�|d|d�|d|d�q�W|dd�|dd�|dd�|dd�|dd
�|dd
�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|d d���t�jd!�td"k�r�|d#d�dS)$Nr1rrqr
rHcs2��|�}��||���|t���|t�dS)N)�exprbooleanr,r�rZassertNotIsInstance�bool)r�r�r�)r rrrr�bs
z'TclTest.test_exprboolean.<locals>.checkz8.2z+6s8.2 + 6r�rLF)r@�false�no�offz"%s"z{%s})r*�true�yesrYTz8.2 + 6z3.1 + $az2 + "$a.$b"z4*[llength "6 2"]z{word one} < "word $a"z4*2 < 7zhypot($a, 4)z5 / 4z5 / 4.0z$5 / ( [string length "abcd"] + 0.0 )z20.0/5.0z"0x03" > "2"u[string length "a½€"]z[string length "a\xbd\u20ac"]z"abc")rGrIz2**64)r&rrrr�rrP)r r��valuer)r rr�test_exprboolean^sD



















zTclTest.test_exprboolean)rGrIzrequires Tcl version >= 8.5csh�j���fdd�}|dd�|dd�|dd�|dd�|d	d�|d
d�|dd�|dd�dS)
NcsV��d|�}���r.��||���|t�n$��||tt|��f���|t�dS)Nr�)rr(r,r�rrzrR)r�r�r�)r rrrr��sz$TclTest.test_booleans.<locals>.checkr�Tr�rYr�Fr�r�z1 < 2z1 > 2)r&)r r�r)r rr�
test_booleans�s






zTclTest.test_booleanscCs�|j}x\|��D]P}|�dt|��}|jrD|�||�|�|t�q|�|t|��|�|t�qWtdkr�|�	t
|jdtdd��dS)Nr�)rGrIrCi�)r&rJrrRr(r,r�rrPrr)r rrUr�rrr�test_expr_bignum�szTclTest.test_expr_bignumcs��fdd�}��|d��jr dnd���|d��jr:dnd���|d�d���|d�d���|d	�d	���|d
�d
���|d�d���|d�d���|d
�d
���|d��jr�dnd
���|d��jr�dnd���|d��jr�dnd�x2���D]&}��||��j�r"|nt|���qWtdk�rX��|dd�tdd��x`ddddtjjtjjtjjtjjfD]4}�j�r���||�|�n��t	||��|��q�W�j�r|t	d��}��
||���|t	d��t	d����|t	d��t	d��n<��t	|t	d���t	d����t	|t	d���t	d����|d��j�rbdnd���|ddd gg��j�r�d!nd"�dS)#Ncs�j�dd|�S)Nr1�_)r&r)r�)r rr�	passValue�sz.TclTest.test_passing_values.<locals>.passValueTr*Fr@�stringu	string€u
string💻zstringu	string½u
string€ustring💻sstringsstr��ingu
strÀ€ingsstr�ingustr½ing)rGrIrCi�gg�?g�gUUUUUU�?�nan�inf)r?r])g333333@z1 2 3.4rr
�c)r)r
r�za {b c})r,r(rJrRrPrt�
float_info�min�maxr�ZassertNotEqual)r r�rUrer)r r�test_passing_values�sL



&

 
zTclTest.test_passing_valuescs�d��fdd�}�j�d|����jjjd�d,�jd���fdd�}�fdd�}|d	d
�|dd�|d
�|d�|d�|d�|d�|dd
�|dd�|dd�|dd�|d�|d�|d�|dd�|dd�|dd�x���D]}||t|��q�Wtdk�r.|d d!td d!��xd"D]}||t	|���q4Wx8d#t
jjt
jj
t
jjt
jj
fD]}|||d��qpW|td$�|d�|td$�|d�|d%d�|d&d'�|d(d gd)d*gd+ggd'�dS)-Ncs|�|S)Nr)�arg)r�rr�testfunc�sz+TclTest.test_user_command.<locals>.testfuncr�)�eqcsN|dkr|}d��j�d|�}���t�|�|���|t�|||�dS)Nr�)r&rr�rR)r�r�r��r)r�r rrr��s
z(TclTest.test_user_command.<locals>.checkcs �jt|�|t|�dd�dS)Ng�����|�=)Zdelta)ZassertAlmostEqualr��abs)�actualr�)r rr�float_eq�sz+TclTest.test_user_command.<locals>.float_eqTr*Fr@r�ustring½u	string€u
string💻rLsstrings	string€ustring€sstring��zstringu	string½u
string€sstringsstr��ingu
strÀ€ingsstr��ing€ustrÀ€ing€)rGrIrCi�)gg�?g�gUUUUUU�?r�r)r?)rC)rqr�z5 6rz1 2 {3 4} {5 6} {}r?rqr�z5 6)N)r&�
createcommandrar'�
deletecommandr,rJrRrP�reprrtr�r�r�r�)r r�r�r�rUrer)r�r r�test_user_command�sJ













zTclTest.test_user_commandc	Cs,|jjj}|jjj}|�t|�|�t|dd�|�t|d�dddddd	d
ddd
ddddddddgdfdddggdddgff|dddd�|jr�dndfg}t�}tdkr�|jr�|dkr�d }nd!}||d"d#d$d%d&d�|fg7}d'|jt|f}x*|D]"\}}|�	||�|d(||f�q�W|�t
|d)�dS)*Nrr
rC)r])r])rLr)z{})rL)z"")rL)z
a
 b	
 c
 )rr
r�)s
a
 b	
 c
 )rr
r�)ua €)ru€)ua 💻)ru💻)sa €)ru€)s	a��b c��d)zabzcd)za {b c})rzb c)za b\ c)rzb c))rzb c)rzb c)za 2)rr]))rrC)rrC)za 3.4)rz3.4))rg333333@)rg333333@)rrrr��listr?r])g333333@)r?r])g333333@)r*r]z3.4)rGrI)rGrIrI)�12u€u€z3.4)�u€s€)g333333@�dict�creater�u€s€z4want objects? %s, Tcl version: %s, Tk patchlevel: %sz
arg=%a, %s�{)r&r'�	splitlistrrrr(rrPr,r)	r r�r�	testcasesZ
tk_patchlevelr�Zdbg_infor��resrrr�test_splitlistsT



zTclTest.test_splitlistcCs|jjj}|jjj}|�t|�|�t|dd�|�t|d�dddddd	d
ddd
ddddddddddddgdfddgdfdddggdf|ddd d!�|jr�d"nd#fg}td$kr�|jr�t�d%kr�d&}nd'}||d(d)d*d+d,d!�|fg7}x$|D]\}}|j	||�||d-�q�WdS).Nrr
rC)r]r])rLrL)z{}rL)z""rL)r�r�)z
a
 b	
 c
 )rr
r�)s
a
 b	
 c
 )rr
r�)ua €)ru€)sa €)ru€)sa��bzab)s	a��b c��d)zabzcd)s
{a��b c��dz{ab cd)za {b c})r)r
r�)za b\ c)r)r
r�))rsb c)r)r
r�))rzb c)r)r
r�)za 2)rr]))rrC)rrC)za 3.4)rz3.4))rg333333@)rg333333@))r)rCg333333@)r)rCg333333@)rrrzb c)r)r
r�r�r�r?r])g333333@)r?r])g333333@)r*r]z3.4)rGrI)rGrIrI)r�u€u€z3.4)r�u€s€)g333333@r�r�r�u€s€)�msg)
r&r'�splitrrrr(rPrr,)r r�rr�r�r�r�rrr�
test_split=sT




zTclTest.test_splitc
CsBtj}|jj}d}|�|||d�dddd��|�|||�dddd��d}|�|||d�d	dd
d��|�|||�d	dd
d��|�t||d�|�t||d�|�d
dd	dddd�}|�|||�|jr�d	ndddd��t	dk�r>|�dddd	dddd�}|j�rt
�dk�r dddd�}nd	ddd�}|�|||�|�dS)Nz#-a {1 2 3} -something foo status {}Fz1 2 3�foorL)z-az
-something�status)rZ	somethingr�)z-a)r?rCrqz
-somethingr�r�z{})r?rCrqz{}z-a b -c )z-ar
z-cr�z-az
-somethingr�r)rGrIr�r�)rGrIrI)�tkinterZ
_splitdictr&r'r,r�RuntimeErrorrr(rPr)r Z	splitdictrr�r�rrr�test_splitdictns4
zTclTest.test_splitdictcs�tj��jj��fdd�����fdd�}|d�|d�|d�|d�|d	�|d
�|d�|d�|d
�|d�|d�|d�|d�|d�|d�|d�|d�|d�|d�|d�|d�|d�|d�|d�dS)Ncs��d|d�S)NZlindexr)r)�s)rrr�unpack�sz!TclTest.test_join.<locals>.unpackcs�����|g��|�����|dg��|������|gg���|������|dgg���|������|gdg���|������|dgdg���|�dS)Nr)r,)r�)�joinr r�rrr��sz TclTest.test_join.<locals>.checkrLr�zsp amzsp	amzsp
amz 	
z{spam}z{sp am}z"spam"z"sp am"z{"spam"}z"{spam}"zsp\amz"sp\am"z	"{}" "{}"z"\z"{z"}z
\z
{z
}z\
z{
z}
)r�Z_joinr&r')r r�r)r�r rr�r�	test_join�s8zTclTest.test_joincCs|�ttj�dS)N)rrrZTcl_Obj)r rrr�test_new_tcl_obj�szTclTest.test_new_tcl_objN)/r"r#r$r)r-r.r/r0r2r3r6r8r9r;r<r=r>rBrDrErJrVrXr[rfrgrmrnrv�
skipUnlessrt�platformr~r�r�r�r�rPr�r�r�r�r�r�r�r�r�rrrrr%.sN

	#  )
-711#%r%c@s�eZdZdd�Zeje�ee	kd�ej
edddd�dd	����Zeje�ee	kd�ej
edd
dd�dd����Zeje�ee	kd�ej
edd
dd�dd����Z
dS)�
BigmemTclTestcCst�|_dS)N)rr&)r rrrr)�szBigmemTclTest.setUpzneeds UINT_MAX < SIZE_MAXr?rIF)�sizeZmemuseZdry_runcCs$d|}|�t|jjdd|d�dS)N� r��indexr)r�
OverflowErrorr&r)r r�r�rrr�test_huge_string_call�sz#BigmemTclTest.test_huge_string_callrCcCsT|jj}dd|}|�t|j|�|�t|j|�|�t|j|�|�t|j|�|�t|j|�|�t|j	|�|�t|j
|�|�t|j|dd�|�t|jd|d�|�t|j|�|�t|jd|�|�t|j
|�|�t|j
|�|�t|j|�|�t|j|�|�t|j|�|�t|j|�|�t|j|t�|�t|j|�dS)Nr*r��xr)r&r'rr�rOrWrZr+rd�recordZadderrorinfor7rArr�r�r�r�r�r�r�)r r�r'r�rrr�test_huge_string_builtins�s*z'BigmemTclTest.test_huge_string_builtinsrHcCsJ|jj}dd|}|�t|j|�|�t|j|�|�t|jd|�dS)Nr*r�r�)r&r'rr�rdrA)r r�r'r�rrr�test_huge_string_builtins2�s
z(BigmemTclTest.test_huge_string_builtins2N)r"r#r$r)rZcpython_onlyrvr�rrZ
bigmemtestr�r�r�rrrrr��s  r�cCs"tjrt�}td|�dd��dS)Nzpatchlevel =r	r
)r�verboser�printr)rrrr�setUpModule�sr�cCst�ttt�dS)N)rZrun_unittestr%rr�rrrr�	test_main�sr��__main__) rvrryrtrhZtestr�
import_modulerr�rrZ	_testcapirr�ImportError�maxsize�tuple�maprZTCL_VERSIONr�rPrrZTestCaserr%r�r�r�r"rrrr�<module>s8
2