Your IP : 216.73.216.213


Current Path : /opt/alt/python39/lib64/python3.9/test/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/__pycache__/test_curses.cpython-39.opt-2.pyc

a

XC?h��@s8ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZed�e	d�Ze	d�e	d�zddl
ZWney�Yn0dd�Zdd	�Zd
d�Zej�d�Zd
Ze�ep�edkde�e�ejdkd�Gdd�dej���ZGdd�dej�ZGdd�dej�Zdd�Zedk�r4e��dS)�N)�requires�
import_module�verbose�SaveSignals�curseszcurses.asciizcurses.textpadcCst�tt|�d|�S)Nzrequires curses.%s)�unittestZ
skipUnless�hasattrr��name�r�5/opt/alt/python39/lib64/python3.9/test/test_curses.py�requires_curses_funcs�r
cs�fdd�}|S)Ncst�����fdd��}|S)Ncs4t|j��st�d����|g|�Ri|��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)Ncs4t��s|�d�t���|g|�Ri|��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@seZdZedd��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�Z1e2dbdc��Z3e2ddde��Z4dfdg�Z5e2dhdi��Z6e2djdk��Z7e2dldm��Z8edn�e2dodp���Z9dqdr�Z:eds�dtdu��Z;edv�dwdx��Z<edy�dzd{��Z=edy�d|d}��Z>edy�d~d��Z?edy�d�d���Z@ed��d�d���ZAed��d�d���ZBed��d�d���ZCd�d��ZDd�d��ZEed��eF�GeHeId�d��d�kd��d�d����ZJd�d��ZKd�d��ZLed.�d�d���ZMd�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.setUpClasscCsTd|_tj|_tj��}tj��s�t�|�}|�tj|�|�tj	||�tj
��rdtj
}tj
|_nLztdddd�}Wn&ty�t
jddd�}d|_Yn0|�|j�d|_t�	|��|�t�|_|j��|�|jj�t�r|jdu�rtj��tj��t|jdd�t��|_|j�rFt��|�tj�|�tj�|j��dS)	NTz/dev/tty�wbr)�	buffering)�moder2Fr$)�isattyr*r,�outputr-�os�dup�
addCleanup�close�dup2�
__stderr__�open�OSError�tempfile�
TemporaryFilerZsave_signalsZsaveZrestorerr+r&�stdoutr(rZinitscrrZsavetty�endwinZresetty�erase)rr/Zdup_fd�tmprrr�setUpDs>








zTestCurses.setUp�filtercCst��dS�N)rrE�rrrr�test_filtertszTestCurses.test_filter�use_envcCst�d�t�d�dS)NFT)rrIrGrrr�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����rO)rKrL��)rQrK)rLrP��)rRrS��rQ)�	�
)��)rQrR)rY���)r[r\rrU)rrU)rQrU)
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)
NrLrPrQrKrUrXrT)rQrX)rXrV)rra�mover^�getyxZ	cursyncup)rrrbrrr�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)NFTrKrQr[rUrLrPrRrS�syncokZsunos)FT�a)r�refresh�assertIs�
is_wintouchedZtouchwinZ
untouchwinZ	touchlineZis_linetouchedraZsyncupZsyncdownrr*�platform�
startswithrh�addch)rrrbrcrhrrr�test_refresh_control�sJ

zTestCurses.test_refresh_controlc	Csp|j}|j}|��|�dd�|�d�|�d�|�d�d}z|�|�WnRtyr|�t|j|�Yn2ty�|�|�}|�	t
|�dt|��Yn0|�dtj
�|�ddd�|�dddtj
�|�|��d	�|��|�dd�|�d�|�d�|�d�|�ttf��|�d
�Wd�n1�sD0Y|�dtj
�|�|��d�dS)Nr�A�A�A�€rUrQrRTuĔF)r�encodingrjrero�UnicodeEncodeError�assertRaises�encode�
OverflowErrorZassertNotEqual�len�reprr�A_BOLDrkrlZechochar)rrru�cZencodedrrr�test_output_character�s8






*z TestCurses.test_output_characterc
Cs�|j}|j}|j|jfD]�}|�|j���|�dd�|d�|d�d}z||�Wn"tyx|�t|j	|�Yn0|dt
j�|ddd�|dddt
j�Wd�q1s�0Yq|j|j
fD]�}|�|j���|�dd�|dd�|d	d�d
}z||d�Wn$t�y6|�t|j	|�Yn0|dd�|ddt
j�|dddd�|ddddt
j�Wd�q�1�s�0Yq�dS)NrZabcdsabcduàßçđrUrQrRZ1234s1234u١٢٣٤rK)rru�addstr�insstr�subTest�__qualname__rervrwrxrr|�addnstr�insnstr)rrru�func�srrr�test_output_strings:0


zTestCurses.test_output_stringc	Cs�|j}dD]t}|j|d��T|�t|j|�|�t|j|d�|�t|j|�|�t|j|d�Wd�q
1st0Yq
dS)N)zasa)�argrU)rr�rw�
ValueErrorrr�r�r�)rrr�rrr�&test_output_string_embedded_null_chars8sz1TestCurses.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)NrrUZABCDrsrR�Cr[s ABCD s ABrQrXsBCD ���)
rrrr|rer^�inch�instrrwr��rrrrr�test_read_from_windowBsz TestCurses.test_read_from_windowcCs�t�dddd�}dddd�D]}t�|�q|�|�dd�d�|�|��d	�|�|�dd
�d�|�|��d�|�|��d
�|�|��d�|�|��d�|�|��d�dS)NrKrZrQzspam
rOrRrU�s)rRrUrX�p)rRrX�a�mrL)rr]�ungetchr^Zgetchrf�rrbr}rrr�
test_getchRs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)NrKrZrQip���rRzLorem
ipsum
dolor
sit
amet
rOrUsLors Lo         rLsipsums Lo  ipsum  sdolors     dolor  ssissi   dolor  sametsamet dolor  )rr]�echor8�noechorwr�Zgetstrr�r^r�r�rrr�test_getstras"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)NrKrPrQrrYsLorem iprU�dolor sit amet,rRsLor�)rr]�lorem_ipsumreZclrtoeolr^r��rstripZclrtobotrB�clear)rrbr�rrr�
test_clearws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)NrKrPrQrsLoem ipsum     rSsLoem ipum      rUsconsectetur    �adipiscing elitrRssed do eiusmod rX�               sLorem ipsum    r�r�)rr]r�reZdelchr^r�ZdeletelnZinsertlnr�Zinsdelln�rrbrrr�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)NrKrPrQTrr�r����r�rRF)rr]r��scrollokZscrollr^r�r�rrr�test_scroll�s


zTestCurses.test_scrollcCsHt�dddd�}|�tj�|�tj�|�tj�|��|��dS)NrKrPrQ)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)NrKrPrQr�Lorem ipsumrRzdolor sit ametrYrSr�r��� rU�L�o�erXr��l�rrLr�r\)
rr]rrer�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)NrKrPrQrr�)rr��_�_�#�#rsr��#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)NrK�rRrXrS�r[rZ_________________ssectetur_________rUspiscing_elit,____rQs_do_eiusmod______s_________________ssectetur       __spiscing elit,  __s do eiusmod    __r\s__r_sit_amet_____s__ectetur________s__r sit amet_____s__ectetur   _____)	rr]r��rangerZoverlayr^r�Z	overwrite)rZsrcwinZdstwin�irrr�test_overlay
s.

zTestCurses.test_overlaycCs@t�dddd�}|��|�dd�|��|��t��dS)NrKrPrQrU)rr]ZnoutrefreshZredrawlnZ	redrawwinrj�doupdater�rrr�test_refresh*szTestCurses.test_refresh�resizecCsLt�dddd�}|�dd�|�|��d�|�dd�|�|��d�dS)NrKrPrQrX�)rXr�)rKrP)rr]r�r^r`r�rrr�test_resize2s
zTestCurses.test_resize�enclosecCs�t�dddd�}|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd	��dS)
NrKrPrQrUrXr[�rSr�)rr]�
assertTruer��assertFalser�rrr�test_enclose:szTestCurses.test_enclosecCs�t�dddd�}|�ddd�t���d}|�|�~|�d�t�|�}|�|�	�d�|�|�
�d�|�|�dd�d	�Wd�n1s�0YdS)
NrKrZrUrQr�rrT)rKrZs Lorem ipsum)rr]rr>r?Zputwin�seekZgetwinr^r_r`r�)rrb�frrr�test_putwinEs



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)3NrKrLrQ�|�!�-r��+�\r��/rs
+--------\rUs
|        !rXs
#________/�|�!�-�_�+�\r��/rs�Br��D�E�F�G�H�I�:�~rYs~~~~~~~~s
:        :�:�~rSs ----- �-rirR�ar��;�;)rr]Zborderr^r�rw�	TypeError�boxreZhliner|ZvlineZ
A_STANDOUTr�r�rrr�test_borders_and_linesQsr���
�
�
�
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)
Nrrrqrs�
s^J�
rLr�sAB�ZAB�)r^r�unctrlrwr�ryrGrrr�test_unctrl�szTestCurses.test_unctrlcCsT|js|�d�|�t��d�t��|�t��d�t��|�t��d�dS)N�requires terminalFT)r4rrkr�isendwinrAr�rGrrr�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�}|dur�|�|t�t�
|d�t�
|d�}|�|t�t�|�t�d�dS)	NZhc�colsrOZcrr��cudrQsabc
)�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)NrUF�d�2)rZdelay_outputZflushinpr�rkr�ZnapmsZnewpadrGrrr�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�NrU)r�rZtermnamer�ZlongnameZbaudrater�Zhas_ic�boolZhas_ilZ	termattrsZkillcharr^rzZ	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�immedokrKrL)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�rUrOrrK)rr4rZnocbreakZcbreakZ	intrflush�rawZnorawr�r�Z	halfdelayZkeypad�metaZnodelayZ	noqiflushZqiflushZ	notimeoutZtimeoutr�rrr�test_input_options�sB





















zTestCurses.test_input_options�	typeaheadcCst�tj���t�d�dS)NrO)rr	r*�	__stdin__r-rGrrr�test_typeaheadszTestCurses.test_typeaheadcCs$|js|�d�t��t��dS)Nr�)r4rrZ
def_prog_modeZreset_prog_moderGrrr�test_prog_mode$s
zTestCurses.test_prog_modecCsVt�d�dust�d�dur&t��n,zt��WntjyP|�d�Yn0dS)N�bel�flashz
beep() failed)rr�Zbeep�errorrrGrrr�	test_beep*s�
zTestCurses.test_beepcCsVt�d�dust�d�dur&t��n,zt��WntjyP|�d�Yn0dS)Nr
rzflash() failed)rr�rrrrGrrr�
test_flash4s�
zTestCurses.test_flashc	CsPdD]F\}}t�|�dur&t�|�qzt�|�WqtjyHYq0qdS)N))rZcivis)rQZcvvis)rUZcnorm)rr�Zcurs_setr)rZvisZcaprrr�
test_curs_set>szTestCurses.test_curs_set�get_escdelaycCs<t��}|�|t�t�d�|�t��d�t�|�dS)N�)rrr�r�Zset_escdelayr^)rZescdelayrrr�
test_escdelayHs

zTestCurses.test_escdelay�get_tabsizecCs<t��}|�|t�t�d�|�t��d�t�|�dS)NrX)rrr�r�Zset_tabsizer^)r�tabsizerrr�test_tabsizePs

zTestCurses.test_tabsize�getsyxcCsDt��\}}|�|t�|�|t�t�dd�|�t��d�dS)NrXrK)rXrK)rrr�r�Zsetsyxr^)r�y�xrrr�test_getsyxXs
zTestCurses.test_getsyxcCsdS�N)l����ll����lr�rrGrrr�
bad_colors`szTestCurses.bad_colorscCsdSrrrGrrr�	bad_pairscszTestCurses.bad_pairscCs$|�t��t�|�t��t�dSrF)r�rrr�can_change_colorrGrrr�test_has_colorsfszTestCurses.test_has_colorscCsNt��s|�d�t��trJtdtj��tjd�tdtj	��tjd�dS)Nrz	COLORS = )r%zCOLOR_PAIRS = )
rrrrrr(�COLORSr*r+�COLOR_PAIRSrGrrr�test_start_colorjs
zTestCurses.test_start_colorcCs�|�t�tj�d�t�d�ttjdt�}t�|�|��D]}|�t	tj|�q@tjtkrt|�tj
tjtj�|�tj
tjd�dS)N�rrrrrUrO)r^r�
color_content�COLOR_BLACK�minr"�	SHORT_MAXrrwryr)r�maxcolor�colorrrr�test_color_contentrs


zTestCurses.test_color_contentc	Cs�t��s|�d�t�d�}ztjdg|�R�WntjyP|�d�Yn0|jtjdg|�R�t�dddd�|�t�d�d�t�dddd�|�t�d�d�ttj	dt
�}t�|�}tj|g|�R�|jtj|g|�R�t�|ddd�|�t�|�d	�|��D]}|�t
tj|ddd��qtj	t
k�r\|�tjtjtj	ddd�|�tjtjd
ddd�dD]N}|�tjtjd|dd�|�tjtjdd|d�|�tjtjddd|��qxdS)Nzcannot change colorrz)cannot change color (init_color() failed)r%��)r-r-r-rU��)rr.r-rO)rOi�)rr rr&Z
init_colorrr8r^r(r"r)rrwry)r�oldr*r+�comprrr�test_init_colors6


zTestCurses.test_init_colorcCsttjt�SrF)r(rr#r)rGrrr�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_colorsrrUrO)rrr^�pair_content�COLOR_WHITEr'r2rrwryr)r�maxpair�pairrrr�test_pair_content�s

�

zTestCurses.test_pair_contentcCs�t�d�}tjdg|�R�|jtjdg|�R�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)NrUrrMrO)rr4Z	init_pairr8r^r(r"r)r2rrwryrr)rr/r*r6r7r+rrr�test_init_pair�s.
zTestCurses.test_init_paircCshdD]:}t�|�}|�t�|�||�|�t�|tjB�|�q|�t�d�d�|�t�d�d�dS)N)rrUrr)rZ
color_pairr^Zpair_numberr|)rr7�attrrrr�test_color_attrs�s
zTestCurses.test_color_attrsr3cCsft�d�}zt��Wntjy4|�d�Yn0|�t�d�d�|�|tjtjfddg�dS)Nrz1cannot change color (use_default_colors() failed)rNrM)	rr4r3rrr^r�r5r')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)NrsrrrWs^M�s^?rs^@rO�)r^rZkeynamerwr�r�r�rGrrr�test_keyname�szTestCurses.test_keyname�has_keycCst�d�dS)NrW)rr@rGrrr�test_has_key�szTestCurses.test_has_key�getmousecCsLt�tj�\}}|dkr"|�d�t�d�t�ddddtj�t��}dS)Nrzmouse stuff not availablerL)rZ	mousemaskZBUTTON1_PRESSEDrZ
mouseintervalZ
ungetmouserB)rZ	availmaskZoldmask�mrrr�
test_getmouse�s

zTestCurses.test_getmouse�panelcCsVt�dd�}tj�|�}|jtjjdd��|��Wd�n1sH0YdS)NrLz!userptr should fail since not set)�msg)rr]rE�	new_panelrwrZuserptr)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)NrLr�zset_userptr leaked references)
rr]rErG�objectr*�getrefcountr��set_userptrr^)rrHrI�objZnrefsr�rrr�test_userptr_memory_leaks

�z#TestCurses.test_userptr_memory_leakcsDt�dd�}tj�|��G�fdd�d�}��|����d�dS)NrLcseZdZ�fdd�ZdS)z+TestCurses.test_userptr_segfault.<locals>.Acs��d�dSrF)rMrG�rErr�__del__sz3TestCurses.test_userptr_segfault.<locals>.A.__del__N)�__name__�
__module__r�rQrrPrrrqsrq)rr]rErGrM)rrHrqrrPr�test_userptr_segfaults
z TestCurses.test_userptr_segfaultcCs,t�dd�}tj�|�}|�tt|��dS)NrL)rr]rErGrwr�r�)rrHrErrr�test_new_curses_panelsz TestCurses.test_new_curses_panel�is_term_resizedcCsBtjtj}}|�t�||�d�|�t�|d|d�d�dS)NFrUT)r�LINES�COLSrkrV�r�linesr�rrr�test_is_term_resizedszTestCurses.test_is_term_resized�resize_termcCszt��tjtj}}|d}|d}t�||�|�tj|�|�tj|�t�||�|�tj|�|�tj|�dSr�)r�update_lines_colsrWrXr\r^�rrZr�Z	new_linesZnew_colsrrr�test_resize_term$szTestCurses.test_resize_term�
resizetermcCszt��tjtj}}|d}|d}t�||�|�tj|�|�tj|�t�||�|�tj|�|�tj|�dSr�)rr]rWrXr`r^r^rrr�test_resizeterm2szTestCurses.test_resizetermcCsXt�d�|�|j��d�t�d�|�|j��d�t�d�|�|j��d�dS)Nrrrq�Br��C)rr�r^r�getkeyrGrrr�test_ungetch@s


zTestCurses.test_ungetchcCst�d�|j��dS)Ni)rr�rrdrGrrr�test_issue6243Hs
zTestCurses.test_issue6243�	unget_wch�ncurses_version)�c)rKrYz.unget_wch is broken in ncurses 5.7 and earliercCs�|j}|j}dD]�}z|�|�Wnty8YqYn0zt�|�Wn:ty�}z"|�d||j|f�WYd}~n
d}~00|��}|�	||�t
|�}t�|�|��}|�	||�qdS)N)ri�értu􏿿z)unget_wch(%a) failed with encoding %s: %s)rrurxrvrrg�	ExceptionZfailZget_wchr^�ord)rrru�ch�err�read�coderrr�test_unget_wchLs&

�
zTestCurses.test_unget_wchcCs�|j}ddl}|j}|�|�|�t��d|_Wd�n1sD0Y||_|�t��|`Wd�n1sx0YdS)NrrL)r�codecsru�lookuprwr�)rrrrrurrr�
test_encodingds
$zTestCurses.test_encodingcCsV|j}zt�|j�}|�|�Wnty2Yn0|jj�d�d}|�d|�dS)Nr�rz[y, x,])	r�inspect�	signatureror�r��__doc__�splitr�)rrrvZhuman_readable_signaturerrr�test_issue21088os
	zTestCurses.test_issue21088cCsNt�dddd�}tjj|dd�}|��\}}|�|d|d�|�d�dS)NrKrPrQT)Zinsert_moderi)rr]ZtextpadZTextboxr`r�Z_insert_printable_char)rrbr�rZr�rrr�test_issue13051�s
zTestCurses.test_issue13051N)NrRrSr��classmethodr0rDr
rHrJrdrgrpr~r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrrrrrr!r$r r,r1r2r8r9r;r<r?rArDrJrOrTrUr[r_rarerfr�skipIf�getattrrrqrtryrzrrrrr#5s�
0

40&"
*

!


8	.








 



		

	


	





�r#c@s,eZdZed�dd��Zed�dd��ZdS)�	MiscTestsr]cCsJt��tjtj}}dt_t_t��|�tj|�|�tj|�dS)Nr)rr]rWrXr^rYrrr�test_update_lines_cols�sz MiscTests.test_update_lines_colsrhcCstj}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&rRrrUrQ)
rrhrr(r��tupler^rzr��major�minorZpatchZassertGreaterEqual)r�vrrr�test_ncurses_version�s"zMiscTests.test_ncurses_versionN)rRrSr�r
rr�rrrrr~�s
r~c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�	TestAsciicCs&tjjD]}|�ttj|�|�qdSrF)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�dv�|tjjd�k�odkn�|tjjd�k�o>dkn�|tjj�tjv�|tjj�tjv�qd	d
dtjtjdfD�]���tj������tj������tj������tj������tj�	�����tj�
�����tj������tj�
�����tj������tj������tj������tj������tj������tj�����q���tj�d
��dS)NcsR�j�|d��0��|��|���|��|�Wd�n1sD0YdS)N)rmr�)r�r^)r�Zexpected�r}r�rrr�check�sz$TestAscii.test_ctypes.<locals>.checkr>�r�r=z 	�~r�rOrU)r��chrr�rr��isalnum�isalpha�isdigit�islower�isspace�isupper�isasciiZismetaZisctrlZiscntrlZisblankZisgraphZisprintZispunct�stringZpunctuationZisxdigitZ	hexdigitsr*�
maxunicoder�)rr��brr�r�test_ctypes�sF
$$zTestAscii.test_ctypescCsDtjj}|�|d�d�|�|d�d�|�|td��td��dS)N�Árq)rr�r^rl)rr�rrr�
test_ascii�szTestAscii.test_asciicCsTtjj}|�|d�d�|�|d�d�|�|d�d�|�|td��td��dS)N�Jr��@�)rr��ctrlr^rl)rr�rrr�	test_ctrl�s
zTestAscii.test_ctrlcCs@tjj}|�|d�d�|�|d�d�|�|td��d�dS)Nr��Šrqr��)rr��altr^rl)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)Nrirqr�� �z^?r�z^Jr�z^@r�z!^Jr�z!A)rr�r�r^rl)rr�rrrr��szTestAscii.test_unctrlN)	rRrSr�r�r�r�r�r�r�rrrrr��s-r�cCsTgd�}|��\}}t|d|��D]*\}}|�|d|d|||dk��q$dS)N)	r�zdolor sit amet,Zconsecteturzadipiscing elit,zsed do eiusmodztempor incididuntzut labore etzdolore magnazaliqua.rrU)r`�	enumerater)rb�textZmaxyZmaxxr�linerrrr�
sr��__main__)rrur6r�r*r>rZtest.supportrrrrrZcurses.panel�ImportErrorr
rr �environ�getr)r)r|rmZTestCaser#r~r�r�rR�mainrrrr�<module>sP	��d X