Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_curses.cpython-312.opt-2.pyc

�

'Μg.����ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZmZm
Z
mZmZddlmZe
d�ed�Zed�ed�	ddlZd�Zd	�Zd
�Zej0j3d�ZdZej8exsed
k(dez�ej8ej:dk(d�Gd�dej<���ZGd�dej<�Z Gd�dej<�Z!d�Z"Gd�dej<�Z#e$dk(rejJ�yy#e$rY��wxYw)�N)�	MagicMock)�requires�verbose�SaveSignals�cpython_only�check_disallow_instantiation�MISSING_C_DOCSTRINGS)�
import_module�curseszcurses.asciizcurses.textpadc�P�tjtt|�d|z�S)Nzrequires curses.%s)�unittest�
skipUnless�hasattrr)�names �-/usr/local/lib/python3.12/test/test_curses.py�requires_curses_funcrs&�����w�v�t�4�3�d�:�<�<�c����fd�}|S)Nc�F���tj����fd��}|S)Nc�z��t|j��stjd�z���|g|��i|��y)Nzrequires curses.window.%s)r�stdscrr
�SkipTest)�self�args�kwargsr�tests   ��r�wrappedz:requires_curses_window_meth.<locals>.deco.<locals>.wrapped"s:����4�;�;��-��'�'�(C�d�(J�K�K���'��'��'r��	functools�wraps)rrrs` �r�decoz)requires_curses_window_meth.<locals>.deco!s%���	����	�	(�
�	(��r�)rr!s` r�requires_curses_window_methr# s�����Krc�B��tj���fd��}|S)Nc���tj�s|jd�tj��|g|��i|��y)N�requires colors support)r�
has_colors�skipTest�start_color)rrrrs   �rrz requires_colors.<locals>.wrapped,s:���� � �"��M�M�3�4������T�#�D�#�F�#rr)rrs` r�requires_colorsr*+s%����_�_�T��$��$�
�Nr�TERMi��unknownz*$TERM=%r, calling initscr() may cause exit�cygwinz!cygwin's curses mostly just hangsc�0�eZdZed��Zd�Zed�d��Zed�d��Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zed�d��Zd�Zd�Zd�Zed�d��Zed�d��Zd�Zd�Zd�Zd �Z d!�Z!d"�Z"d#�Z#d$�Z$d%�Z%ed&�d'��Z&d(�Z'd)�Z(d*�Z)d+�Z*ed,�d-��Z+ed.�d/��Z,ed0�d1��Z-d2�Z.d3�Z/d4�Z0d5�Z1d6�Z2e3d7��Z4e3d8��Z5d9�Z6e3d:��Z7e3d;��Z8e3d<��Z9ed=�e3d>���Z:d?�Z;ed@�dA��Z<edB�dC��Z=edD�dE��Z>edD�dF��Z?edD�dG��Z@eAedD�dH���ZBedI�dJ��ZCedK�dL��ZDedM�dN��ZEdO�ZFdP�ZGedQ�eHj�eJeKdRdS�dTkdU�dV���ZLdW�ZMeHj�eNdX�dY��ZOed�dZ��ZPy[)\�
TestCursesc��tr#tdt��tjd��tj
j
�}tj|��y)NzTERM=T��file�flush)�fd)	r�print�term�sys�stderr�
__stdout__�filenor�	setupterm)�cls�	stdout_fds  r�
setUpClasszTestCurses.setUpClass>s=����E�$��.�s�z�z��>��N�N�)�)�+�	����I�&rc�v�d|_tj|_tjj	�}tjj�s�tj|�}|jt
j|�|jt
j||�tjj�r&tj}tj|_n1	tddd��}|j|j�d|_tj|j	�|�t�|_|j j#�|j|j j$�t&r_|j�Stj(j+�tj,j+�t/|jd��t1j2�|_|jrRt1j6�|jt0j8�|jt0j:�|j4j=�y#t$r"tjdd��}d|_Y���wxYw)	NTz/dev/tty�wbr)�	buffering)�moderAFr1)�isattyr7r9�outputr:�os�dup�
addCleanup�close�dup2�
__stderr__�open�OSError�tempfile�
TemporaryFiler�save_signals�save�restorerr8r3�stdoutr5r�initscrr�savetty�endwin�resetty�erase)rr=�dup_fd�tmps    r�setUpzTestCurses.setUpGs�������n�n����N�N�)�)�+�	��~�~�$�$�&��V�V�I�&�F��O�O�B�H�H�f�-��O�O�B�G�G�V�Y�7��~�~�$�$�&��n�n��!�n�n���	(��z�4�1�=�C�����	�	�*�"����G�G�C�J�J�L�)�,�'�M�������� �����)�)�1�1�2��t�{�{�.��J�J�����J�J�����t�{�{�$�/��n�n�&����;�;��N�N���O�O�F�M�M�*��O�O�F�N�N�+��������1�(�
#�0�0�d�a�H�C�"'�D�K�
(�s�4J
�
'J8�7J8�filterc�,�tj�y�N)rr[�rs r�test_filterzTestCurses.test_filterws
��	�
�
�r�use_envc�X�tjd�tjd�y)NFT)rr`r^s r�test_use_envzTestCurses.test_use_env}s��	���u�����t�rc�	�tjdd�}|j|j�d�|j|j	�d�|j|j�d�tjdddd�}|j|j�d�|j|j	�d�|j|j�d	�|j
d
d�}|j|j�d�|j|j	�d
�|j|j�d�|j
ddd
d�}|j|j�d�|j|j	�d
�|j|j�d�|jdd
�}|j|j�d�|j|j	�d�|j|j�d�|jdddd
�}|j|j�d�|j|j	�d�|j|j�d�|jdd�|j|j�d�|j|j	�d�|j|j�d	�|j|j�d�|j|j	�d
�|j|j�d�|j|j�d�|j|j	�d�|j|j�d�|jdd�|j|j�d�|j|j	�d�|j|j�d�|jdd�|j|j�d�|j|j	�d�|j|j�d�y)N��
�rr����rh)rdre��)rjrd)reri��)rkrl��rj)�	�
)��)rjrk)rr���)rtrurrn)rrn)rjrn)
r�newwin�assertEqual�getbegyx�getparyx�getmaxyx�subwin�derwin�mvwin�mvderwin)r�win�win2�win3s    r�test_create_windowszTestCurses.test_create_windows�sm���m�m�A�r�"����������0���������2���������1��m�m�B��A�q�)����������0���������2���������2��z�z�!�Q����������&�1��������&�1��������'�2��z�z�!�R��A�&���������&�1��������&�1��������'�2��z�z�!�Q����������&�1��������&�1��������'�2��z�z�!�R��A�&���������&�1��������&�1��������'�2��	�	�!�Q����������0���������2���������2��������&�1��������&�1��������'�2��������&�1��������&�1��������'�2��
�
�a����������&�1��������&�1��������'�2��
�
�a����������&�1��������&�1��������'�2rc�l�|j}|jdddd�}|jdd�|jdd�|j|j	�d�|j|j	�d�|j�|j|j	�d	�y)
Nrerirjrdrnrqrm)rjrq)rqro)rr{�moverw�getyx�	cursyncup)rrrs   r�test_move_cursorzTestCurses.test_move_cursor�s��������m�m�B��A�q�)�����A�q������A����������0��������f�-��
�
����������0rc��|j}|j�|j|j�d�|j	�|j|j�d�|j�|j|j�d�|j	�|j|j�d�|j�|j|j�d�|j
dd�|j|jd�d�|j|jd�d�|j|j�d�|j
ddd�|j|jd�d�|jdddd�}|jddd	d
�}|j	�|j�|j�|j|j�d�|j|j�d�|j	�|j�|j�|j�|j|j�d�t|d�r�tjjd�s�|j�|j�d
D]d}|j|�|j!d�|j|j�|�|j|j�|��fyyy)NFTrdrjrtrnrerirkrl�syncok�sunos)FT�a)r�refresh�assertIs�
is_wintouched�touchwin�
untouchwin�	touchline�is_linetouchedr{�syncup�syncdownrr7�platform�
startswithr��addch)rrrr�r�s     r�test_refresh_controlzTestCurses.test_refresh_control�sy�����������
�
�f�*�*�,�e�4������
�
�f�*�*�,�d�3������
�
�f�*�*�,�e�4������
�
�f�*�*�,�d�3������
�
�f�*�*�,�e�4�	����A���
�
�f�+�+�A�.��5��
�
�f�+�+�A�.��5��
�
�f�*�*�,�d�3�����A�u�%��
�
�f�+�+�A�.��6��m�m�B��A�q�)���z�z�!�R��A�&���
�
���������
��
�
�c�'�'�)�4�0��
�
�f�*�*�,�d�3�	�������������
�
���
�
�d�(�(�*�D�1��6�8�$�S�\�\�-D�-D�W�-M��N�N������'�����F�#��
�
�3���
�
�c�/�/�1�6�:��
�
�f�2�2�4�f�=�	(�.N�$rc��|j}|j}|j�|jdd�|j	d�|j	d�|j	d�d}	|j	|�|j	dtj�|j	ddd�|j	dddtj�|j|j�d	�|j�|jdd�|j!d�|j!d�|j!d�|j
t
tf�5|j!d
�ddd�|j!dtj�|j|j�d�y#t
$r%|j
t
|j|�Y��mt$r:|j|�}|jt|�dt|��Y���wxYw#1swY��xYw)Nr�A�A�A�€rnrjrkTuĔF)r�encodingr�r�r��UnicodeEncodeError�assertRaises�encode�
OverflowError�assertNotEqual�len�reprr�A_BOLDr�r��echochar)rrr��c�encodeds     r�test_output_characterz TestCurses.test_output_character�s��������?�?���������A�q�����S�����T�����R����	@��L�L��O�	���S�&�-�-�(����Q��3�����Q��3��
�
�.��
�
�f�*�*�,�d�3�	�������A�q�����������������
�
�
� 2�M�B�
C�
�O�O�H�%�
D�	����V�]�]�+��
�
�f�*�*�,�e�4��1"�	F����0�!�(�(�H�E��	@��h�h�x�(�G�����G��a��g��?�	@��D�
C�s$�1G�'H4�*H1�/>H1�0H1�4H=c	���|j}|j}|j|jfD]�}|j	|j
�5|j
dd�|d�|d�d}	||�|dtj�|ddd�|dddtj�ddd���|j|jfD]�}|j	|j
�5|j
dd�|dd�|d	d�d
}	||d�|dd�|ddtj�|dddd�|ddddtj�ddd���y#t$r%|jt|j|�Y��)wxYw#1swY���xYw#t$r$|jt|j|�Y��wxYw#1swY��xYw)Nr�abcdsabcduàßçđrnrjrk�1234s1234u١٢٣٤rd)rr��addstr�insstr�subTest�__qualname__r�r�r�r�rr��addnstr�insnstr)rrr��func�ss     r�test_output_stringzTestCurses.test_output_strings��������?�?���]�]�F�M�M�2�D����d�/�/�0����A�q�!��V���W�
���N���G��V�V�]�]�+��Q��6�"��Q��6�6�=�=�1�1�0�3��^�^�V�^�^�4�D����d�/�/�0����A�q�!��V�Q���W�a� �.��N���A�J��V�Q���V�Q��
�
�.��Q��6�1�%��Q��6�1�f�m�m�4�1�0�5��*�N��%�%�&8�!�(�(�H�M�N��1�0��,*�N��%�%�&8�!�(�(�H�M�N��1�0�sa�%F*�5E9�=:F*�7'G'�	F7�(AG'�9*F'�#F*�&F'�'F*�*F4	�7*G$�!G'�#G$�$G'�'G1	c��|j}dD]�}|j|��5|jt|j|�|jt|j
|d�|jt|j|�|jt|j|d�ddd���y#1swY��xYw)N)zasa)�argrn)rr�r��
ValueErrorr�r�r�r�)rrr�s   r�&test_output_string_embedded_null_charsz1TestCurses.test_output_string_embedded_null_chars;s�������"�C����#��&��!�!�*�f�m�m�S�A��!�!�*�f�n�n�c�1�E��!�!�*�f�m�m�S�A��!�!�*�f�n�n�c�1�E�	'�&�#�&�&�s�BB6�6B?	c��|j}|jdddtj�|j	dd�|j|j
�dtjz�|j|j
dd�dtjz�|j	dd�|j|j�ddd�|j|jd�ddd	�|j|jdd
�ddd�|j|jdd
d�d�|jt|jd
�|jt|jdd
d
�y)Nrrn�ABCDr�rk�Crts ABCD s ABrjrqsBCD ���)
rr�rr�r�rw�inch�instrr�r��rrs  r�test_read_from_windowz TestCurses.test_read_from_windowEs+�������
�
�a��F�F�M�M�2����A�q����������V�]�]�(:�;�������Q��*�B����,>�?����A�q�����������+�Y�7�������a���!�,�f�5�������a��+�B�Q�/��9�������a��A�.��8����*�f�l�l�B�7����*�f�l�l�A�q�"�=rc��tjdddd�}dddd�D]}tj|��|j|j	dd�d�|j|j�d	�|j|j	dd
�d�|j|j�d�|j|j	�d
�|j|j�d�|j|j	�d�|j|j	�d�y)Nrdrsrjzspam
rhrkrn�s)rkrnrq�p)rkrq�a�mre)rrv�ungetchrw�getchr��rrr�s   r�
test_getchzTestCurses.test_getchUs����m�m�A�r�1�a�(���$�B�$��A��N�N�1�� �������1�a��'�2��������f�-�������1�a��'�2��������f�-��������g�.��������f�-��������g�.��������h�/rc��tjdddd�}tj�|jtj�|jt|jd�|jt|jddd�dddd�D]}tj|��|j|jddd�d	�|j|jdd
�d�|j|jddd�d
�|j|jdd
�d�|j|jdd�d�|j|jdd
�d�|j|jd�d�|j|jdd
�d�|j|j�d�|j|jdd
�d�y)Nrdrsrjip���rkzLorem
ipsum
dolor
sit
amet
rhrnsLors Lo         resipsums Lo  ipsum  sdolors     dolor  ssissi   dolor  sametsamet dolor  )rrv�echorG�noechor�r��getstrr�rwr�r�s   r�test_getstrzTestCurses.test_getstrds����m�m�A�r�1�a�(�����
�����
�
�&����*�c�j�j�$�7����*�c�j�j�!�Q��=�4�D�b�D�9�A��N�N�1��:�������A�q�!�,�e�4�������1�a��/�:�������A�q�"�-�x�8�������1�a��/�:�������A�q�)�8�4�������1�a��/�:�������A���.�������1�a��/�:��������w�/�������1�a��/�:rc�p�tjdddd�}t|�|jdd�|j	�|j|j
dd�j�d�|j|j
dd�j�d�|jdd	�|j�|j|j
dd�j�d
�|j|j
dd�j�d�|j|jfD]t}t|�|�|j|j
dd�j�d�|j|j
dd�j�d��vy)NrdrirjrrrsLorem iprn�dolor sit amet,rksLorr)rrv�lorem_ipsumr��clrtoeolrwr��rstrip�clrtobotrW�clear)rrr�s   r�
test_clearzTestCurses.test_clearzsA���m�m�A�r�1�a�(���C������A������������1�a��/�/�1�;�?�������1�a��/�/�1�3E�F�����A������������1�a��/�/�1�6�:�������1�a��/�/�1�3�7��Y�Y��	�	�*�D�����F����S�Y�Y�q�!�_�3�3�5�s�;����S�Y�Y�q�!�_�3�3�5�s�;�	+rc��tjdddd�}t|�|jdd�|j	�|j|j
dd�d�|j	dd�|j|j
dd�d�|jdd�|j�|j|j
dd�d�|j|j
dd�d	�|j|j
dd�d
�|j|j
dd�d�|j|j
d
d�d�|jdd�|j�|j|j
dd�d�|j|j
dd�d�|j|j
dd�d	�|j�t|�|jdd�|jd�|j|j
dd�d�|j|j
dd�d�|j|j
dd�d�|j|j
dd�d�|j�t|�|jdd�|jd�|j|j
dd�d�|j|j
dd�d
�|j|j
dd�d�|j|j
dd�d�y)NrdrirjrsLoem ipsum     rlsLoem ipum      rnsconsectetur    �adipiscing elitrkssed do eiusmod rq�               sLorem ipsum    r�r�)rrvr�r��delchrwr��deleteln�insertlnr��insdelln�rrs  r�test_insert_deletezTestCurses.test_insert_delete�s����m�m�A�r�1�a�(���C������A���	�	��������1�a��*<�=��	�	�!�Q��������1�a��*<�=�����A������������1�a��*<�=�������1�a��*<�=�������1�a��*<�=�������1�a��*<�=�������1�a��*<�=�����A������������1�a��*<�=�������1�a��*<�=�������1�a��*<�=��	�	���C������A�����Q��������1�a��*<�=�������1�a��*<�=�������1�a��*<�=�������1�a��*<�=��	�	���C������A�����R��������1�a��*<�=�������1�a��*<�=�������1�a��*<�=�������1�a��*<�=rc�F�tjdddd�}t|�|jd�|j	�|j|j
dd�d�|j	d�|j|j
dd�d�|j	d�|j|j
dd�d	�|j|j
dd�d	�|j|j
d
d�d�|jd�y)NrdrirjTrr�r����r�rkF)rrvr��scrollok�scrollrwr�r�s  r�test_scrollzTestCurses.test_scroll�s����m�m�A�r�1�a�(���C�����T���
�
��������1�a��*<�=��
�
�1�
�������1�a��*<�=��
�
�2��������1�a��*<�=�������1�a��*<�=�������1�a��*<�=����U�rc�.�tjdddd�}|jtj�|j	tj�|jtj�|j
�|j�y)Nrdrirj)rrv�attronr��attroff�attrset�standout�standendr�s  r�test_attributeszTestCurses.test_attributes�sX���m�m�A�r�1�a�(���
�
�6�=�=�!����F�M�M�"����F�M�M�"��������r�chgatc�>�tjdddd�}|jddd�|jddd�|jdd�|j	tj
�|j
|jdd	�d
�|j
|jdd�dtj
z�|j
|jdd�d
tj
z�|jdd�|j	dtj�|j
|jdd�d�|j
|jdd�dtjz�|j
|jdd�dtjz�|j
|jdd�d�|j	ddtj�|j
|jdd�d�|j
|jdd�dtjz�|j
|jdd�d
tjz�|j	ddd	tj
�|j
|jdd�dtjz�|j
|jdd�dtj
z�|j
|jdd�dtj
z�|j
|jdd�dtjz�|j
|jdd�d
tjz�y)Nrdrirjr�Lorem ipsumrkzdolor sit ametrrrlr�r��� rn�L�o�erqr��l�rrer�ru)
rrvr�r�r��A_BLINKrwr�r��A_UNDERLINEr�s  r�
test_chgatzTestCurses.test_chgat�s����m�m�A�r�1�a�(���
�
�1�a��'��
�
�1�a�)�*�����A���	�	�&�.�.�!�������!�Q���1�������!�Q���6�>�>�)A�B�������!�R��'�F�N�N�*B�C�����A���	�	�!�V�]�]�#�������!�Q���1�������!�Q���6�=�=�)@�A�������!�Q���6�=�=�)@�A�������!�Q���1��	�	�!�Q��*�*�+�������!�Q���1�������!�Q���6�3E�3E�)E�F�������!�R��'�F�4F�4F�*F�G��	�	�!�Q��6�>�>�*�������!�Q���6�3E�3E�)E�F�������!�Q���6�>�>�)A�B�������!�R��'�F�N�N�*B�C�������!�R��'�F�4F�4F�*F�G�������!�R��'�F�4F�4F�*F�Grc���tjdddd�}|jddd�|j|j	�d�|jd�|j
|j	�d�|jd	�|j
|j	�d
�|jd�|j
|j	�d�|jd�|j
|j	�d�|jd
tj�|j
|j	�d
tjz�|j
|jdd�d�|j
|jdd�d�|jd�|jd�|j
|j	�d�|j
|jdd�d�|j
|jdd�d�|jd
tj�|j
|j	�d
tjz�|j
|jdd�dtjz�|j
|jdd�d
tjz�y)Nrdrirjrr�)rr��_�_�#�#r�r��#r�)
rrvr��assertIn�getbkgd�bkgdsetrw�	A_REVERSEr��bkgdr�s  r�test_backgroundzTestCurses.test_background�s���m�m�A�r�1�a�(���
�
�1�a��'��
�
�c�k�k�m�W�-�	���C����������0����D����������0����B����������+����A����������+����C��)�)�*���������&�2B�2B�(B�C�������!�Q���1�������!�Q���1����A��	����
���������0�������!�Q���1�������!�Q���1�����f�&�&�'���������&�2B�2B�(B�C�������!�Q���6�3C�3C�)C�D�������!�Q���6�3C�3C�)C�Drc	��tjdddd�}t|�tjdddd�}td�D]}|j	|dd	��|j|�|j
|jdd�d
�|j
|jdd�d�|j
|jd
d�d�|j
|jdd�d�|j|�|j
|jdd�d�|j
|jdd�d�|j
|jd
d�d�|j
|jdd�d�|j|dddd
dd�|j
|jdd�d�|j
|jdd�d�|j
|jdd�d�|j|dddd
dd�|j
|jdd�d�|j
|jdd�d�|j
|jdd�d�y)Nrd�rkrqrl�rtr�_________________ssectetur_________rnspiscing_elit,____rjs_do_eiusmod______s_________________ssectetur       __spiscing elit,  __s do eiusmod    __rus__r_sit_amet_____s__ectetur________s__r sit amet_____s__ectetur   _____)	rrvr��ranger��overlayrwr��	overwrite)r�srcwin�dstwin�is    r�test_overlayzTestCurses.test_overlays&�����q�"�a��+���F�����q�"�a��+���q��A��M�M�!�Q��'��	���v��������a��+�-A�B�������a��+�-A�B�������a��+�-A�B�������a��+�-A�B����� �������a��+�-A�B�������a��+�-A�B�������a��+�-A�B�������a��+�-A�B����v�q�!�Q��1�b�1�������a��+�-A�B�������a��+�-A�B�������a��+�-A�B������A�q�!�Q��3�������a��+�-A�B�������a��+�-A�B�������a��+�-A�Brc���tjdddd�}|j�|jdd�|j	�|j�tj�y)Nrdrirjrn)rrv�noutrefresh�redrawln�	redrawwinr��doupdater�s  r�test_refreshzTestCurses.test_refresh-sJ���m�m�A�r�1�a�(���������Q����
�
�����
����r�resizec��tjdddd�}|jdd�|j|j	�d�|jdd�|j|j	�d�y)Nrdrirjrq�)rqr)rdri)rrvrrwrzr�s  r�test_resizezTestCurses.test_resize5s^���m�m�A�r�1�a�(���
�
�1�b����������1��
�
�1�b����������1r�enclosec���tjdddd�}|j|jdd�d�|j|jdd�d�|j|jdd�d�|j|jdd	�d�|j|jd
d	�d�|j|jdd�d�y)NrdrirjTrnFrqrt�rlr)rrvr�rr�s  r�test_enclosezTestCurses.test_enclose=s����m�m�A�r�1�a�(���
�
�c�k�k�!�Q�'��.��
�
�c�k�k�!�Q�'��/��
�
�c�k�k�!�Q�'��/��
�
�c�k�k�!�R�(�$�/��
�
�c�k�k�!�R�(�%�0��
�
�c�k�k�!�R�(�%�0rc���tjdddd�}|jddd�tj�5}|j|�~|j
d�tj|�}|j|j�d�|j|j�d�|j|jdd�d	�ddd�y#1swYyxYw)
Nrdrsrnrjr�rrm)rdrss Lorem ipsum)rrvr�rMrN�putwin�seek�getwinrwrxrzr�)rr�fs   r�test_putwinzTestCurses.test_putwinGs����m�m�A�r�1�a�(���
�
�1�a��'�
�
#�
#�
%���J�J�q�M��
�F�F�1�I��-�-��"�C����S�\�\�^�V�4����S�\�\�^�W�5����S�Y�Y�q�!�_�o�>�&�
%�
%�s
�BC$�$C-c
�v	�tjdddd�}|jdddddd	d
d�|j|j	dd�d
�|j|j	dd�d�|j|j	dd�d�|jdddddddd�|jddddddd d!�|jt|jdddddgd d!�
|jt|jddddddd d!d"�|jt|jddddddd d!d"�|jddddddd �|jdddddd�|jddddd�|jdddd�|jddd�|jdd�|jd�|j�|jd#d$�|j|j	ddd%�d&�|j|j	dd�d'�|j|j	ddd%�d&�|jd(d)�|jdd�|jt|jddd�|jt|jd�|j�|jdd�|jdd�|j|j	ddd*�d+�|jdd�|jd,d�|jddtj�|jdddd�|jddddtj�|jdd�|jd-d.�|jd/d.�|jd0d.�|jd-d.tj�|jddd-d.�|jddd1dtj�|j|jdd�d2tjz�|j|jdd�d2tjz�|j|jd.d�d0�y)3Nrdrerj�|�!�-r��+�\r�/rs
+--------\rns
|        !rqs
#________/�|�!�-�_�+�\r��/r��Br��D�E�F�G�H�I�:�~rrs~~~~~~~~s
:        :�:�~rls ----- �-r�rk�ar��;�;)rrv�borderrwr�r��	TypeError�boxr��hliner��vline�
A_STANDOUTr�r�s  r�test_borders_and_linesz!TestCurses.test_borders_and_linesSs����m�m�A�r�1�a�(���
�
�3��S�#���c�3�	(�������1�a��.�9�������1�a��-�8�������1�a��-�8��
�
�4��t�T����d�	,��
�
�2�r�2�r��r�2�r�	#����)�S�Z�Z��b�"�b�"�b�"�b�	:����)�S�Z�Z��b�"�b�"�b�"�b�"�	>����)�S�Z�Z��b�"�b�"�b�"�b�"�	>��
�
�2�r�2�r�2�r�2�.��
�
�2�r�2�r�2�r�*��
�
�2�r�2�r�2�&��
�
�2�r�2�r�"��
�
�2�r�2���
�
�2�r���
�
�2���
�
������S��������1�a��+�[�9�������1�a��M�:�������1�a��+�[�9�����d������B�����)�S�W�W�b�"�b�9����)�S�W�W�b�1����	�����A���	�	�#�q��������1�a��+�Z�8��	�	�$����	�	�"�a���	�	�#�q�&�-�-�(��	�	�!�Q��Q���	�	�!�Q��Q��
�
�.�����A���	�	�#�q���	�	�$����	�	�"�a���	�	�#�q�&�+�+�,��	�	�!�Q��Q���	�	�!�Q��Q�� 1� 1�2�������!�Q���6�3D�3D�)D�E�������!�Q���6�3D�3D�)D�E�������!�Q���1rc�2�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jttjd�|jttjd	�|jttjd
�|jttjd�|jt
tjd�y)
Nr�r�r��
s^J�
rersAB��AB�)rwr�unctrlr�rDr�r^s r�test_unctrlzTestCurses.test_unctrl�s��������t�,�d�3�������s�+�T�2�������r�*�D�1�������u�-�u�5�������t�,�e�4�������r�*�E�2����)�V�]�]�C�8����)�V�]�]�E�:����)�V�]�]�B�7����)�V�]�]�D�9����-�����>rc�f�|js|jd�|jtj�d�tj
�|jtj�d�tj�|jtj�d�y)N�requires terminalFT)rCr(r�r�isendwinrUrr^s r�test_endwinzTestCurses.test_endwin�sh���{�{��M�M�-�.��
�
�f�o�o�'��/��
�
���
�
�f�o�o�'��.������
�
�f�o�o�'��/rc��|jtjd�t�|j	tjd�d�|j	tjd�d�|jtj
d�t�|j	tj
d�d�|j	tj
d�d�|jtjd�ttd�f�|jtjd��|jtjd��tjd�}|�m|j|t�tj|d�tj|d�}|j|t�tj|�tjd�y)	N�hc�colsrh�crr��cudrjsabc
)�assertIsInstancer�	tigetflag�intrw�tigetnum�tigetstr�bytes�type�assertIsNone�tparm�putp)rrZ�cud_2s   r�
test_terminfozTestCurses.test_terminfo�sW�����f�.�.�t�4�c�:�����)�)�&�1�2�6�����)�)�$�/��4����f�o�o�f�5�s�;��������.��3��������.��3����f�o�o�d�3�e�T�$�Z�5H�I����&�/�/�$�/�0����&�/�/�&�1�2��o�o�e�$���?��!�!�#�u�-��L�L��a� ��L�L��a�(�E��!�!�%��/��K�K������H�rc��tjd�tj�tj�|j	tj
�d�tjd�tjdd�y)NrnF�d�2)r�delay_output�flushinprr�rT�napms�newpadr^s r�test_misc_module_funcsz!TestCurses.test_misc_module_funcs�sS�����A�����������
�
�f�o�o�'��/����S���
�
�b�"�rc��|jtj�t�|jtj�t�|jtj
�t�|jtj�t�|jtj�t�|jtj�t�tj�}|j|t�|jt|�d�tj�}|j|t�|jt|�d�y�Nrn)r[r�termnamer`�longname�baudrater]�has_ic�bool�has_il�	termattrs�killcharrwr��	erasechar)rr�s  r�test_env_querieszTestCurses.test_env_queries�s������f�o�o�/��7����f�o�o�/��7����f�o�o�/��5����f�m�m�o�t�4����f�m�m�o�t�4����f�.�.�0�#�6��O�O������a��'�����Q���#���������a��'�����Q���#rc��|j}|jd�|jd�|jd�|jd�|jd�|jd�t	|d�r"|jd�|jd�|j
d�|j
d�|jd�|jd�|jdd�tj�tjd�tjd�tj�y)NTF�immedokrdre)r�clearok�idcok�idlokrr|�leaveokr��	setscrregr�nonl�nlr�s  r�test_output_optionszTestCurses.test_output_options�s����������t�����u�����T�����U�����U�����T���6�9�%��N�N�4� ��N�N�5�!����t�����u����������������B�����
��	�	�$���	�	�%���	�	�rc���|j}|jr�tj�tj�tjd�tjd�tj
d�tj
d�tj�tjd�tjd�tj�tj�tj�tjd�tjd�tjd�tjd�|jd�|jd�tjd�tjd�|jd�|jd�tj�tjd�tjd�tj�|j!d�|j!d�|j#d�|j#d�|j#d�y)NFT�rnrhrrd)rrCr�nocbreak�cbreak�	intrflush�raw�norawr�r��	halfdelay�keypad�meta�nodelay�	noqiflush�qiflush�	notimeout�timeoutr�s  r�test_input_optionszTestCurses.test_input_options�s�������;�;��O�O���M�M�O��M�M�%� ��M�M�$�����T�"����U�#��J�J�L��J�J�u���J�J�t���L�L�N��
�
�����
����E�����D�������������
�
�d���
�
�e�����D�����E�����t�����u���������t�����u�������������������r�����q�����q�r�	typeaheadc��tjtjj	��tjd�y)Nrh)rr�r7�	__stdin__r:r^s r�test_typeaheadzTestCurses.test_typeahead!s+��������-�-�/�0�����rc��|js|jd�tj�tj�y)NrS)rCr(r�
def_prog_mode�reset_prog_moder^s r�test_prog_modezTestCurses.test_prog_mode&s.���{�{��M�M�-�.�������� rc��tjd��tjd��tj�y	tj�y#tj$r|j	d�YywxYw)N�bel�flashz
beep() failed)rr_�beep�errorr(r^s r�	test_beepzTestCurses.test_beep,sV���O�O�E�"�.����w�'�3��K�K�M�
/����
���<�<�
/��
�
�o�.�
/���A�$A=�<A=c��tjd��tjd��tj�y	tj�y#tj$r|j	d�YywxYw)Nr�r�zflash() failed)rr_r�r�r(r^s r�
test_flashzTestCurses.test_flash6sW���O�O�E�"�.����w�'�3��L�L�N�
0�������<�<�
0��
�
�.�/�
0�r�c���dD]F\}}tj|��tj|��1	tj|��Hy#tj$rY�_wxYw)N))r�civis)rj�cvvis)rn�cnorm)rr_�curs_setr�)r�vis�caps   r�
test_curs_setzTestCurses.test_curs_set@sU��B�H�C�����s�#�/�����$���O�O�C�(�C���|�|����s�A
�
A#�"A#�get_escdelayc���tj�}|j|t�tjd�|jtj�d�tj|�y)N�)rr�r[r]�set_escdelayrw)r�escdelays  r�
test_escdelayzTestCurses.test_escdelayJsU���&�&�(�����h��,����B������,�,�.��3����H�%r�get_tabsizec���tj�}|j|t�tjd�|jtj�d�tj|�y)Nrq)rr�r[r]�set_tabsizerw)r�tabsizes  r�test_tabsizezTestCurses.test_tabsizeRsU���$�$�&�����g�s�+����1������+�+�-�q�1����7�#r�getsyxc��tj�\}}|j|t�|j|t�tjdd�|jtj�d�y)Nrqrd)rqrd)rr�r[r]�setsyxrw)r�y�xs   r�test_getsyxzTestCurses.test_getsyxZsU���}�}����1����a��%����a��%��
�
�a����������&�1rc�0�dtjdddddfS)Nrh��������rO�r�COLORSr^s r�
bad_colorszTestCurses.bad_colorsbs���F�M�M�:�u�j�%��O�Orc�*�tjdddfS)Nr�r�rOr�r^s r�bad_colors2zTestCurses.bad_colors2es���
�
�u�e�U�3�3rc��y)N)rhr�r�r�r�rOr"r^s r�	bad_pairszTestCurses.bad_pairshs��@rc��|jtj�t�|jtj�t�yr])r[rr'ru�can_change_colorr^s r�test_has_colorszTestCurses.test_has_colorsks4�����f�/�/�1�4�8����f�5�5�7��>rc�4�tj�s|jd�tj�trYtdtj��tj��tdtj��tj��yy)Nr&z	COLORS = )r2zCOLOR_PAIRS = )
rr'r(r)rr5r�r7r8�COLOR_PAIRSr^s r�test_start_colorzTestCurses.test_start_colorosd��� � �"��M�M�3�4�������I�f�m�m�_�-�C�J�J�?��N�6�#5�#5�"6�7�c�j�j�I�rc�X�|jtjtj�d�tjd�tjdz
}tj|�|j�D]'}|j
ttj|��)y)N�rrrrrn)rwr�
color_content�COLOR_BLACKr�r�r�r�)r�maxcolor�colors   r�test_color_contentzTestCurses.test_color_contentwsv������-�-�f�.@�.@�A�9�M����Q���=�=�1�$�����X�&��_�_�&�E����j�&�*>�*>��F�'rc	���tj�s|jd�tjd�}	tjdg|���|jtjdg|���tjdddd�|jtjd�d�tjdddd�|jtjd�d�tjdz
}tj|�}tj|g|���|jtj|g|���tj|ddd�|jtj|�d	�|j�D]*}|jttj|ddd��,d
D]z}|jttjd|dd�|jttjdd|d�|jttjddd|��|y#tj
$r|jd�Y��wxYw)Nzcannot change colorrz)cannot change color (init_color() failed)r���)r�r�r�rn��)rr�r�)rhi�)rr�r(r��
init_colorr�rGrwr�r�r�r�)r�oldr�r��comps     r�test_init_colorzTestCurses.test_init_color�s����&�&�(��M�M�/�0��"�"�1�%��	G����a�&�#�&�	�����)�)�1�3�s�3����!�Q��1�%�����-�-�a�0�)�<����!�T�4��.�����-�-�a�0�2D�E��=�=�1�$���"�"�8�,�����(�)�S�)������)�)�8�:�c�:����(�A�s�D�1�����-�-�h�7��H��_�_�&�E����j�&�*;�*;�U�A�q�!�L�'��D����j�&�*;�*;�Q��a��K����j�&�*;�*;�Q��4��K����j�&�*;�*;�Q��1�d�K���#�|�|�	G��M�M�E�F�	G�s�I�$I0�/I0c��tj}ttd�r�tj�r|dtjzdzz
}tj�rdtj
cxkrdkrnnt
|t�}	tj|dz
dd�|S|S#t$rtj}Y|SwxYw)N�ncurses_versionrjrn)rtrn)rtrjr)
rr�r�has_extended_color_supportr�r��min�	SHORT_MAX�	init_pairr�)r�
pair_limits  r�get_pair_limitzTestCurses.get_pair_limit�s����'�'�
��6�,�-��0�0�2��a��
�
�o��1�1�
��5�5�7���!7�!7�@�&�@� ��Y�7�
�
0�� � ��a���A�6���z����
0�#�/�/�
���
0�s�B-�-C
�	C
c��ttd�sC|jtjd�tjtj
f�tjd�|j
�dz
}|dkDrtj|�|j�D]'}|jttj|��)y)N�use_default_colorsrrn)
rrrw�pair_content�COLOR_WHITEr�r�r�r�r�)r�maxpair�pairs   r�test_pair_contentzTestCurses.test_pair_content�s����v�3�4����V�0�0��3�$�0�0�&�2D�2D�E�
G����A���%�%�'�!�+���Q�;�����(��N�N�$�D����j�&�*=�*=�t�D�%rc��tjd�}tjdg|���|jtjdg|���tjddd�|j	tjd�d�tj
dz
}tjd|d�|j	tjd�|df�tjdd|�|j	tjd�d|f�|j
�dz
}|dkDr<tj|dd�|j	tj|�d�|j�D])}|jttj|dd��+|j�D]P}|jttjd|d�|jttjdd|��Ry)Nrnrrf)rr�r�rGrwr�r�r�r�r�r�)rr�r�r�r�r�s      r�test_init_pairzTestCurses.test_init_pair�s����!�!�!�$������!�S�!������(�(�!�2�c�2�����A�q�!�����,�,�Q�/��8��=�=�1�$������H�a�(�����,�,�Q�/�(�A��?�����A�x�(�����,�,�Q�/�!�X��?��%�%�'�!�+���Q�;����W�a��+����V�0�0��9�6�B��N�N�$�D����j�&�*:�*:�D�!�Q�G�%��%�%�'�E����j�&�*:�*:�A�u�a�H����j�&�*:�*:�A�q�%�H�(rc��dD]s}tj|�}|jtj|�||�|jtj|tjz�|��u|jtjd�d�|jtjd�d�y)N)rrnr�r)r�
color_pairrw�pair_numberr�)rr��attrs   r�test_color_attrszTestCurses.test_color_attrs�s����D��$�$�T�*�D����V�/�/��5�t�T�B����V�/�/��v�}�}�0D�E�t�L��	
����*�*�1�-�q�1�����+�+�A�.��2rr�c�\�tjd�}	tj�|jtjd�d�|j
|tjtjfddg�y#tj$r|j	d�Y�wxYw)Nrz1cannot change color (use_default_colors() failed)rgrf)	rr�r�r�r(rwrr�r�)rr�s  r�test_use_default_colorsz"TestCurses.test_use_default_colors�s����!�!�!�$��	O��%�%�'�	
����,�,�Q�/��:��
�
�c�V�/�/��1C�1C�D�h�PV�W�X���|�|�	O��M�M�M�N�	O�s�B�$B+�*B+c���|jtjd�d�|jtjd�d�|jtjd�d�|jtjd�d�|jttjd	�|jtjd
�t�y)Nr�r�rps^M�s^?rs^@rh�)rwr�keynamer�r�r[r`r^s r�test_keynamezTestCurses.test_keyname�s����������+�T�2��������+�U�3��������,�e�4��������*�E�2����*�f�n�n�b�9����f�n�n�S�1�5�9r�has_keyc�.�tjd�y)Nrp)rr�r^s r�test_has_keyzTestCurses.test_has_key�s�����r�r�getmousec��tjtj�\}}|dk(r|jd�tjd�tj
ddddtj�tj�}y)Nrzmouse stuff not availablere)r�	mousemask�BUTTON1_PRESSEDr(�
mouseinterval�
ungetmouser�)r�	availmask�oldmask�ms    r�
test_getmousezTestCurses.test_getmouse�sg��%�/�/��0F�0F�G���G���>��M�M�5�6����R� ����!�Q��1�f�&<�&<�=��O�O��r�panelc��tjdd�}tjj|�}|j	tjj
d��5|j
�ddd�y#1swYyxYw)Nrez!userptr should fail since not set)�msg)rrvr	�	new_panelr�r��userptr)r�w�ps   r�test_userptr_without_setz#TestCurses.test_userptr_without_setse���M�M�"�b�!���L�L�"�"�1�%��
�
�
�v�|�|�1�1�#F��H�
�I�I�K�H�H�H�s�!A;�;Bc�\�tjdd�}tjj|�}t	�}tj|�}td�D]}|j|��|jd�|jtj|�|d�y)Nrerhzset_userptr leaked references)
rrvr	r�objectr7�getrefcountr�set_userptrrw)rrr�obj�nrefsrs      r�test_userptr_memory_leakz#TestCurses.test_userptr_memory_leak	s����M�M�"�b�!���L�L�"�"�1�%���h������$���s��A�
�M�M�#���	
�
�
�d���������-�u�8�	:rc����tjdd�}tjj|��G�fd�d�}�j	|���j	d�y)Nrec���eZdZ�fd�Zy)�+TestCurses.test_userptr_segfault.<locals>.Ac�(���jd�yr])r)rr	s �r�__del__z3TestCurses.test_userptr_segfault.<locals>.A.__del__s����!�!�$�'rN)�__name__�
__module__r�r)r	s�rr�rs���
(rr�)rrvr	rr)rrr�r	s   @r�test_userptr_segfaultz TestCurses.test_userptr_segfaultsQ����M�M�"�b�!�����&�&�q�)��	(�	(�	���!�#��
���$�rc��tjdd�}tjj|�}t	|t|��y)Nre)rrvr	rrra)rrr	s   r�test_disallow_instantiationz&TestCurses.test_disallow_instantiation s6��
�M�M�"�b�!�����&�&�q�)��$�T�4��;�7r�is_term_resizedc���tjtj}}|jtj||�d�|jtj|dz
|dz
�d�y)NFrnT)r�LINES�COLSr�r"�r�linesrXs   r�test_is_term_resizedzTestCurses.test_is_term_resized(sQ���l�l�F�K�K�t���
�
�f�,�,�U�D�9�5�A��
�
�f�,�,�U�1�W�d�1�f�=�t�Dr�resize_termc���tj�tjtj}}|dz
}|dz}tj||�|jtj|�|jtj|�tj||�|jtj|�|jtj|�yrp)r�update_lines_colsr$r%r)rw�rr'rX�	new_lines�new_colss     r�test_resize_termzTestCurses.test_resize_term.s���� � �"��l�l�F�K�K�t���A�I�	��!�8�����9�h�/�������y�1�������h�/����5�$�'�������u�-�������d�+r�
resizetermc���tj�tjtj}}|dz
}|dz}tj||�|jtj|�|jtj|�tj||�|jtj|�|jtj|�yrp)rr+r$r%r0rwr,s     r�test_resizetermzTestCurses.test_resizeterm<s���� � �"��l�l�F�K�K�t���A�I�	��!�8�����)�X�.�������y�1�������h�/����%��&�������u�-�������d�+rc�~�tjd�|j|jj	�d�tjd�|j|jj	�d�tjd�|j|jj	�d�y)Nr�r��Br��C)rr�rwr�getkeyr^s r�test_ungetchzTestCurses.test_ungetchJs}�����t��������+�+�-�s�3����s��������+�+�-�s�3����r��������+�+�-�s�3rc�b�tjd�|jj�y)Ni)rr�rr6r^s r�test_issue6243zTestCurses.test_issue6243Rs�����t�������r�	unget_wchr�)�c)rdrrz.unget_wch is broken in ncurses 5.7 and earlierc
���|j}|j}dD]�}	|j|�	t	j
|�|j�}|j||�t|�}t	j
|�|j�}|j||���y#t$rY��wxYw#t$r.}|jd|�d|j�d|���Yd}~��d}~wwxYw)N)r��ér�u􏿿z
unget_wch(z) failed with encoding z: )rr�r�r�rr:�	Exception�fail�get_wchrw�ord)rrr��ch�err�read�codes       r�test_unget_wchzTestCurses.test_unget_wchVs��������?�?��7�B�
��	�	�(�#�
8�� � ��$��>�>�#�D����T�2�&��r�7�D����T�"��>�>�#�D����T�2�&�!8��&�
��
���
8��	�	�����#�7�8�8��
8�s(�B-�B<�-	B9�8B9�<	C3�$C.�.C3c�&�|j}ddl}|j}|j|�|j	t
�5d|_ddd�||_|j	t
�5|`ddd�y#1swY�1xYw#1swYyxYw)Nrre)r�codecsr��lookupr�rD)rrrHr�s    r�
test_encodingzTestCurses.test_encodingnsq��������?�?���
�
�h��
�
�
�y�
)� �F�O�*�"���
�
�
�y�
)���*�
)�*�
)��*�
)�s�A;�/B�;B�Bz6Signature information for builtins requires docstringsc��|j}	tj|j�}|j	|�|jjjd�d}|jd|�y#t
$rY�FwxYw)NrLrz[y, x,])	r�inspect�	signaturer��assertFalser��__doc__�splitr)rrrM�human_readable_signatures    r�test_issue21088zTestCurses.test_issue21088ysy������	��)�)�&�,�,�7�I����Y�'�$*�<�<�#7�#7�#=�#=�d�#C�A�#F� ��
�
�i�!9�:���	��	�s�0A9�9	B�Bc���tjdddd�}tjj|d��}|j	�\}}|j|dz
|dz
�|j
d�y)NrdrirjT)�insert_moder�)rrv�textpad�Textboxrzr�_insert_printable_char)rrrEr'rXs     r�test_issue13051zTestCurses.test_issue13051�sb���m�m�A�r�1�a�(���n�n�$�$�S�d�$�;���l�l�n���t��
�
�5��7�D��F�#��"�"�3�'rN)Qrrr��classmethodr>rZrr_rbr�r�r�r�r�r�r�r�r�r�r�r�r�r#r�rrrrrr%rIrQrUrfrnrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r*r�r�r�r�r�r�r�r�r�rrrrrr!r(r/r2r7r9r
�skipIf�getattrrrFrJr	rRrXr"rrr/r/8s����'��'�.�`�(�#��$��
�)�$��%��23�h	1�.>�`$5�L 5�DF�>� 
0�;�,<�((>�T��!��)�H�*�H�<E�BC�:�!��*�2�+�2�!��+�1�,�1�
?�62�p?�0��0	�$� �<,�\�+�&��'��!�/�0���.�)�&�*�&��-�(�$�)�$��(�#�2�$�2�P�4�A�?�J��G��G��L��L�:�"�
E��
E��I��I�.�3��3��.�/��Y��0�Y�:��)�$��%���*�%��&���'�"��#���'�"�
:�#�
:��'�"� �#� ���'�"�8�#��8��+�,�E�-�E�
�-�(�,�)�,��,�'�,�(�,�4���+�&��X�_�_�W�V�%6��>��G�E�G�'�G�'�'�*	 ��X�_�_�)�M�O�;�O�;�8!��*�(�+�(rr/c�J�eZdZed�d��Zed�d��Zd�Zy)�	MiscTestsr+c�@�tj�tjtj}}dxt_t_tj�|j	tj|�|j	tj|�y)Nr)rr+r$r%rwr&s   r�test_update_lines_colsz MiscTests.test_update_lines_cols�sa��� � �"��l�l�F�K�K�t��%&�&���v�{�� � �"�������u�-�������d�+rr�c��tj}trtdtj��d��|j	|ddt
�|j
t|�d�|j	|dt�|j	|dt�|j	|dt�|j	|jt�|j	|jt�|j	|jt�|j
|d|j�|j
|d|j�|j
|d|j�|j|jd�|j|jd�|j|jd�y)Nzncurses_version = T)r3rkrrnrj)
rr�rr5r[�tuplerwr�r]�major�minor�patch�assertGreaterEqual)r�vs  r�test_ncurses_versionzMiscTests.test_ncurses_version�sM���"�"����&�v�'=�'=�&>�?�t�L����a��d�E�*�����Q���#����a��d�C�(����a��d�C�(����a��d�C�(����a�g�g�s�+����a�g�g�s�+����a�g�g�s�+�����1��q�w�w�'�����1��q�w�w�'�����1��q�w�w�'��������+��������+��������+rc�X�tj�}|j|t�yr])rr�r[ru)r�rs  r�test_has_extended_color_supportz)MiscTests.test_has_extended_color_support�s ���-�-�/�����a��&rN)rrr�rr_rgrjr"rrr]r]�s9���-�.�,�/�,��+�,�,�-�,�&'rr]c�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�	TestAsciic��tjjD],}|jt	tj|�|��.yr])r�ascii�controlnames�
assertTruer)rrs  r�test_controlnameszTestAscii.test_controlnames�s/���L�L�-�-�D��O�O�G�F�L�L�$�7��>�.rc�P�������fd�}td�D�]��t���t�g�}|tjj
|j��|tjj|j
��|tjj|j��|tjj|j��|tjj|j��|tjj|j��|tjj�dk�|tjj�dk\�|tjj�dk�|tjj�dkxs�dk(�|tjj�dv�|tjj d�cxkxrdknc�|tjj"d�cxkxrdknc�|tjj$�t&j(v�|tjj*�t&j,v����dd	dt.j0t.j0d
zfD�]���j3tjj����j3tjj
����j3tjj����j3tjj����j3tjj����j3tjj����j3tjj����j3tjj����j3tjj����j3tjj����j3tjj!����j3tjj#����j3tjj%����j3tjj+�������j3tjjd	��y)Nc����j�|��5�j|��|��j|��|�ddd�y#1swYyxYw)N)rBr�)r�rw)r��expectedr�rrs  ���r�checkz$TestAscii.test_ctypes.<locals>.check�sG���������.�� � ��a��(�3�� � ��a��(�3�/�.�.�s�1A�Ar��r�r�z 	�~r�rhrn)r�chrr`rrn�isalnum�isalpha�isdigit�islower�isspace�isupper�isascii�ismeta�isctrl�iscntrl�isblank�isgraph�isprint�ispunct�string�punctuation�isxdigit�	hexdigitsr7�
maxunicoderN)rru�br�rs`  @@r�test_ctypeszTestAscii.test_ctypes�s����	4�
�s��A��A��A��q�c�
�A��&�,�,�&�&��	�	��4��&�,�,�&�&��	�	��4��&�,�,�&�&��	�	��4��&�,�,�&�&��	�	��4��&�,�,�&�&��	�	��4��&�,�,�&�&��	�	��4��&�,�,�&�&��C��0��&�,�,�%�%�q�C�x�0��&�,�,�%�%�q�2�v�.��&�,�,�&�&��B��(:�!�s�(�;��&�,�,�&�&��U�
�3��&�,�,�&�&��Q�
�#�
�6��&�,�,�&�&��a��3��7��&�,�,�&�&��V�-?�-?�(?�@��&�,�,�'�'��f�.>�.>�)>�?�%�(�b�#�s�~�~�s�~�~�a�/?�@�A����V�\�\�1�1�!�4�5����V�\�\�1�1�!�4�5����V�\�\�1�1�!�4�5����V�\�\�1�1�!�4�5����V�\�\�1�1�!�4�5����V�\�\�1�1�!�4�5����V�\�\�1�1�!�4�5����V�\�\�0�0��3�4����V�\�\�1�1�!�4�5����V�\�\�1�1�!�4�5����V�\�\�1�1�!�4�5����V�\�\�1�1�!�4�5����V�\�\�1�1�!�4�5����V�\�\�2�2�1�5�6�A�"	
������,�,�R�0�1rc���tjj}|j|d�d�|j|d�d�|j|td��td��y)N�Ár�)rrnrwrA)rrns  r�
test_asciizTestAscii.test_ascii�sV�����"�"������v���,�����s��S�)�����s�6�{�+�S��X�6rc��tjj}|j|d�d�|j|d�d�|j|d�d�|j|t	d��t	d��y)N�JrL�@�)rrn�ctrlrwrA)rr�s  r�	test_ctrlzTestAscii.test_ctrl�si���|�|� � ������c��D�)�����d��T�*�����c��D�)�����c�#�h���T��3rc���tjj}|j|d�d�|j|d�d�|j|t	d��d�y)NrL�Šr�r��)rrn�altrwrA)rr�s  r�test_altzTestAscii.test_altsQ���l�l��������T��F�+�����S��6�*�����S��X���-rc���tjj}|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d	�d
�|j|t	d��d�|j|t	d��d�|j|d�d�|j|d
�d�|j|t	d��d�|j|t	d
��d�y)Nr�r�rA� �z^?rLz^Jr�z^@r�z!^Jr�z!A)rrnrPrwrA)rrPs  rrQzTestAscii.test_unctrls)�����$�$��������c�*�������c�*�������c�*�������c�*��������.�������t�,�������t�,������C��)�3�/������D�	�*�D�1��������/��������.������F��,�e�4������F��,�d�3rN)	rrr�rqr�r�r�r�rQr"rrrlrl�s!��?�+2�Z7�4�.�4rrlc��gd�}|j�\}}t|d|�D]$\}}|j|d|d|||dz
k(z
��&y)N)	r�zdolor sit amet,�consecteturzadipiscing elit,zsed do eiusmodztempor incididuntzut labore etzdolore magnazaliqua.rrn)rz�	enumerater�)r�text�maxy�maxxr��lines      rr�r�sX��
�D�����J�D�$��T�%�4�[�)���4��
�
�1�a��5�t�q�D�1�H�}�5�6�7�*rc�B�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zy
)�TextboxTestc�
�ttj��|_d|jj_d|jj_tjj|j�|_	y)N)�spec)rnrn)rer)
rr�window�mock_winr��return_valuerzrUrV�textboxr^s rrZzTextboxTest.setUp/sP��!�v�}�}�5��
�+1��
�
���(�.6��
�
���+��~�~�-�-�d�m�m�<��rc��	|jj�tjj	|j�}|jj
j
�|jjj
d�|j|jd�|j|jd�|j|j�|jj�y)NrnF)
r��
reset_mockrrUrVrz�assert_called_once_withr�rwrT�stripspacesrb�lastcmd)r�tbs  r�	test_initzTextboxTest.test_init5s���*��
�
� � �"�
�^�^�
#�
#�D�M�M�
2���
�
���6�6�8��
�
���4�4�Q�7��������/��������+����"�*�*�%��
�
� � �"rc�Z�	|jj�|jjt	d��|jj
j
t	d��|jjt	d��|jj
j
t	d��|jjt	d��|jj
j
t	d��|jj�y)Nr�r�r�)r�r�r��
do_commandrAr��assert_called_withr^s r�test_insertzTextboxTest.test_insert@s���3��
�
� � �"�������C��)��
�
���.�.�s�3�x�8�������C��)��
�
���.�.�s�3�x�8�������C��)��
�
���.�.�s�3�x�8��
�
� � �"rc��	|jj�|jjtj
j�|jjtj�|jjtj
j�|jj�yr])	r�r�r�r�rrn�BS�
KEY_BACKSPACE�DELr^s r�test_deletezTextboxTest.test_deleteKss��(��
�
� � �"�����������0������� 4� 4�5��������� 0� 0�1��
�
� � �"rc��	|jj�|jjtj
�|jjjdd�|jj�y)Nrnr)r�r�r�r�r�KEY_LEFTr�r�r^s r�test_move_leftzTextboxTest.test_move_leftT�U��*��
�
� � �"���������0��
�
���-�-�a��3��
�
� � �"rc��	|jj�|jjtj
�|jjjdd�|jj�y)Nrnrj)r�r�r�r�r�	KEY_RIGHTr�r�r^s r�test_move_rightzTextboxTest.test_move_right[sW��+��
�
� � �"������� 0� 0�1��
�
���-�-�a��3��
�
� � �"rc��	|jj�|jjtj
�|jjjdd�|jjtj�|jjjdd�|jj�y)Nrnrrj)	r�r�r�r�rr�r�r�r�r^s r�test_move_left_and_rightz$TextboxTest.test_move_left_and_rightbs���9��
�
� � �"���������0��
�
���-�-�a��3������� 0� 0�1��
�
���-�-�a��3��
�
� � �"rc��	|jj�|jjtj
�|jjjdd�|jj�y)Nrrn)r�r�r�r�r�KEY_UPr�r�r^s r�test_move_upzTextboxTest.test_move_upksU��(��
�
� � �"�������
�
�.��
�
���-�-�a��3��
�
� � �"rc��	|jj�|jjtj
�|jjjdd�|jj�y)Nrjrn)r�r�r�r�r�KEY_DOWNr�r�r^s r�test_move_downzTextboxTest.test_move_downrr�rN)rrr�rZr�r�r�r�r�r�r�r�r"rrr�r�.s/��=�	#�	#�#�#�#�#�#�#rr��__main__)&rrLrEr�r7rMr
�
unittest.mockr�test.supportrrrrrr	�test.support.import_helperr
r�curses.panel�ImportErrorrr#r*�environ�getr6r�rZr��TestCaser/r]rlr�r�r�mainr"rr�<module>r�s]����	�
�
���#�N�N�4�
	���
�x�	 ��
�n��
���	��<���
�z�z�~�~�f����	�����T��.�T�Y�.�=��D�F���������)�4�6�b(��"�"�b(�6�F�b(�J#!'��!�!�!'�HU4��!�!�U4�p8�"I#�(�#�#�I#�X�z���H�M�M�O���C+�	��	�s�D7�7D?�>D?

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