Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/test_curses.cpython-310.pyc
o

�9jT��@sJddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZddl
mZed�ed�Zed�ed�zddlZWn	eyOYnwdd�Zd	d
�Zdd�Zej�d
�ZdZe�epledkde�e�ejdkd�Gdd�dej���ZGdd�dej�ZGdd�dej�Zdd�Ze dkr�e�!�dSdS)�N)�requires�verbose�SaveSignals�cpython_only�check_disallow_instantiation)�
import_module�curseszcurses.asciizcurses.textpadcCst�tt|�d|�S)Nzrequires curses.%s)�unittest�
skipUnless�hasattrr��name�r�'/usr/lib/python3.10/test/test_curses.py�requires_curses_funcs�rcs�fdd�}|S)Ncst�����fdd��}|S)Ncs4t|j��s
t�d����|g|�Ri|��dS)Nzrequires curses.window.%s)r�stdscrr	�SkipTest��self�args�kwargs)r
�testrr�wrapped!sz:requires_curses_window_meth.<locals>.deco.<locals>.wrapped��	functools�wraps�rrr�rr�deco sz)requires_curses_window_meth.<locals>.decor)r
rrrr�requires_curses_window_methsrcst����fdd��}|S)Ncs4t��s	|�d�t���|g|�Ri|��dS)N�requires colors support)r�
has_colors�skipTest�start_colorrrrrr+s
z requires_colors.<locals>.wrappedrrrrr�requires_colors*sr$�TERMi��unknownz*$TERM=%r, calling initscr() may cause exit�cygwinz!cygwin's curses mostly just hangsc@seZdZedd��Zdd�Zed�dd��Zed�d	d
��Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zed%�d&d'��Zd(d)�Zd*d+�Zd,d-�Zed.�d/d0��Zed1�d2d3��Zd4d5�Zd6d7�Zd8d9�Zd:d;�Z d<d=�Z!d>d?�Z"d@dA�Z#dBdC�Z$dDdE�Z%edF�dGdH��Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*edQ�dRdS��Z+edT�dUdV��Z,edW�dXdY��Z-dZd[�Z.d\d]�Z/d^d_�Z0d`da�Z1dbdc�Z2e3ddde��Z4e3dfdg��Z5dhdi�Z6e3djdk��Z7e3dldm��Z8e3dndo��Z9edp�e3dqdr���Z:dsdt�Z;edu�dvdw��Z<edx�dydz��Z=ed{�d|d}��Z>ed{�d~d��Z?ed{�d�d���Z@eAed{�d�d����ZBed��d�d���ZCed��d�d���ZDed��d�d���ZEd�d��ZFd�d��ZGed��eH�IeJeKd�d��d�kd��d�d����ZLd�d��ZMd�d��ZNed.�d�d���ZOd�S)��
TestCursescCs4tr
tdt��tjdd�tj��}tj|d�dS)NzTERM=T��file�flush)�fd)	r�print�term�sys�stderr�
__stdout__�filenor�	setupterm)�cls�	stdout_fdrrr�
setUpClass=s
zTestCurses.setUpClasscCsNd|_tj|_tj��}tj��s`t�|�}|�tj|�|�tj	||�tj
��r2tj
}tj
|_n&z	tdddd�}WntyNt
jddd�}d|_Ynw|�|j�d|_t�	|��|�t�|_|j��|�|jj�tr�|jdur�tj��tj��t|jdd�t��|_|jr�t��|�tj�|�tj�|j��dS)	NTz/dev/tty�wbr)�	buffering)�moder8Fr))�isattyr/r1�outputr2�os�dup�
addCleanup�close�dup2�
__stderr__�open�OSError�tempfile�
TemporaryFiler�save_signals�save�restorerr0r+�stdoutr-r�initscrr�savetty�endwin�resetty�erase)rr5�dup_fd�tmprrr�setUpFs@





�



zTestCurses.setUp�filtercCst��dS�N)rrR�rrrr�test_filtervszTestCurses.test_filter�use_envcCst�d�t�d�dS)NFT)rrVrTrrr�test_use_env|s
zTestCurses.test_use_envcCs�t�dd�}|�|��d�|�|��d�|�|��d�t�dddd�}|�|��d�|�|��d�|�|��d	�|�d
d�}|�|��d�|�|��d
�|�|��d�|�ddd
d�}|�|��d�|�|��d
�|�|��d�|�dd
�}|�|��d�|�|��d�|�|��d�|�dddd
�}|�|��d�|�|��d�|�|��d�|�dd�|�|��d�|�|��d�|�|��d	�|�|��d�|�|��d
�|�|��d�|�|��d�|�|��d�|�|��d�|�	dd�|�|��d�|�|��d�|�|��d�|�	dd�|�|��d�|�|��d�|�|��d�dS)N��
�rr����r\)rXrY��)r^rX)rYr]��)r_r`��r^)�	�
)��)r^r_)rf���)rhrirrb)rrb)r^rb)
r�newwin�assertEqual�getbegyx�getparyx�getmaxyx�subwin�derwin�mvwin�mvderwin)r�win�win2�win3rrr�test_create_windows�sTzTestCurses.test_create_windowscCsj|j}|�dddd�}|�dd�|�dd�|�|��d�|�|��d�|��|�|��d	�dS)
NrYr]r^rXrbrera)r^re)rerc)rro�moverk�getyx�	cursyncup)rrrsrrr�test_move_cursor�szTestCurses.test_move_cursorcCs�|j}|��|�|��d�|��|�|��d�|��|�|��d�|��|�|��d�|��|�|��d�|�dd�|�|�d�d�|�|�d�d�|�|��d�|�ddd�|�|�d�d�|�dddd�}|�ddd	d
�}|��|��|�	�|�|��d�|�|��d�|��|��|��|�
�|�|��d�t|d�r�tj
�d�s�|��|��d
D] }|�|�|�d�|�|��|�|�|��|�q�dSdSdS)NFTrXr^rhrbrYr]r_r`�syncok�sunos)FT�a)r�refresh�assertIs�
is_wintouched�touchwin�
untouchwin�	touchline�is_linetouchedro�syncup�syncdownrr/�platform�
startswithr{�addch)rrrsrtr{rrr�test_refresh_control�sN

�zTestCurses.test_refresh_controlc	Csn|j}|j}|��|�dd�|�d�|�d�|�d�d}z|�|�Wn)ty9|�t|j|�YntyQ|�|�}|�	t
|�dt|��Ynw|�dtj
�|�ddd�|�dddtj
�|�|��d	�|��|�dd�|�d�|�d�|�d�|�ttf��
|�d
�Wd�n1s�wY|�dtj
�|�|��d�dS)Nr�A�A�A�€rbr^r_TuĔF)r�encodingr~rwr��UnicodeEncodeError�assertRaises�encode�
OverflowError�assertNotEqual�len�reprr�A_BOLDrr��echochar)rrr��c�encodedrrr�test_output_character�s<



�


�z TestCurses.test_output_characterc
Cs�|j}|j}|j|jfD]T}|�|j��D|�dd�|d�|d�d}z||�Wnty<|�t|j	|�Ynw|dt
j�|ddd�|dddt
j�Wd�n1s[wYq|j|j
fD]_}|�|j��O|�dd�|dd�|d	d�d
}z||d�Wnty�|�t|j	|�Ynw|dd�|ddt
j�|dddd�|ddddt
j�Wd�n1s�wYqgdS)Nr�abcdsabcduàßçđrbr^r_�1234s1234u١٢٣٤rX)rr��addstr�insstr�subTest�__qualname__rwr�r�r�rr��addnstr�insnstr)rrr��func�srrr�test_output_stringsH���

�
���zTestCurses.test_output_stringc	Cs�|j}dD]:}|j|d��*|�t|j|�|�t|j|d�|�t|j|�|�t|j|d�Wd�n1s:wYqdS)N)zasa)�argrb)rr�r��
ValueErrorr�r�r�r�)rrr�rrr�&test_output_string_embedded_null_chars:s���z1TestCurses.test_output_string_embedded_null_charscCs�|j}|�dddtj�|�dd�|�|��dtjB�|�|�dd�dtjB�|�dd�|�|��dd�d�|�|�d�dd�d	�|�|�dd
�dd�d�|�|�dd
d�d�|�t	|jd
�|�t	|jdd
d
�dS)Nrrb�ABCDr�r_�Crhs ABCD s ABr^resBCD ���)
rr�rr�rwrk�inch�instrr�r��rrrrr�test_read_from_windowDsz TestCurses.test_read_from_windowcCs�t�dddd�}dddd�D]}t�|�q|�|�dd�d�|�|��d	�|�|�dd
�d�|�|��d�|�|��d
�|�|��d�|�|��d�|�|��d�dS)NrXrgr^zspam
r\r_rb�s)r_rbre�p)r_re�a�mrY)rrj�ungetchrk�getchrx�rrsr�rrr�
test_getchTszTestCurses.test_getchcCs0t�dddd�}t��|�tj�|�t|jd�|�t|jddd�dddd�D]}t�|�q+|�	|�ddd�d	�|�	|�
dd
�d�|�	|�ddd�d
�|�	|�
dd
�d�|�	|�dd�d�|�	|�
dd
�d�|�	|�d�d�|�	|�
dd
�d�|�	|��d�|�	|�
dd
�d�dS)NrXrgr^ip���r_zLorem
ipsum
dolor
sit
amet
r\rbsLors Lo         rYsipsums Lo  ipsum  sdolors     dolor  ssissi   dolor  sametsamet dolor  )rrj�echor>�noechor�r��getstrr�rkr�r�rrr�test_getstrcs"zTestCurses.test_getstrcCs�t�dddd�}t|�|�dd�|��|�|�dd���d�|�|�dd���d�|�dd	�|��|�|�dd���d
�|�|�dd���d�|j	|j
fD]!}t|�|�|�|�dd���d�|�|�dd���d�qVdS)NrXr]r^rrfsLorem iprb�dolor sit amet,r_sLor�)rrj�lorem_ipsumrw�clrtoeolrkr��rstrip�clrtobotrN�clear)rrsr�rrr�
test_clearys �zTestCurses.test_clearcCst�dddd�}t|�|�dd�|��|�|�dd�d�|�dd�|�|�dd�d�|�dd�|��|�|�dd�d�|�|�dd�d	�|�|�dd�d
�|�|�dd�d�|�|�d
d�d�|�dd�|��|�|�dd�d�|�|�dd�d�|�|�dd�d	�|�	�t|�|�dd�|�
d�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�	�t|�|�dd�|�
d�|�|�dd�d�|�|�dd�d
�|�|�dd�d�|�|�dd�d�dS)NrXr]r^rsLoem ipsum     r`sLoem ipum      rbsconsectetur    �adipiscing elitr_ssed do eiusmod re�               sLorem ipsum    r�r�)rrjr�rw�delchrkr��deleteln�insertlnr��insdelln�rrsrrr�test_insert_delete�sF

zTestCurses.test_insert_deletecCs�t�dddd�}t|�|�d�|��|�|�dd�d�|�d�|�|�dd�d�|�d�|�|�dd�d	�|�|�dd�d	�|�|�d
d�d�|�d�dS)NrXr]r^Trr�r����r�r_F)rrjr��scrollok�scrollrkr�r�rrr�test_scroll�s


zTestCurses.test_scrollcCsHt�dddd�}|�tj�|�tj�|�tj�|��|��dS)NrXr]r^)rrj�attronr��attroff�attrset�standout�standendr�rrr�test_attributes�szTestCurses.test_attributes�chgatcCs�t�dddd�}|�ddd�|�ddd�|�dd�|�tj�|�|�dd	�d
�|�|�dd�dtjB�|�|�dd�d
tjB�|�dd�|�dtj�|�|�dd�d�|�|�dd�dtjB�|�|�dd�dtjB�|�|�dd�d�|�ddtj	�|�|�dd�d�|�|�dd�dtj	B�|�|�dd�d
tj	B�|�ddd	tj�|�|�dd�dtj	B�|�|�dd�dtjB�|�|�dd�dtjB�|�|�dd�dtj	B�|�|�dd�d
tj	B�dS)NrXr]r^r�Lorem ipsumr_zdolor sit ametrfr`r�r��� rb�L�o�erer��l�rrYr�ri)
rrjr�rwr��A_BLINKrkr�r��A_UNDERLINEr�rrr�
test_chgat�s0zTestCurses.test_chgatcCs�t�dddd�}|�ddd�|�|��d�|�d�|�|��d�|�d	�|�|��d
�|�d�|�|��d�|�d�|�|��d�|�d
tj�|�|��d
tjB�|�|�dd�d�|�|�dd�d�|�d�|�	d�|�|��d�|�|�dd�d�|�|�dd�d�|�	d
tj�|�|��d
tjB�|�|�dd�dtjB�|�|�dd�d
tjB�dS)NrXr]r^rr�)rr��_�_�#�#r�r��#r�)
rrjr��assertIn�getbkgd�bkgdsetrk�	A_REVERSEr��bkgdr�rrr�test_background�s0





zTestCurses.test_backgroundc	Cs�t�dddd�}t|�t�dddd�}td�D]	}|�|dd	�q|�|�|�|�dd�d
�|�|�dd�d�|�|�d
d�d�|�|�dd�d�|�|�|�|�dd�d�|�|�dd�d�|�|�d
d�d�|�|�dd�d�|�|dddd
dd�|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|dddd
dd�|�|�dd�d�|�|�dd�d�|�|�dd�d�dS)NrX�r_rer`�rhr�_________________ssectetur_________rbspiscing_elit,____r^s_do_eiusmod______s_________________ssectetur       __spiscing elit,  __s do eiusmod    __ris__r_sit_amet_____s__ectetur________s__r sit amet_____s__ectetur   _____)	rrjr��ranger��overlayrkr��	overwrite)r�srcwin�dstwin�irrr�test_overlays.

zTestCurses.test_overlaycCs@t�dddd�}|��|�dd�|��|��t��dS)NrXr]r^rb)rrj�noutrefresh�redrawln�	redrawwinr~�doupdater�rrr�test_refresh,szTestCurses.test_refresh�resizecCsLt�dddd�}|�dd�|�|��d�|�dd�|�|��d�dS)NrXr]r^re�)rer�)rXr])rrjr�rkrnr�rrr�test_resize4s
zTestCurses.test_resize�enclosecCs�t�dddd�}|�|�dd�d�|�|�dd�d�|�|�dd�d�|�|�dd	�d�|�|�d
d	�d�|�|�dd�d�dS)NrXr]r^TrbFrerh�r`r�)rrjrrr�rrr�test_enclose<szTestCurses.test_enclosecCs�t�dddd�}|�ddd�t���3}|�|�~|�d�t�|�}|�|�	�d�|�|�
�d�|�|�dd�d	�Wd�dS1sIwYdS)
NrXrgrbr^r�rra)rXrgs Lorem ipsum)rrjr�rDrE�putwin�seek�getwinrkrlrnr�)rrs�frrr�test_putwinFs



"�zTestCurses.test_putwinc
Cs$t�dddd�}|�dddddd	d
d�|�|�dd�d
�|�|�dd�d�|�|�dd�d�|�dddddddd�|�ddddddd d!�|�t|jdddddgd d!�
|�t|jddddddd d!d"�|�t|jddddddd d!d"�|�ddddddd �|�dddddd�|�ddddd�|�dddd�|�ddd�|�dd�|�d�|��|�d#d$�|�|�ddd%�d&�|�|�dd�d'�|�|�ddd%�d&�|�d(d)�|�dd�|�t|jddd�|�t|jd�|��|�dd�|�	dd�|�|�ddd*�d+�|�	dd�|�	d,d�|�	ddtj
�|�	dddd�|�	ddddtj
�|�dd�|�d-d.�|�d/d.�|�d0d.�|�d-d.tj�|�ddd-d.�|�ddd1dtj�|�|�
dd�d2tjB�|�|�
dd�d2tjB�|�|�
d.d�d0�dS)3NrXrYr^�|�!�-r��+�\r��/rs
+--------\rbs
|        !res
#________/�|�!�-�_�+�\r��/r��Br��D�E�F�G�H�I�:�~rfs~~~~~~~~s
:        :�:�~r`s ----- �-r}r_�ar��;�;)rrj�borderrkr�r��	TypeError�boxrw�hliner��vline�
A_STANDOUTr�r�rrr�test_borders_and_linesRsr���
�
�
�
z!TestCurses.test_borders_and_linescCs�|�t�d�d�|�t�d�d�|�t�d�d�|�t�d�d�|�t�d�d�|�t�d�d�|�ttjd�|�ttjd	�|�ttjd
�|�ttjd�|�ttjd�dS)
Nr�r�r��
s^J�
rYr�sAB��AB�)rkr�unctrlr�r%r�rTrrr�test_unctrl�szTestCurses.test_unctrlcCsT|js|�d�|�t��d�t��|�t��d�t��|�t��d�dS)N�requires terminalFT)r:r"rr�isendwinrLr�rTrrr�test_endwin�s
zTestCurses.test_endwincCs|�t�d�t�|�t�d�d�|�t�d�d�|�t�d�t�|�t�d�d�|�t�d�d�|�t�d�ttd�f�|�	t�d��|�	t�d��t�d�}|dury|�|t�t�
|d�t�
|d�}|�|t�t�|�t�d�dS)	N�hc�colsr\�crr��cudr^sabc
)�assertIsInstancer�	tigetflag�intrk�tigetnum�tigetstr�bytes�type�assertIsNone�tparm�putp)rr8�cud_2rrr�
test_terminfo�s"

zTestCurses.test_terminfocCsDt�d�t��t��|�t��d�t�d�t�dd�dS)NrbF�d�2)r�delay_output�flushinpr�rr3�napms�newpadrTrrr�test_misc_module_funcs�s

z!TestCurses.test_misc_module_funcscCs�|�t��t�|�t��t�|�t��t�|�t��t�|�t�	�t�|�t�
�t�t��}|�|t�|�t
|�d�t��}|�|t�|�t
|�d�dS�Nrb)r9r�termnamer>�longname�baudrater;�has_ic�bool�has_il�	termattrs�killcharrkr��	erasechar)rr�rrr�test_env_queries�szTestCurses.test_env_queriescCs�|j}|�d�|�d�|�d�|�d�|�d�|�d�t|d�r0|�d�|�d�|�d�|�d�|�d�|�d�|�dd�t	�
�t	�d�t	�d�t	��dS)NTF�immedokrXrY)r�clearok�idcok�idlokrrW�leaveokr��	setscrregr�nonl�nlr�rrr�test_output_options�s&














zTestCurses.test_output_optionscCs6|j}|jr4t��t��t�d�t�d�t�d�t�d�t��t�d�t�d�t��t��t�	�t�	d�t�	d�t�
d�t�
d�|�d�|�d�t�d�t�d�|�
d�|�
d�t��t�d�t�d�t��|�d�|�d�|�d�|�d�|�d�dS)NFT�rbr\rrX)rr:r�nocbreak�cbreak�	intrflush�raw�norawr�r��	halfdelay�keypad�meta�nodelay�	noqiflush�qiflush�	notimeout�timeoutr�rrr�test_input_options�sB





















zTestCurses.test_input_options�	typeaheadcCst�tj���t�d�dS)Nr\)rror/�	__stdin__r2rTrrr�test_typeahead szTestCurses.test_typeaheadcCs$|js|�d�t��t��dS)Nr2)r:r"r�
def_prog_mode�reset_prog_moderTrrr�test_prog_mode%s
zTestCurses.test_prog_modecC�Xt�d�dust�d�durt��dSzt��WdStjy+|�d�YdSw)N�bel�flashz
beep() failed)rr=�beep�errorr"rTrrr�	test_beep+��zTestCurses.test_beepcCru)Nrvrwzflash() failed)rr=rwryr"rTrrr�
test_flash5r{zTestCurses.test_flashc	CsNdD]"\}}t�|�durt�|�qzt�|�Wqtjy$YqwdS)N))r�civis)r^�cvvis)rb�cnorm)rr=�curs_setry)r�vis�caprrr�
test_curs_set?s��zTestCurses.test_curs_set�get_escdelaycC�<t��}|�|t�t�d�|�t��d�t�|�dS)N�)rr�r9r;�set_escdelayrk)r�escdelayrrr�
test_escdelayI�

zTestCurses.test_escdelay�get_tabsizecCr�)Nre)rr�r9r;�set_tabsizerk)r�tabsizerrr�test_tabsizeQr�zTestCurses.test_tabsize�getsyxcCsDt��\}}|�|t�|�|t�t�dd�|�t��d�dS)NrerX)rerX)rr�r9r;�setsyxrk)r�y�xrrr�test_getsyxYs
zTestCurses.test_getsyxcCsdtjdddddfS)Nr\��������r/�r�COLORSrTrrr�
bad_colorsaszTestCurses.bad_colorscCstjdddfS)Nr�r�r/r�rTrrr�bad_colors2d�zTestCurses.bad_colors2cCsdS)N)r\r�r�r�r�r/rrTrrr�	bad_pairsgszTestCurses.bad_pairscCs$|�t��t�|�t��t�dSrS)r9rr!rQ�can_change_colorrTrrr�test_has_colorsjszTestCurses.test_has_colorscCsRt��s	|�d�t��tr'tdtj��tjd�tdtj	��tjd�dSdS)Nr z	COLORS = )r*zCOLOR_PAIRS = )
rr!r"r#rr-r�r/r0�COLOR_PAIRSrTrrr�test_start_colorns
�zTestCurses.test_start_colorcCsT|�t�tj�d�t�d�tjd}t�|�|��D]
}|�ttj|�qdS)N�rrrrrb)rkr�
color_content�COLOR_BLACKr�r�r�r�)r�maxcolor�colorrrr�test_color_contentvs


�zTestCurses.test_color_contentc	Cs~t��s	|�d�t�d�}ztjdg|�R�Wntjy(|�d�Ynw|jtjdg|�R�t�dddd�|�t�d�d�t�dddd�|�t�d�d�tjd}t�|�}tj|g|�R�|jtj|g|�R�t�|ddd�|�t�|�d	�|�	�D]
}|�
ttj|ddd�q�d
D]#}|�
ttjd|dd�|�
ttjdd|d�|�
ttjddd|�q�dS)Nzcannot change colorrz)cannot change color (init_color() failed)r���)r�r�r�rb��)rr�r�)r\i�)rr�r"r��
init_colorryr>rkr�r�r�r�)r�oldr�r��comprrr�test_init_color�s4

�

�zTestCurses.test_init_colorcCs�tj}ttd�rEt��r|dtjd7}t��r&dtjkr$dkr+nnt|t�}zt�|ddd�W|St	yDtj}Y|Sw|S)N�ncurses_versionr^rb)rhrb)rhr^r)
rr�r�has_extended_color_supportr�r��min�	SHORT_MAX�	init_pairr�)r�
pair_limitrrr�get_pair_limit�s

��zTestCurses.get_pair_limitcCsnttd�s|�t�d�tjtjf�t�d�|��d}|dkr&t�|�|��D]
}|�t	tj|�q*dS)N�use_default_colorsrrb)
rrrk�pair_content�COLOR_WHITEr�r�r�r�r�)r�maxpair�pairrrr�test_pair_content�s

�

�zTestCurses.test_pair_contentcCs4t�d�}tjdg|�R�|jtjdg|�R�t�ddd�|�t�d�d�tjd}t�d|d�|�t�d�|df�t�dd|�|�t�d�d|f�|��d}|dkrlt�|dd�|�t�|�d�|��D]}|�t	tj|dd�qp|�
�D]}|�t	tjd|d�|�t	tjdd|�q�dS)NrbrrZ)rr�r�r>rkr�r�r�r�r�r�)rr�r�r�r�r�rrr�test_init_pair�s(

�zTestCurses.test_init_paircCshdD]}t�|�}|�t�|�||�|�t�|tjB�|�q|�t�d�d�|�t�d�d�dS)N)rrbr`r)r�
color_pairrk�pair_numberr�)rr��attrrrr�test_color_attrs�s
zTestCurses.test_color_attrsr�cCsft�d�}zt��Wntjy|�d�Ynw|�t�d�d�|�|tjtjfddg�dS)Nrz1cannot change color (use_default_colors() failed)r[rZ)	rr�r�ryr"rkr�r�r�)rr�rrr�test_use_default_colors�s
�z"TestCurses.test_use_default_colorscCsn|�t�d�d�|�t�d�d�|�t�d�d�|�t�d�d�|�ttjd	�|�t�d
�t�dS)Nr�r�rds^M�s^?rs^@r\�)rkr�keynamer�r�r9r>rTrrr�test_keyname�szTestCurses.test_keyname�has_keycCst�d�dS)Nrd)rr�rTrrr�test_has_key�szTestCurses.test_has_key�getmousecCsLt�tj�\}}|dkr|�d�t�d�t�ddddtj�t��}dS)Nrzmouse stuff not availablerY)r�	mousemask�BUTTON1_PRESSEDr"�
mouseinterval�
ungetmouser�)r�	availmask�oldmask�mrrr�
test_getmouse�s

zTestCurses.test_getmouse�panelcCsXt�dd�}tj�|�}|jtjjdd��
|��Wd�dS1s%wYdS)NrYz!userptr should fail since not set)�msg)rrjr��	new_panelr�ry�userptr)r�w�prrr�test_userptr_without_set�s
�
"�z#TestCurses.test_userptr_without_setcCsbt�dd�}tj�|�}t�}t�|�}td�D]}|�|�q|�d�|�	t�|�|d�dS)NrYrEzset_userptr leaked references)
rrjr�r��objectr/�getrefcountr��set_userptrrk)rr�r��obj�nrefsr�rrr�test_userptr_memory_leaks

�z#TestCurses.test_userptr_memory_leakcsDt�dd�}tj�|��G�fdd�d�}��|����d�dS)NrYcseZdZ�fdd�ZdS)z+TestCurses.test_userptr_segfault.<locals>.Acs��d�dSrS)r�rT�r�rr�__del__r�z3TestCurses.test_userptr_segfault.<locals>.A.__del__N)�__name__�
__module__r�r�rr�rrr�sr�)rrjr�r�r�)rr�r�rr�r�test_userptr_segfaults
z TestCurses.test_userptr_segfaultcCs*t�dd�}tj�|�}t|t|��dS)NrY)rrjr�r�rr?)rr�r�rrr�test_disallow_instantiationsz&TestCurses.test_disallow_instantiation�is_term_resizedcCsBtjtj}}|�t�||�d�|�t�|d|d�d�dS)NFrbT)r�LINES�COLSrr��r�linesr6rrr�test_is_term_resized's zTestCurses.test_is_term_resized�resize_termcC�zt��tjtj}}|d}|d}t�||�|�tj|�|�tj|�t�||�|�tj|�|�tj|�dSrL)r�update_lines_colsr�r�r�rk�rr�r6�	new_lines�new_colsrrr�test_resize_term-�zTestCurses.test_resize_term�
resizetermcCr�rL)rr�r�r�r�rkr�rrr�test_resizeterm;r�zTestCurses.test_resizetermcCsXt�d�|�|j��d�t�d�|�|j��d�t�d�|�|j��d�dS)Nr�r��Br��C)rr�rkr�getkeyrTrrr�test_ungetchIs


zTestCurses.test_ungetchcCst�d�|j��dS)Ni)rr�rr�rTrrr�test_issue6243Qs
zTestCurses.test_issue6243�	unget_wchr�)�c)rXrfz.unget_wch is broken in ncurses 5.7 and earliercCs�|j}|j}dD]U}z|�|�Wn	tyYqwzt�|�Wnty?}z|�d||j|f�WYd}~nd}~ww|��}|�	||�t
|�}t�|�|��}|�	||�qdS)N)r}�ér�u􏿿z)unget_wch(%a) failed with encoding %s: %s)rr�r�r�rr��	Exception�fail�get_wchrk�ord)rrr��ch�err�read�coderrr�test_unget_wchUs.�
���
�zTestCurses.test_unget_wchcCs�|j}ddl}|j}|�|�|�t��d|_Wd�n1s"wY||_|�t��|`Wd�dS1s=wYdS)NrrY)r�codecsr��lookupr�r%)rrrr�rrr�
test_encodingms
�"�zTestCurses.test_encodingcCsV|j}z
t�|j�}|�|�Wn	tyYnw|jj�d�d}|�d|�dS)Nr,rz[y, x,])	r�inspect�	signaturer��assertFalser��__doc__�splitr�)rrr�human_readable_signaturerrr�test_issue21088xs
�zTestCurses.test_issue21088cCsNt�dddd�}tjj|dd�}|��\}}|�|d|d�|�d�dS)NrXr]r^T)�insert_moder})rrj�textpad�Textboxrnr��_insert_printable_char)rrsr&r�r6rrr�test_issue13051�s
zTestCurses.test_issue13051N)Pr�r�r��classmethodr6rQrrUrWrvrzr�r�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�rrr*r1r4rDrKrVr_rnrqrtrzr|r�r�r�r�r�r�r�r�r�r$r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r	�skipIf�getattrrrrr
rrrrrr(7s�
0

40&"
*

!

	8	.







	



		

	


	



�r(c@s4eZdZed�dd��Zed�dd��Zdd�Zd	S)
�	MiscTestsr�cCsJt��tjtj}}dt_t_t��|�tj|�|�tj|�dS)Nr)rr�r�r�rkr�rrr�test_update_lines_cols�sz MiscTests.test_update_lines_colsr�cCstj}trtdtj��dd�|�|dd�t�|�t|�d�|�|dt�|�|dt�|�|dt�|�|j	t�|�|j
t�|�|jt�|�|d|j	�|�|d|j
�|�|d|j�|�|j	d�|�|j
d�|�|jd�dS)Nzncurses_version = T)r+r_rrbr^)
rr�rr-r9�tuplerkr�r;�major�minor�patch�assertGreaterEqual)r�vrrr�test_ncurses_version�s"zMiscTests.test_ncurses_versioncCst��}|�|t�dSrS)rr�r9rQ)r�rrrr�test_has_extended_color_support�sz)MiscTests.test_has_extended_color_supportN)r�r�r�rrrr rrrrr�s

rc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�	TestAsciicCs&tjjD]}|�ttj|�|�qdSrS)r�ascii�controlnames�
assertTruer)rr
rrr�test_controlnames�s�zTestAscii.test_controlnamescs����fdd�}td�D]��t���t�g�}|tjj|���|tjj|���|tjj|���|tjj|���|tjj	|�	��|tjj
|�
��|tjj�dk�|tjj�dk�|tjj
�dk�|tjj�dkps�dk�|tjj�dv�|tjjd�ko�dkn�|tjjd�ko�dkn�|tjj�tjv�|tjj�tjv�qd	d
dtjtjdfD]����tj������tj������tj������tj������tj�	�����tj�
�����tj������tj�
�����tj������tj������tj������tj������tj������tj����q���tj�d
��dS)NcsT�j�|d����|��|���|��|�Wd�dS1s#wYdS)N)r�r�)r�rk)r��expected�r�r�rrr�check�s"�z$TestAscii.test_ctypes.<locals>.checkr��r�r�z 	�~r�r\rb)r��chrr>rr"�isalnum�isalpha�isdigit�islower�isspace�isupper�isascii�ismeta�isctrl�iscntrl�isblank�isgraph�isprint�ispunct�string�punctuation�isxdigit�	hexdigitsr/�
maxunicoder	)rr(�brr'r�test_ctypes�sF
""zTestAscii.test_ctypescCsDtjj}|�|d�d�|�|d�d�|�|td��td��dS)N�Ár�)rr"rkr�)rr"rrr�
test_ascii�szTestAscii.test_asciicCsTtjj}|�|d�d�|�|d�d�|�|d�d�|�|td��td��dS)N�Jr,�@�)rr"�ctrlrkr�)rrFrrr�	test_ctrl�s
zTestAscii.test_ctrlcCs@tjj}|�|d�d�|�|d�d�|�|td��d�dS)Nr,�Šr�rA�)rr"�altrkr�)rrJrrr�test_altszTestAscii.test_altcCs�tjj}|�|d�d�|�|d�d�|�|d�d�|�|d�d�|�|d�d�|�|d�d�|�|d	�d
�|�|td��d�|�|td��d�|�|d�d�|�|d
�d�|�|td��d�|�|td
��d�dS)Nr}r�r"� �z^?r,z^JrEz^@rHz!^JrAz!A)rr"r0rkr�)rr0rrrr1szTestAscii.test_unctrlN)	r�r�r�r%r@rBrGrKr1rrrrr!�s-r!cCsTgd�}|��\}}t|d|��D]\}}|�|d|d|||dk��qdS)N)	r�zdolor sit amet,�consecteturzadipiscing elit,zsed do eiusmodztempor incididuntzut labore etzdolore magnazaliqua.rrb)rn�	enumerater�)rs�text�maxy�maxxr��linerrrr�s
$�r��__main__)"rrr<r:r/rDr	�test.supportrrrrr�test.support.import_helperrr�curses.panel�ImportErrorrrr$�environ�getr.r�rr��TestCaser(rr!r�r��mainrrrr�<module>sX�	��k$X�

Youez - 2016 - github.com/yon3zu
LinuXploit