Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_curses.cpython-39.opt-1.pyc

a

��g��@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�,/usr/local/lib/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_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	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�€rVrRrSTuĔF)r�encodingrkrfrp�UnicodeEncodeError�assertRaises�encode�
OverflowErrorZassertNotEqual�len�reprr�A_BOLDrlrmZechochar)rrrv�c�encodedrrr�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àßçđrVrRrSZ1234s1234u١٢٣٤rL)rrv�addstr�insstr�subTest�__qualname__rfrwrxryrr}�addnstr�insnstr)rrrv�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)�argrV)rr�rx�
ValueErrorr�r�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)NrrVZABCDrtrS�Cr\s ABCD s ABrRrYsBCD ���)
rr�rr}rfr_�inch�instrrxr��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)NrLr[rRzspam
rPrSrV�s)rSrVrY�p)rSrY�a�mrM)rr^�ungetchr_Zgetchrg�rrcr~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)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_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)NrLrQrRrrZsLorem iprV�dolor sit amet,rSsLor�)rr^�lorem_ipsumrfZclrtoeolr_r��rstripZclrtobotrC�clear)rrcr�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)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_overlay
s.

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_resize2s
zTestCurses.test_resize�enclosecCs�t�dddd�}|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd��|�|�dd	��dS)
NrLrQrRrVrYr\�rTr�)rr^�
assertTruer��assertFalser�rrr�test_enclose:szTestCurses.test_enclosecCs�t�dddd�}|�ddd�t���d}|�|�~|�d�t�|�}|�|�	�d�|�|�
�d�|�|�dd�d	�Wd�n1s�0YdS)
NrLr[rVrRr�rrU)rLr[s Lorem ipsum)rr^r�r>r?Zputwin�seekZgetwinr_r`rar�)rrc�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)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_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)
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�}|dur�|�|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_mode$s
zTestCurses.test_prog_modecCsVt�d�dust�d�dur&t��n,zt��WntjyP|�d�Yn0dS)N�bel�flashz
beep() failed)rr�Zbeep�errorrrHrrr�	test_beep*s�
zTestCurses.test_beepcCsVt�d�dust�d�dur&t��n,zt��WntjyP|�d�Yn0dS)Nrrzflash() failed)rr�rrrrHrrr�
test_flash4s�
zTestCurses.test_flashc	CsPdD]F\}}t�|�dur&t�|�qzt�|�WqtjyHYq0qdS)N))rZcivis)rRZcvvis)rVZcnorm)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)NrY)rrr�r�Zset_tabsizer_)r�tabsizerrr�test_tabsizePs

zTestCurses.test_tabsize�getsyxcCsDt��\}}|�|t�|�|t�t�dd�|�t��d�dS)NrYrL)rYrL)rrr�r�Zsetsyxr_)r�y�xrrr�test_getsyxXs
zTestCurses.test_getsyxcCsdS�N)l����ll����lr�rrHrrr�
bad_colors`szTestCurses.bad_colorscCsdSr rrHrrr�	bad_pairscszTestCurses.bad_pairscCs$|�t��t�|�t��t�dSrG)r�rrr�can_change_colorrHrrr�test_has_colorsfszTestCurses.test_has_colorscCsNt��s|�d�t��trJtdtj��tjd�tdtj	��tjd�dS)Nrz	COLORS = )r%zCOLOR_PAIRS = )
rrrrrr(�COLORSr*r+�COLOR_PAIRSrHrrr�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�rrrrrVrP)r_r�
color_content�COLOR_BLACK�minr%�	SHORT_MAXr!rxrzr)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(��)r0r0r0rV��)rr1r0rP)rPi�)rr#rr)Z
init_colorrr8r_r+r%r,r!rxrz)r�oldr-r.�comprrr�test_init_colors6


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*r5r"rxrzr)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)NrVrrNrP)rr7Z	init_pairr8r_r+r%r,r5r"rxrzrr!)rr2r-r9r:r.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})rr:�attrrrr�test_color_attrs�s
zTestCurses.test_color_attrsr6cCsft�d�}zt��Wntjy4|�d�Yn0|�t�d�d�|�|tjtjfddg�dS)Nrz1cannot change color (use_default_colors() failed)rOrN)	rr7r6rrr_r�r8r*)rr2rrr�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)rrCrHrrr�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
ungetmouserE)rZ	availmaskZoldmask�mrrr�
test_getmouse�s

zTestCurses.test_getmouse�panelcCsVt�dd�}tj�|�}|jtjjdd��|��Wd�n1sH0YdS)NrMz!userptr should fail since not set)�msg)rr^rH�	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^rHrJ�objectr*�getrefcountr��set_userptrr_)rrKrL�objZnrefsr�rrr�test_userptr_memory_leaks

�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)rPrH�rHrr�__del__sz3TestCurses.test_userptr_segfault.<locals>.A.__del__N)�__name__�
__module__r�rTrrSrrrrsrr)rr^rHrJrP)rrKrrrrSr�test_userptr_segfaults
z TestCurses.test_userptr_segfaultcCs,t�dd�}tj�|�}|�tt|��dS)NrM)rr^rHrJrxr�r�)rrKrHrrr�test_new_curses_panelsz TestCurses.test_new_curses_panel�is_term_resizedcCsBtjtj}}|�t�||�d�|�t�|d|d�d�dS)NFrVT)r�LINES�COLSrlrY�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_colsrZr[r_r_�rr]r�Z	new_linesZnew_colsrrr�test_resize_term$szTestCurses.test_resize_term�
resizetermcCszt��tjtj}}|d}|d}t�||�|�tj|�|�tj|�t�||�|�tj|�|�tj|�dSr)rr`rZr[rcr_rarrr�test_resizeterm2s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�rrgrHrrr�test_issue6243Hs
zTestCurses.test_issue6243�	unget_wch�ncurses_version)�c)rLrZz.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)rj�éruu􏿿z)unget_wch(%a) failed with encoding %s: %s)rrvryrwrrj�	ExceptionZfailZget_wchr_�ord)rrrv�ch�err�read�coderrr�test_unget_wchLs&

�
zTestCurses.test_unget_wchcCs�|j}ddl}|j}|�|�|�t��d|_Wd�n1sD0Y||_|�t��|`Wd�n1sx0YdS)NrrM)r�codecsrv�lookuprxr�)rrrurvrrr�
test_encodingds
$zTestCurses.test_encodingcCsV|j}zt�|j�}|�|�Wnty2Yn0|jj�d�d}|�d|�dS)Nr�rz[y, x,])	r�inspect�	signaturerpr�r��__doc__�splitr�)rrryZhuman_readable_signaturerrr�test_issue21088os
	zTestCurses.test_issue21088cCsNt�dddd�}tjj|dd�}|��\}}|�|d|d�|�d�dS)NrLrQrRT)Zinsert_moderj)rr^ZtextpadZTextboxrar�Z_insert_printable_char)rrcr�r]r�rrr�test_issue13051�s
zTestCurses.test_issue13051N)NrUrVr��classmethodr0rEr
rIrKrerhrqr�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrrrrr!r"r$r'r r/r4r5r;r<r>r?rBrDrGrMrRrWrXr^rbrdrhrir�skipIf�getattrrrtrwr|r}rrrrr#5s�
0

40&"
*

!


8	.








 



		

	


	





�r#c@s,eZdZed�dd��Zed�dd��ZdS)�	MiscTestsr`cCsJt��tjtj}}dt_t_t��|�tj|�|�tj|�dS)Nr)rr`rZr[r_r\rrr�test_update_lines_cols�sz MiscTests.test_update_lines_colsrkcCstj}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)
rrkrr(r��tupler_r{r��major�minorZpatchZassertGreaterEqual)r�vrrr�test_ncurses_version�s"zMiscTests.test_ncurses_versionN)rUrVr�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�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)rpr�)r�r_)r�Zexpected�r~r�rrr�check�sz$TestAscii.test_ctypes.<locals>.checkrA�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_ro)rr�rrr�
test_ascii�szTestAscii.test_asciicCsTtjj}|�|d�d�|�|d�d�|�|d�d�|�|td��td��dS)N�Jr��@�)rr��ctrlr_ro)rr�rrr�	test_ctrl�s
zTestAscii.test_ctrlcCs@tjj}|�|d�d�|�|d�d�|�|td��d�dS)Nr��Šrrr��)rr��altr_ro)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_ro)rr�rrrr��szTestAscii.test_unctrlN)	rUrVr�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.rrV)ra�	enumerater�)rc�textZmaxyZmaxxr�linerrrr�
sr��__main__)rrxr6r�r*r>rZtest.supportrrrrrZcurses.panel�ImportErrorr
rr �environ�getr)r,rrnZTestCaser#r�r�r�rU�mainrrrr�<module>sP	��d X


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists