Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_curses.cpython-38.opt-1.pyc
U

>��g��@s:ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZed�e	d�Ze	d�e	d�zddl
ZWnek
r�YnXdd�Zdd	�Zd
d�Zej�d�Zd
Ze�ep�edkde�e�ejdkd�Gdd�dej���ZGdd�dej�ZGdd�dej�Zdd�Zedk�r6e��dS)�N)�requires�
import_module�verbose�SaveSignals�curseszcurses.asciizcurses.textpadcCst�tt|�d|�S)Nzrequires curses.%s)�unittestZ
skipUnless�hasattrr��name�r�//opt/cppython/lib/python3.8/test/test_curses.py�requires_curses_funcs�r
cs�fdd�}|S)Ncst�����fdd��}|S)Ncs.t|j��st�d����|f|�|�dS)Nzrequires curses.window.%s)r�stdscrrZSkipTest��self�args�kwargs)r
�testrr�wrappedsz:requires_curses_window_meth.<locals>.deco.<locals>.wrapped��	functools�wraps�rrr	�rr�decosz)requires_curses_window_meth.<locals>.decor)r
rrr	r�requires_curses_window_methsrcst����fdd��}|S)Ncs.t��s|�d�t���|f|�|�dS)N�requires colors support)r�
has_colors�skipTest�start_colorrrrrr)s
z requires_colors.<locals>.wrappedrrrrr�requires_colors(sr ZTERMi��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+dTdU�Z,dVdW�Z-dXdY�Z.dZd[�Z/e0d\d]��Z1e0d^d_��Z2d`da�Z3e0dbdc��Z4e0ddde��Z5e0dfdg��Z6edh�e0didj���Z7dkdl�Z8edm�dndo��Z9edp�dqdr��Z:eds�dtdu��Z;eds�dvdw��Z<eds�dxdy��Z=eds�dzd{��Z>ed|�d}d~��Z?ed�d�d���Z@ed��d�d���ZAd�d��ZBd�d��ZCed��eD�EeFeGd�d��d�kd��d�d����ZHd�d��ZId�d��ZJed.�d�d���ZKd�S)��
TestCursescCs4trtdt��tjdd�tj��}tj|d�dS)NzTERM=T��file�flush)�fd)	r�print�term�sys�stderr�
__stdout__�filenorZ	setupterm)�cls�	stdout_fdrrr�
setUpClass;s
zTestCurses.setUpClasscCsVd|_tj|_tj��}tj��s�t�|�}|�tj|�|�tj	||�tj
��rdtj
}tj
|_nNztdddd�}Wn(tk
r�t
jddd�}d|_YnX|�|j�d|_t�	|��|�t�|_|j��|�|jj�t�r|jdk	�rtj��tj��t|jdd�t��|_|j�rHt��|�tj�|�tj�|j��dS)	NTz/dev/tty�wbr)�	buffering)�moder2Fr$)�isattyr*r,�outputr-�os�dup�
addCleanup�close�dup2�
__stderr__�open�OSError�tempfile�
TemporaryFilerZsave_signals�saveZrestorerr+r&�stdoutr(rZinitscrrZsavetty�endwinZresetty�erase)rr/Zdup_fd�tmprrr�setUpDs>








zTestCurses.setUp�filtercCst��dS�N)rrF�rrrr�test_filtertszTestCurses.test_filter�use_envcCst�d�t�d�dS)NFT)rrJrHrrr�test_use_envzs
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����rP)rLrM��)rRrL)rMrQ��)rSrT��rR)�	�
)��)rRrS)rZ���)r\r]rrV)rrV)rRrV)
r�newwin�assertEqual�getbegyxZgetparyx�getmaxyx�subwinZderwinZmvwinZmvderwin)r�win�win2Zwin3rrr�test_create_windows�sTzTestCurses.test_create_windowscCsj|j}|�dddd�}|�dd�|�dd�|�|��d�|�|��d�|��|�|��d	�dS)
NrMrQrRrLrVrYrU)rRrY)rYrW)rrb�mover_�getyxZ	cursyncup)rrrcrrr�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�dS)NFTrLrRr\rVrMrQrSrT�syncokZsunos)FT�a)r�refresh�assertIs�
is_wintouchedZtouchwinZ
untouchwinZ	touchlineZis_linetouchedrbZsyncupZsyncdownrr*�platform�
startswithri�addch)rrrcrdrirrr�test_refresh_control�sJ

zTestCurses.test_refresh_controlc	Cs^|j}|j}|��|�dd�|�d�|�d�|�d�d}z|�|�WnVtk
rt|�t|j|�Yn4tk
r�|�|�}|�	t
|�dt|��YnX|�dtj
�|�ddd�|�dddtj
�|�|��d	�|��|�dd�|�d�|�d�|�d�|�ttf��|�d�W5QRX|�dtj
�|�|��d
�dS)Nr�A�A�A�€rVrRrSTF)r�encodingrkrfrp�UnicodeEncodeError�assertRaises�encode�
OverflowErrorZassertNotEqual�len�reprr�A_BOLDrlrmZechochar)rrrv�c�encodedrrr�test_output_character�s8






z TestCurses.test_output_characterc
Csp|j}|j}|j|jfD]�}|�|j���|�dd�|d�|d�d}z||�Wn$tk
rz|�t|j	|�YnX|dt
j�|ddd�|dddt
j�W5QRXq|j|j
fD]�}|�|j���|�dd�|dd�|d	d�d
}z||d�Wn&tk
�r&|�t|j	|�YnX|dd�|ddt
j�|dddd�|ddddt
j�W5QRXq�dS)NrZabcdsabcduàßçđrVrRrSZ1234s1234u١٢٣٤rL)rrv�addstr�insstr�subTest�__qualname__rfrwrxryrr}�addnstr�insnstr)rrrv�func�srrr�test_output_strings:


zTestCurses.test_output_stringc
Csp|j}dD]`}|j|d��J|�t|j|�|�t|j|d�|�t|j|�|�t|j|d�W5QRXq
dS)N)zasa)�argrV)rr�rx�
ValueErrorr�r�r�r�)rrr�rrr�&test_output_string_embedded_null_chars3sz1TestCurses.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)NrrVZABCDrtrS�Cr\s ABCD s ABrRrYsBCD ���)
rr�rr}rfr_�inch�instrrxr��rrrrr�test_read_from_window=sz TestCurses.test_read_from_windowcCs�t�dddd�}dddd�D]}t�|�q|�|�dd�d�|�|��d	�|�|�dd
�d�|�|��d�|�|��d
�|�|��d�|�|��d�|�|��d�dS)NrLr[rRzspam
rPrSrV�s)rSrVrY�p)rSrY�a�mrM)rr^�ungetchr_Zgetchrg�rrcr~rrr�
test_getchMszTestCurses.test_getchcCs0t�dddd�}t��|�tj�|�t|jd�|�t|jddd�dddd�D]}t�|�qV|�	|�ddd�d	�|�	|�
dd
�d�|�	|�ddd�d
�|�	|�
dd
�d�|�	|�dd�d�|�	|�
dd
�d�|�	|�d�d�|�	|�
dd
�d�|�	|��d�|�	|�
dd
�d�dS)NrLr[rRip���rSzLorem
ipsum
dolor
sit
amet
rPrVsLors Lo         rMsipsums Lo  ipsum  sdolors     dolor  ssissi   dolor  sametsamet dolor  )rr^�echor8�noechorxr�Zgetstrr�r_r�r�rrr�test_getstr\s"zTestCurses.test_getstrcCs�t�dddd�}t|�|�dd�|��|�|�dd���d�|�|�dd���d�|�dd	�|��|�|�dd���d
�|�|�dd���d�|j	|j
fD]B}t|�|�|�|�dd���d�|�|�dd���d�q�dS)NrLrQrRrrZsLorem iprV�dolor sit amet,rSsLor�)rr^�lorem_ipsumrfZclrtoeolr_r��rstripZclrtobotrC�clear)rrcr�rrr�
test_clearrs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)NrLrQrRrsLoem ipsum     rTsLoem ipum      rVsconsectetur    �adipiscing elitrSssed do eiusmod rY�               sLorem ipsum    r�r�)rr^r�rfZdelchr_r�ZdeletelnZinsertlnr�Zinsdelln�rrcrrr�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)NrLrQrRTrr�r����r�rSF)rr^r��scrollokZscrollr_r�r�rrr�test_scroll�s


zTestCurses.test_scrollcCsHt�dddd�}|�tj�|�tj�|�tj�|��|��dS)NrLrQrR)rr^Zattronr}ZattroffZattrsetZstandoutZstandendr�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)NrLrQrRr�Lorem ipsumrSzdolor sit ametrZrTr�r��� rV�L�o�erYr��l�rrMr�r])
rr^r�rfr�ZA_BLINKr_r�r}ZA_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)NrLrQrRrr�)rr��_�_�#�#rtr��#r�)
rr^r��assertInZgetbkgdZbkgdsetr_Z	A_REVERSEr�Zbkgdr�rrr�test_background�s0





zTestCurses.test_backgroundc	Cs�t�dddd�}t|�t�dddd�}td�D]}|�|dd	�q0|�|�|�|�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)NrL�rSrYrT�r\rZ_________________ssectetur_________rVspiscing_elit,____rRs_do_eiusmod______s_________________ssectetur       __spiscing elit,  __s do eiusmod    __r]s__r_sit_amet_____s__ectetur________s__r sit amet_____s__ectetur   _____)	rr^r��ranger�Zoverlayr_r�Z	overwrite)rZsrcwinZdstwin�irrr�test_overlays.

zTestCurses.test_overlaycCs@t�dddd�}|��|�dd�|��|��t��dS)NrLrQrRrV)rr^ZnoutrefreshZredrawlnZ	redrawwinrk�doupdater�rrr�test_refresh%szTestCurses.test_refresh�resizecCsLt�dddd�}|�dd�|�|��d�|�dd�|�|��d�dS)NrLrQrRrY�)rYr�)rLrQ)rr^r�r_rar�rrr�test_resize-s
zTestCurses.test_resize�enclosecCs�t�dddd�}|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd	��dS)
NrLrQrRrVrYr\�rTr�)rr^�
assertTruer��assertFalser�rrr�test_enclose5szTestCurses.test_enclosec	Cs�t�dddd�}|�ddd�t���Z}|�|�~|�d�t�|�}|�|�	�d�|�|�
�d�|�|�dd�d	�W5QRXdS)
NrLr[rVrRr�rrU)rLr[s Lorem ipsum)rr^r�r>r?Zputwin�seekZgetwinr_r`rar�)rrc�frrr�test_putwin@s



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)3NrLrMrR�|�!�-r��+�\r��/rs
+--------\rVs
|        !rYs
#________/�|�!�-�_�+�\r��/rt�Br��D�E�F�G�H�I�:�~rZs~~~~~~~~s
:        :�:�~rTs ----- �-rjrS�ar��;�;)rr^Zborderr_r�rx�	TypeError�boxrfZhliner}ZvlineZ
A_STANDOUTr�r�rrr�test_borders_and_linesLs����
�
�
�
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)
Nrsrrrt�
s^J�
rMr�sAB�ZAB�)r_r�unctrlrxr�rzrHrrr�test_unctrl�szTestCurses.test_unctrlcCsT|js|�d�|�t��d�t��|�t��d�t��|�t��d�dS)N�requires terminalFT)r4rrlr�isendwinrBr�rHrrr�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�}|dk	r�|�|t�t�
|d�t�
|d�}|�|t�t�|�t�d�dS)	NZhc�colsrPZcrr��cudrRsabc
)�assertIsInstancerZ	tigetflag�intr_Ztigetnum�tigetstr�bytes�typeZassertIsNoneZtparmZputp)rr�Zcud_2rrr�
test_terminfo�s"

zTestCurses.test_terminfocCsDt�d�t��t��|�t��d�t�d�t�dd�dS)NrVF�d�2)rZdelay_outputZflushinpr�rlr�ZnapmsZnewpadrHrrr�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�NrV)r�rZtermnamer�ZlongnameZbaudrater�Zhas_ic�boolZhas_ilZ	termattrsZkillcharr_r{Z	erasechar)rr~rrr�test_env_queries�szTestCurses.test_env_queriescCs�|j}|�d�|�d�|�d�|�d�|�d�|�d�t|d�r`|�d�|�d�|�d�|�d�|�d�|�d�|�dd�t	�
�t	�d�t	�d�t	��dS)NTF�immedokrLrM)rZclearokZidcokZidlokrrZleaveokr�Z	setscrregrZnonl�nlr�rrr�test_output_options�s&














zTestCurses.test_output_optionscCs6|j}|jrht��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�rVrPrrL)rr4rZnocbreakZcbreakZ	intrflush�rawZnorawr�r�Z	halfdelayZkeypad�metaZnodelayZ	noqiflushZqiflushZ	notimeout�timeoutr�rrr�test_input_options�sB





















zTestCurses.test_input_options�	typeaheadcCst�tj���t�d�dS)NrP)rrr*�	__stdin__r-rHrrr�test_typeaheadszTestCurses.test_typeaheadcCs$|js|�d�t��t��dS)Nr�)r4rrZ
def_prog_modeZreset_prog_moderHrrr�test_prog_modes
zTestCurses.test_prog_modecCsXt�d�dk	st�d�dk	r&t��n.zt��Wn tjk
rR|�d�YnXdS)N�bel�flashz
beep() failed)rr�Zbeep�errorrrHrrr�	test_beep%s�
zTestCurses.test_beepcCsXt�d�dk	st�d�dk	r&t��n.zt��Wn tjk
rR|�d�YnXdS)Nrrzflash() failed)rr�rrrrHrrr�
test_flash/s�
zTestCurses.test_flashc	CsRdD]H\}}t�|�dk	r&t�|�qzt�|�Wqtjk
rJYqXqdS)N))rZcivis)rRZcvvis)rVZcnorm)rr�Zcurs_setr)rZvisZcaprrr�
test_curs_set9szTestCurses.test_curs_set�getsyxcCsDt��\}}|�|t�|�|t�t�dd�|�t��d�dS)NrYrL)rYrL)rrr�r�Zsetsyxr_)r�y�xrrr�test_getsyxCs
zTestCurses.test_getsyxcCsdS�N)l����ll����lr�rrHrrr�
bad_colorsKszTestCurses.bad_colorscCsdSrrrHrrr�	bad_pairsNszTestCurses.bad_pairscCs$|�t��t�|�t��t�dSrG)r�rrr�can_change_colorrHrrr�test_has_colorsQszTestCurses.test_has_colorscCsNt��s|�d�t��trJtdtj��tjd�tdtj	��tjd�dS)Nrz	COLORS = )r%zCOLOR_PAIRS = )
rrrrrr(�COLORSr*r+�COLOR_PAIRSrHrrr�test_start_colorUs
zTestCurses.test_start_colorcCs�|�t�tj�d�t�d�ttjdt�}t�|�|��D]}|�t	tj|�q@tjtkrt|�tj
tjtj�|�tj
tjd�dS)N�rrrrrVrP)r_r�
color_content�COLOR_BLACK�minr�	SHORT_MAXrrxrzr)r�maxcolor�colorrrr�test_color_content]s


zTestCurses.test_color_contentc	Cs�t��s|�d�t�d�}ztjd|��Wn tjk
rN|�d�YnX|jtjdf|��t�dddd�|�t�d�d�t�dddd�|�t�d�d�ttj	dt
�}t�|�}tj|f|��|jtj|f|��t�|ddd�|�t�|�d	�|��D]}|�t
tj|ddd��qtj	t
k�rT|�tjtjtj	ddd�|�tjtjd
ddd�dD]N}|�tjtjd|dd�|�tjtjdd|d�|�tjtjddd|��qpdS)
Nzcannot change colorrz)cannot change color (init_color() failed)r"��)r*r*r*rV��)rr+r*rP)rPi�)r)rrrr#Z
init_colorrr8r_r%rr&rrxrz)r�oldr'r(�comprrr�test_init_colorjs6


zTestCurses.test_init_colorcCsttjt�SrG)r%rr r&rHrrr�get_pair_limit�szTestCurses.get_pair_limitcCs�ttd�s$|�t�d�tjtjf�t�d�|��d}|dkrLt�|�|��D]}|�t	tj|�qT|�tj
tjd�dS)N�use_default_colorsrrVrP)rrr_�pair_content�COLOR_WHITEr$r/rrxrzr)r�maxpair�pairrrr�test_pair_content�s

�

zTestCurses.test_pair_contentcCs�t�d�}tjd|��|jtjdf|��t�ddd�|�t�d�d�ttjdt�}t�d|d�|�t�d�|df�t�dd|�|�t�d�d|f�|��d}|dkr�t�|dd�|�t�|�d�|�	�D]}|�
ttj|dd�q�|�
tjtjddd�|�
�D].}|�
ttjd|d�|�
ttjdd|��qtjtk�r�|�
tjtjdtjd�|�
tjtjddtj�dS)NrVrrNrP)rV)rr1Z	init_pairr8r_r%rr&r/rrxrzrr)rr,r'r3r4r(rrr�test_init_pair�s.
zTestCurses.test_init_paircCshdD]:}t�|�}|�t�|�||�|�t�|tjB�|�q|�t�d�d�|�t�d�d�dS)N)rrVrr)rZ
color_pairr_Zpair_numberr})rr4�attrrrr�test_color_attrs�s
zTestCurses.test_color_attrsr0cCsht�d�}zt��Wn tjk
r6|�d�YnX|�t�d�d�|�|tjtjfddg�dS)Nrz1cannot change color (use_default_colors() failed)rOrN)	rr1r0rrr_r�r2r$)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)NrtrsrXs^M�s^?rs^@rP�)r_rZkeynamerxr�r�r�rHrrr�test_keyname�szTestCurses.test_keyname�has_keycCst�d�dS)NrX)rr=rHrrr�test_has_key�szTestCurses.test_has_key�getmousecCsLt�tj�\}}|dkr"|�d�t�d�t�ddddtj�t��}dS)Nrzmouse stuff not availablerM)rZ	mousemaskZBUTTON1_PRESSEDrZ
mouseintervalZ
ungetmouser?)rZ	availmaskZoldmask�mrrr�
test_getmouse�s

zTestCurses.test_getmouse�panelc	CsBt�dd�}tj�|�}|jtjjdd��|��W5QRXdS)NrMz!userptr should fail since not set)�msg)rr^rB�	new_panelrxrZuserptr)r�w�prrr�test_userptr_without_set�s
�z#TestCurses.test_userptr_without_setcCsbt�dd�}tj�|�}t�}t�|�}td�D]}|�|�q0|�d�|�	t�|�|d�dS)NrMr�zset_userptr leaked references)
rr^rBrD�objectr*�getrefcountr��set_userptrr_)rrErF�objZnrefsr�rrr�test_userptr_memory_leak�s

�z#TestCurses.test_userptr_memory_leakcsDt�dd�}tj�|��G�fdd�d�}��|����d�dS)NrMcseZdZ�fdd�ZdS)z+TestCurses.test_userptr_segfault.<locals>.Acs��d�dSrG)rJrH�rBrr�__del__�sz3TestCurses.test_userptr_segfault.<locals>.A.__del__N)�__name__�
__module__r�rNrrMrrrr�srr)rr^rBrDrJ)rrErrrrMr�test_userptr_segfault�s
z TestCurses.test_userptr_segfaultcCs,t�dd�}tj�|�}|�tt|��dS)NrM)rr^rBrDrxr�r�)rrErBrrr�test_new_curses_panelsz TestCurses.test_new_curses_panel�is_term_resizedcCsBtjtj}}|�t�||�d�|�t�|d|d�d�dS)NFrVT)r�LINES�COLSrlrS�r�linesr�rrr�test_is_term_resized	szTestCurses.test_is_term_resized�resize_termcCszt��tjtj}}|d}|d}t�||�|�tj|�|�tj|�t�||�|�tj|�|�tj|�dSr)r�update_lines_colsrTrUrYr_�rrWr�Z	new_linesZnew_colsrrr�test_resize_termszTestCurses.test_resize_term�
resizetermcCszt��tjtj}}|d}|d}t�||�|�tj|�|�tj|�t�||�|�tj|�|�tj|�dSr)rrZrTrUr]r_r[rrr�test_resizetermszTestCurses.test_resizetermcCsXt�d�|�|j��d�t�d�|�|j��d�t�d�|�|j��d�dS)Nrsrr�Br��C)rr�r_r�getkeyrHrrr�test_ungetch+s


zTestCurses.test_ungetchcCst�d�|j��dS)Ni)rr�rrarHrrr�test_issue62433s
zTestCurses.test_issue6243�	unget_wch�ncurses_version)�c)rLrZz.unget_wch is broken in ncurses 5.7 and earliercCs�|j}|j}dD]�}z|�|�Wntk
r:YqYnXzt�|�Wn8tk
r�}z|�d||j|f�W5d}~XYnX|��}|�	||�t
|�}t�|�|��}|�	||�qdS)N)rj�éruu􏿿z)unget_wch(%a) failed with encoding %s: %s)rrvryrwrrd�	ExceptionZfailZget_wchr_�ord)rrrv�ch�err�read�coderrr�test_unget_wch7s&

�
zTestCurses.test_unget_wchc	Cs^|j}ddl}|j}|�|�|�t��d|_W5QRX||_|�t��
|`W5QRXdS)NrrM)r�codecsrv�lookuprxr�)rrrorvrrr�
test_encodingOs
zTestCurses.test_encodingcCsX|j}zt�|j�}|�|�Wntk
r4YnX|jj�d�d}|�d|�dS)Nr�rz[y, x,])	r�inspect�	signaturerpr�r��__doc__�splitr�)rrrsZhuman_readable_signaturerrr�test_issue21088Zs
	zTestCurses.test_issue21088cCsNt�dddd�}tjj|dd�}|��\}}|�|d|d�|�d�dS)NrLrQrRT)Zinsert_moderj)rr^ZtextpadZTextboxrar�Z_insert_printable_char)rrcr�rWr�rrr�test_issue13051vs
zTestCurses.test_issue13051N)LrOrPr��classmethodr0rEr
rIrKrerhrqr�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrrrrrr!r r)r.r/r5r6r8r9r<r>rArGrLrQrRrXr\r^rbrcr�skipIf�getattrrrnrqrvrwrrrrr#5s�
0

40!"
*

!


8	.






 



		

	


	





�r#c@s,eZdZed�dd��Zed�dd��ZdS)�	MiscTestsrZcCsJt��tjtj}}dt_t_t��|�tj|�|�tj|�dS)Nr)rrZrTrUr_rVrrr�test_update_lines_cols�sz MiscTests.test_update_lines_colsrecCstj}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&rSrrVrR)
rrerr(r��tupler_r{r��major�minorZpatchZassertGreaterEqual)r�vrrr�test_ncurses_version�s"zMiscTests.test_ncurses_versionN)rOrPr�r
r|r�rrrrr{�s
r{c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�	TestAsciicCs&tjjD]}|�ttj|�|�qdSrG)r�asciiZcontrolnamesr�r)rr
rrr�test_controlnames�szTestAscii.test_controlnamescs����fdd�}td�D�]T�t���t�g�}|tjj|���|tjj|���|tjj|���|tjj|���|tjj	|�	��|tjj
|�
��|tjj�dk�|tjj�dk�|tjj
�dk�|tjj�dkp�dk�|tjj�dk�|tjjd�k�odkn�|tjjd�k�o>dkn�|tjj�tjk�|tjj�tjk�qd	d
dtjtjdfD�]���tj������tj������tj������tj������tj�	�����tj�
�����tj������tj�
�����tj������tj������tj������tj������tj������tj�����q���tj�d
��dS)Nc	s>�j�|d��&��|��|���|��|�W5QRXdS)N)rjr�)r�r_)r�Zexpected�r~r�rrr�check�sz$TestAscii.test_ctypes.<locals>.checkr;�r�r:z 	�~r�rPrV)r��chrr�rr��isalnum�isalpha�isdigit�islower�isspace�isupper�isasciiZismetaZisctrlZiscntrlZisblankZisgraphZisprintZispunct�string�punctuationZisxdigit�	hexdigitsr*�
maxunicoder�)rr��brr�r�test_ctypes�sF
$$zTestAscii.test_ctypescCsDtjj}|�|d�d�|�|d�d�|�|td��td��dS)N�Árr)rr�r_ri)rr�rrr�
test_ascii�szTestAscii.test_asciicCsTtjj}|�|d�d�|�|d�d�|�|d�d�|�|td��td��dS)N�Jr��@�)rr��ctrlr_ri)rr�rrr�	test_ctrl�s
zTestAscii.test_ctrlcCs@tjj}|�|d�d�|�|d�d�|�|td��d�dS)Nr��Šrrr��)rr��altr_ri)rr�rrr�test_alt�szTestAscii.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)Nrjrrr�� �z^?r�z^Jr�z^@r�z!^Jr�z!A)rr�r�r_ri)rr�rrrr��szTestAscii.test_unctrlN)	rOrPr�r�r�r�r�r�r�rrrrr��s-r�cCsbddddddddd	g	}|��\}}t|d|��D]*\}}|�|d
|d|||dk��q2dS)Nr�zdolor sit amet,Zconsecteturzadipiscing elit,zsed do eiusmodztempor incididuntzut labore etzdolore magnazaliqua.rrV)ra�	enumerater�)rc�textZmaxyZmaxxr�linerrrr��s�r��__main__)rrrr6r�r*r>rZtest.supportrrrrrZcurses.panel�ImportErrorr
rr �environ�getr)r&ryrnZTestCaser#r{r�r�rO�mainrrrr�<module>sP	��O X


F1le Man4ger