Sindbad~EG File Manager
�
'Μg.����ddlZddlZddlZddlZddlZddlZddlZddlmZddl m
Z
mZmZm
Z
mZmZddlmZe
d�ed�Zed�ed� ddlZd�Zd �Zd
�Zej0j3d�ZdZej8exsed
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�curseszcurses.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
�Zd�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 ssissi dolor sametsamet 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 dd�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 ddd%�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�|jtjd�ttd�f�|jtjd��|jtjd��tjd�}|�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�tjd�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�tjd�tjd�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|���|jtjdg|���tjdddd�|jtjd�d�tjdddd�|jtjd�d�tjdz
}tj|�}tj|g|���|jtj|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 rr)rrr�r s @r�test_userptr_segfaultz TestCurses.test_userptr_segfaultsQ����M�M�"�b�!�����&�&�q�)�� (� (� ���!�#��
���$�rc��tjdd�}tjj|�}t |t|��y)Nre)rrvr rrra)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�uz
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 |�|jjjd�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 incididuntzut labore etzdolore 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
�|jjjdd�|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
�|jjjdd�|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
�|jjjdd�|jjtj�|jjjdd�|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
�|jjjdd�|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
�|jjjdd�|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