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.10/test/__pycache__/test_tcl.cpython-310.opt-2.pyc
o

�i*~�@s0ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddl	mZe
�d�Z
ddlZddlmZddl
mZz
ddlmZmZWney[ejZZYnweeee
j�d	���Zdad
d�ZGdd
�d
ej�ZGdd�dej�Z Gdd�dej�Z!dd�Z"e#dkr�e�$�dSdS)�N)�support)�
import_helper)�	os_helper�_tkinter)�Tcl)�TclError)�INT_MAX�PY_SSIZE_T_MAX�.cCs�tdurEt�}|�dd�}t�d|�}|��\}}}}t|�t|�t|�}}}dddd�|}|dkr>||||dfatS||d||fatS)	N�info�
patchlevelz(\d+)\.(\d+)([ab.])(\d+)�alpha�beta�final)�a�br
r)�_tk_patchlevelr�call�re�	fullmatch�groups�int)�tclr�m�major�minor�releaselevel�serial�r�*/usr/local/lib/python3.10/test/test_tcl.py�get_tk_patchlevels�r c@seZdZdd�ZdS)�TkinterTestcCsF|�ttjd�|�ttji�|�ttjd�|�ttjdh�dS)NT�string�set)�assertRaises�	TypeErrorrZ_flatten��selfrrr�testFlattenLen-szTkinterTest.testFlattenLenN)�__name__�
__module__�__qualname__r(rrrrr!+sr!c@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�Zd3d4�Zd5d6�Ze�e j!d7kd8�d9d:��Z"d;d<�Z#d=d>�Z$d?d@�Z%dAdB�Z&e�e'dCkdD�dEdF��Z(dGdH�Z)dIdJ�Z*dKdL�Z+dMdN�Z,dOdP�Z-dQdR�Z.dSdT�Z/e0j1dUdV��Z2dWS)X�TclTestcCst�|_|jj��|_dS�N)r�interp�tk�wantobjectsr&rrr�setUp:sz
TclTest.setUpcCs&|j}|�d�|�|�d�d�dS)N�set a 1�set a�1)r.�eval�assertEqual�r'rrrr�testEval>�
zTclTest.testEvalcC�|j}|�|�d�d�dS)Nzset a "a\0b"�ab)r.r6r5r7rrr�test_eval_null_in_resultC�z TclTest.test_eval_null_in_resultcCr:)Nzset a "<\ud83d\udcbb>"�<💻>)r.�assertInr5r7rrr�test_eval_surrogates_in_resultGr=z&TclTest.test_eval_surrogates_in_resultcC�|j}|�t|jd�dS)Nr3�r.r$rr5r7rrr�testEvalExceptionK�zTclTest.testEvalExceptioncCrA)Nz
this is wrongrBr7rrr�testEvalException2OrDzTclTest.testEvalException2cCs,|j}|�ddd�|�|�dd�d�dS)Nr#rr4)r.rr6r7rrr�testCallSszTclTest.testCallcCs|j}|�t|jdd�dS)Nr#r�r.r$rrr7rrr�testCallExceptionXr=zTclTest.testCallExceptioncCs|j}|�t|jddd�dS)N�this�isZwrongrGr7rrr�testCallException2\szTclTest.testCallException2cC�(|j}|�dd�|�|�d�d�dS)Nrr4r3�r.�setvarr6r5r7rrr�
testSetVar`�zTclTest.testSetVarcCrL)N�a(1)r4zset a(1)rMr7rrr�testSetVarArrayerPzTclTest.testSetVarArraycC�&|j}|�d�|�|�d�d�dS)Nr2rr4�r.r5r6�getvarr7rrr�
testGetVarjr9zTclTest.testGetVarcCrS)Nz
set a(1) 1rQr4rTr7rrr�testGetVarArrayor9zTclTest.testGetVarArraycCrA�Nr�r.r$rrUr7rrr�testGetVarExceptiontrDzTclTest.testGetVarExceptioncCrA)NrQrYr7rrr�testGetVarArrayExceptionxrDz TclTest.testGetVarArrayExceptioncCsD|j}|�dd�|�|�d�d�|�d�|�|�d�d�dS)Nr�z
info exists ar4�0�r.rNr6r5�unsetvarr7rrr�testUnsetVar|s

zTclTest.testUnsetVarcCst|j}|�dd�|�dd�|�|�d�d�|�|�d�d�|�d�|�|�d�d�|�|�d�d�dS)	NrQr\za(2)�zinfo exists a(1)r4zinfo exists a(2)r]r^r7rrr�testUnsetVarArray�s
zTclTest.testUnsetVarArraycCrArX)r.r$rr_r7rrr�testUnsetVarException�rDzTclTest.testUnsetVarExceptioncCsRd}tdkr't�}|dksd|krdkr'n|S|dddd	dd	f7}|S)
N)	rr\���i���i�ll����l����l�������)rf�rr)rfrgrf)rfrhll����ra��)�tcl_versionr )r'Zintegers�vrrr�get_integers�s�zTclTest.get_integersc	Cs0|jj}|��D]6}|�|�d|�|�tdkr$|�|�d|�|�|�|�d|�dd��|�|�|�d|�|�qtdkrO|�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 rez %#o �o�z %#x rari�*Z42�10s42�E@rz42u42�)
r.r/rlr6�getintrj�replacer$r�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 rqz 42.5 g@E@roz42.5rps42.5rz42.5u42.5�)	r.r/r6�	getdoubler$r%rrurvr7rrr�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�onTr4rorFson��?rzonuon�)	r.r/ZassertIs�
getbooleanr$r%rrurvr7rrr�test_getboolean�s ��zTclTest.test_getbooleancCs�|j}tj}|�tj|�t|d��
}|�d�Wd�n1s"wY|�|�|�|�	d�d�|�|�	d�d�|�|�	d�d�dS)	N�wzKset a 1
            set b 2
            set c [ expr $a + $b ]
            r3r4�set b�2zset c�3�
r.r�TESTFN_ASCII�
addCleanup�unlink�open�write�evalfiler6r5�r'r�filename�frrr�testEvalFile�s�
zTclTest.testEvalFilecCs�|j}tj}|�tj|�t|d��
}|�d�Wd�n1s"wY|�|�|�|�	d�d�|�|�	d�d�dS)Nrz>
            set a "ab"
            set b "a\0b"
            r3r;r�r�r�rrr�test_evalfile_null_in_result�s�
z$TclTest.test_evalfile_null_in_resultcCs�|j}|�dd�}|�|jdd|�|�ddd�tj}|�tj|�t|d��
}|�d�Wd�n1s8wY|�|�|�	|�
d�d�|�	|�
d�d�dS)	N�encoding�systemzutf-8�wbsM
            set a "<��>"
            set b "<\ud83d\udcbb>"
            r3r>r�)r.rr�rr�r�r�r�r�r6r5)r'rr�r�r�rrr�"test_evalfile_surrogates_in_result�s�
z*TclTest.test_evalfile_surrogates_in_resultc
CsR|j}d}zt�|�Wnty}zWYd}~nd}~ww|�t|j|�dS)NZ
doesnotexists)r.�os�remove�	Exceptionr$rr�)r'rr��errr�testEvalFileException�s��zTclTest.testEvalFileExceptioncCrA)Nzpackage require DNErBr7rrr�testPackageRequireExceptionrDz#TclTest.testPackageRequireException�win32zRequires WindowscCs�tj�tj�}|ddkrt�d��dtjd|d|dd�f}tj�|�s-t�d��t	�
��}|�d	�t�
|d
dg�}Wd�n1sIwY|�d|�dS)
Nr\�:z$Absolute path should have drive partz\\%s\%s$\%sZCOMPUTERNAMEr�zCannot connect to UNC PathZTCL_LIBRARY�-czimport tkinter; print(tkinter)stkinter)r��path�abspath�sys�
executable�unittestZSkipTest�environ�existsrZEnvironmentVarGuardZunset�
subprocess�check_outputr?)r'�fullnameZunc_name�env�stdoutrrr�testLoadWithUNC
s 


�


��zTclTest.testLoadWithUNCcsL�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,kr�|d-td.��dSdS)/Nr#rr�rrhc�&��|�}��||���|t�dSr-)�
exprstringr6�assertIsInstancert��expr�expected�resultr7rr�check$�
z&TclTest.test_exprstring.<locals>.check�8.2�+6�8.2 + 6�spamrnr]�8.2 + 6z14.2�3.1 + $az6.1�2 + "$a.$b"z5.6�4*[llength "6 2"]�8�{word one} < "word $a"�4*2 < 7�hypot($a, 4)z5.0�5 / 4r4�5 / 4.0z1.25�$5 / ( [string length "abcd"] + 0.0 )�20.0/5.0z4.0�"0x03" > "2"�[string length "a½€"]r��[string length "a\xbd\u20ac"]�"abc"�abcu"a½€"ua½€z
"a\xbd\u20ac"z"a\0b"r;re�2**64�)r.rr$r%r�rrjrt�r'r�rr7r�test_exprstring s<


















�zTclTest.test_exprstringcs4�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&kr�|d'td(��dSdS))Nr#rr�rrhcr�r-)�
exprdoubler6r��floatr�r7rrr�Gr�z&TclTest.test_exprdouble.<locals>.checkr�r�r�r�rn�r�gffffff,@r�gffffff@r�gffffff@r�g @r�r�r�g@r�r|r�g�?r�r�g@r�r�g@r�r�rer�r�)r.rr$r%r�rrjr�r�rr7r�test_exprdoubleCs6














�zTclTest.test_exprdoublecs6�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"kr���t�jd#�dSdS)$Nr#rr�rrhcr�r-)�exprlongr6r�rr�r7rrr�gr�z$TclTest.test_exprlong.<locals>.checkr�r�r�r�rnrr��r�r�rgr�rfr�r�r�r�r\r�r�r��r�r�r�r�rer�)r.rr$r%r�rrjr�rr7r�
test_exprlongcs6














�zTclTest.test_exprlongcs��j���ddd���ddd���fdd�}��t�j���t�jdd	���t�jd
���t�jd�|dd
�dD]}||d
�|d|d
�|d|d
�q?dD]}||d�|d|d�|d|d�qW|dd�|dd�|dd�|dd�|dd
�|dd
�|dd�|dd�|dd�|dd�|dd�|dd�|dd�|d d���t�jd!�td"kr�|d#d�dSdS)$Nr#rr�rrhcs2��|�}��||���|t���|t�dSr-)�exprbooleanr6r�rZassertNotIsInstance�boolr�r7rrr��s
z'TclTest.test_exprboolean.<locals>.checkr�r�r�r�rnF)r]�false�no�offz"%s"z{%s})r4�true�yesr{Tr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rer�)r.rr$r%r�rrj)r'r��valuerr7r�test_exprboolean�sF
















�zTclTest.test_exprbooleanrezrequires Tcl version >= 8.5csh�j���fdd�}|dd�|dd�|dd�|dd�|d	d�|d
d�|dd�|dd�dS)
NcsX��d|�}���r��||���|t�dS��||tt|��f���|t�dS)Nr�)rr0r6r�rr?rtr�r7rrr��sz$TclTest.test_booleans.<locals>.checkr�Tr�r{r�Fr�r�z1 < 2z1 > 2)r.r�rr7r�
test_booleans�s






zTclTest.test_booleanscCs�|j}|��D](}|�dt|��}|jr!|�||�|�|t�q|�|t|��|�|t�qt�dkrD|�	t
|jdtdd��dSdS)Nr�rerari)r.rlrrtr0r6r�rr r$r)r'rrwr�rrr�test_expr_bignum�s
�zTclTest.test_expr_bignumcs��fdd�}��|d��jrdnd���|d��jrdnd���|d�d���|d�d���|d	�d	���|d
�d
���|d�d���|d�d���|d
�d
�tjdkrm��|d�d���|d�d���|d��jrwdnd
���|d��jr�dnd���|d��jr�dnd����D]}��||��jr�|nt|��q�tdkr���|dd�tdd��ddddtjjtjj	tjjtjj	fD]}�jrވ�||�|�qЈ�t
||��|�qЈ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�r=d!nd"���|d#d$d%gg��j�rRd&�dSd'�dS)(Ncs�j�dd|�S)Nr#�_)r.r�r�r&rr�	passValue�sz.TclTest.test_passing_values.<locals>.passValueTr4Fr]r"�	string€�
string💻�string�	string½�
string€ustring💻r��<���>�<€>�<������>r>�string�str��ing�
strÀ€ingsstr�ingustr½ingrerarir�r|���UUUUUU�?�nan�inf�r\r���333333@z1 2 3.4rr�c�r)rr��a {b c})r6r0r��platformrlrtrj�
float_info�min�maxr�ZassertNotEqual)r'r�rwr�rr&r�test_passing_values�sl
�

�
�
�
�
� � 
�
��zTclTest.test_passing_valuescs�d��fdd�}�j�d|����jjjd�d1�jd���fdd�}�fdd�}|d	d
�|dd�|d
�|d�|d�|d�tjdkrS|dd�|dd�|d�|dd
�|dd�|dd�|dd�|d�|d�|d�|dd�|d d!�|d"d#����D]	}||t	|��q�t
d$kr�|d%d&t	d%d&��d'D]	}||t|��q�d(tjj
tjjtjj
tjjfD]}|||d�q�|td)�|d�|td)�|d�|d*d�|d+d,�|d-d%gd.d/gd0ggd,�dS)2Ncs|�|Sr-r)�arg)r�rr�testfuncsz+TclTest.test_user_command.<locals>.testfuncr�)�eqcsN|dur|}d��j�d|�}���t�|�|���|t�|||�dS)Nr�)r.rr�rt)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_eqs

�z+TclTest.test_user_command.<locals>.float_eqTr4Fr]r"ustring½r�r�r�r�r�r�r>rnsstrings	string€ustring€sstring��r�r�r�r�r�r�sstr��ing€ustrÀ€ing€rerari)r�r|r�r�r�r)r\)ra)r�r��5 6rz1 2 {3 4} {5 6} {}r\r�r�rr-)r.�
createcommandr�r/�
deletecommandr6r�r�rlrtrj�reprr�r�r�r�)r'r�r�rrwr�rrr�test_user_command�sR












�

zTclTest.test_user_commandc	Cs,|jjj}|jjj}|�t|�|�t|dd�|�t|d�dddddd	d
ddd
ddddddddddgdfdddggdddgff|dddd�|jrLdndfg}t�}td krq|jr^|d!krad"}nd#}||d$d%d&d'd(d�|fg7}d)|jt|f}|D]\}}|�	||�|d*||f�q{|�t
|d+�dS),Nrrra)r�)r�)rnr)�{}�rn)�""r�z
a
 b	
 c
 �rrr��s
a
 b	
 c
 r�ua €�r�€)ua 💻�ru💻�sa €r)sa 💻r)sa ��r�s	a��b c��d)r;zcd)r��r�b c)�a b\ cr)rr�za 2)rr���rrar�za 3.4)r�3.4��rr�r�rrrr��listr\r�r�r��r4r�rre�rfrgrg�Z12ru€r��r�€r��dict�creater&rr'z4want objects? %s, Tcl version: %s, Tk patchlevel: %sz
arg=%a, %s�{)r.r/�	splitlistrr$r%r0r rjr6r)	r'r+r�	testcasesZ
tk_patchlevelr�Zdbg_infor��resrrr�test_splitlist9sd


����
�
�zTclTest.test_splitlistcCsj|jjj}|jjj}t���$t�ddt�|�t	|�|�t	|dd�|�t	|d�Wd�n1s5wYdddd	d
ddd
ddddddddddddddgdfddgdfdddggdf|d d!d"d#�|j
rjd$nd%fg}td&kr�|j
rzt�d'kr}d(}nd)}||d*d+d,d-d.d#�|fg7}|D]#\}}|�
t��|j||�||d/�Wd�n1s�wYq�dS)0N�ignorez\bsplit\b.*\bsplitlist\brrra)r�r�)rnrn)r
rn)rrn)r*r*r
rrr)sa��br;r)s
{a��b c��dz{ab cd)r�r�)rr�))rsb cr�)rr�rrrr)�r)rar�r0r rrr�r�r!r\r�r�r�r"rer#r$r%r(r)r&rr')�msg)r.r/�splitr�warnings�catch_warnings�filterwarnings�DeprecationWarningr$r%r0rjr ZassertWarnsr6)r'r2rr,r�r�r-rrr�
test_splitlsn


��

�������zTclTest.test_splitc
Cs@tj}|jj}d}|�|||d�dddd��|�|||�dddd��d}|�|||d�d	dd
d��|�|||�d	dd
d��|�t||d�|�t||d�|�d
dd	dddd�}|�|||�|jrgd	ndddd��t	dkr�|�dddd	dddd�}|jr�t
�dkr�dddd�}nd	ddd�}|�|||�|�dSdS)Nz#-a {1 2 3} -something foo status {}Fz1 2 3�foorn)�-a�
-something�status)rZ	somethingr;)r9�r\rar�r:r8r;r
r<r
z-a b -c )r9rr�r!r9r:r;rrer(r)r#)�tkinterZ
_splitdictr.r/r6r$�RuntimeErrorrr0rjr )r'Z	splitdictrr�r�rrr�test_splitdict�sF
�
�
�
������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)r6r�)�joinr'rBrrr��s$z TclTest.test_join.<locals>.checkrnr�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)rCr'rrBr�	test_join�s8zTclTest.test_joincCs.t�|tj�t�|tj�t�|tj�dSr-)rZcheck_disallow_instantiationrZTcl_ObjZTkttTypeZ	TkappTyper&rrr�test_new_tcl_obj�szTclTest.test_new_tcl_objN)3r)r*r+r1r8r<r@rCrErFrHrKrOrRrVrWrZr[r`rbrcrlrxrzr~r�r�r�r�r�r��
skipUnlessr�r�r�r�r�r�r�rjr�r�r�r	r.r7r?rDr�cpython_onlyrErrrrr,8sZ

	
#  )

2:35#%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�|_dSr-)rr.r&rrrr1�szBigmemTclTest.setUpzneeds UINT_MAX < SIZE_MAXr\rgF)�sizeZmemuse�dry_runcCs$d|}|�t|jjdd|d�dS)N� r"�indexr)r$�
OverflowErrorr.r)r'rIr�rrr�test_huge_string_call�sz#BigmemTclTest.test_huge_string_callracCsT|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)Nr4rK�xr)r.r/r$rMrrryr}r5r��recordZadderrorinforNr_r�r�r�r+r2rr�r�r'rIr/r�rrr�test_huge_string_builtins�s*z'BigmemTclTest.test_huge_string_builtinsrhcCsJ|jj}dd|}|�t|j|�|�t|j|�|�t|jd|�dS)Nr4rKrO)r.r/r$rMr�r_rQrrr�test_huge_string_builtins2s
z(BigmemTclTest.test_huge_string_builtins2N)r)r*r+r1rrGr�rFrr	Z
bigmemtestrNrRrSrrrrrH�srHcCs&tjrt�}td|�dd��dSdS)Nzpatchlevel =rr)r�verboser�printrrArrr�setUpModule!s�rV�__main__)%r��localerr�r�r�r3�testrZtest.supportrr�
import_modulerr=rrZ	_testcapirr	�ImportError�maxsize�tuple�maprZTCL_VERSIONr2rjrr ZTestCaser!r,rHrVr)�mainrrrr�<module>sD
�
<2�