o
    ¹e²6  ã                   @   sh  d dl mZmZmZ d dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlT d dlT ej d d¡ de_d	ge_G d
d„ deƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZedkr²eƒ  eej ¡ ƒZ e!dd„ e"eƒ j# $¡ ƒD ƒƒZ%e"e% ¡ ƒZ%edd„ e%D ƒƒZ&e'd (dd¡ƒ e'd )e&¡ƒ dS dS )é    )Úabsolute_importÚprint_functionÚunicode_literalsN)Úkeysyms)Úlineobj)Úlog)Ú*z../..TÚdebugc                   @   sh   e Zd Zi Zdd„ Zdd„ ZeeƒZdd„ Zdd„ Z	ee	ƒZ
d	d
„ ZeeƒZdd„ Zdd„ Zdd„ ZdS )ÚEmacsModeTestc                 C   sJ   t  | tƒ ¡ tƒ | _|  d ¡ g | _| j| _d| _	d| _
d| _d| _d S )Nú é   F)Ú	EmacsModeÚ__init__ZMockReadlineZMockConsoleÚmock_consoleZinit_editing_modeÚlst_completionsÚmock_completerÚ	completerZcompleter_delimsZtabstopZmark_directoriesZshow_all_if_ambiguous©Úself© r   úKD:\Projects\ConvertPro\env\Lib\site-packages\pyreadline3/test/test_emacs.pyr       s   

zEmacsModeTest.__init__c                 C   s   | j S ©N)r   r   r   r   r   Úget_mock_console+   s   zEmacsModeTest.get_mock_consolec                 C   s   | j  |¡ d S r   )Úl_bufferZset_line)r   Útextr   r   r   Ú	_set_line/   s   zEmacsModeTest._set_linec                 C   s
   | j  ¡ S r   )r   Zget_line_textr   r   r   r   Úget_line2   ó   
zEmacsModeTest.get_linec                 C   s   | j jS r   )r   Úpointr   r   r   r   Úget_line_cursor6   s   zEmacsModeTest.get_line_cursorc                 C   s˜   |dd… dkr|dd … dkrdd„ |dd… D ƒ}n|g}|D ](}t |ƒ\}}| j | ¡ | j¡}|| j|j< td||jf ƒ ||ƒ || _q!d S )Nr   é   ú"éÿÿÿÿc                 S   s   g | ]}d | ‘qS )z"%s"r   )Ú.0Úcr   r   r   Ú
<listcomp><   s    z'EmacsModeTest.input.<locals>.<listcomp>zkeydisp: %s %s)	Úkeytext_to_keyinfo_and_eventÚkey_dispatchÚgetÚtupleZself_insertÚtested_commandsÚ__name__r   Zprevious_func)r   ZkeytextZlst_keyÚkeyÚkeyinfoÚeventZdispatch_funcr   r   r   Úinput:   s    
ÿùzEmacsModeTest.inputc                 C   s   t  | |¡r| j ¡  d S d S r   )r   Úaccept_liner   Z
reset_line)r   Úer   r   r   r0   H   s   ýzEmacsModeTest.accept_linec                 C   s
   | j | S r   )r   )r   r   Ústater   r   r   r   N   r   zEmacsModeTest.mock_completerN)r+   Ú
__module__Ú__qualname__r*   r   r   ÚpropertyÚconsoler   r   Úliner   Úline_cursorr/   r0   r   r   r   r   r   r
      s    r
   c                   @   ó   e Zd Zdd„ ZdS )ÚTestsKeyinfoc                 C   sl   t dƒ\}}|  d|j¡ t dƒ\}}|  d|j¡ t dƒ\}}|  d|j¡ t dƒ\}}|  d|j¡ d S )	Nz"d"Údz"D"ÚDz"$"ú$ÚEscapeú)r&   ÚassertEqualÚchar)r   r-   r.   r   r   r   Útest_keyinfoV   s   zTestsKeyinfo.test_keyinfoN)r+   r3   r4   rB   r   r   r   r   r:   T   s    r:   c                   @   r9   )ÚTestsMovementc                 C   s,  t ƒ }|  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d	¡ |  |jd¡ |  |jd
¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ d S )NÚ ú"First Second Third"úFirst Second Thirdé   ú	Control-ar   z	Control-eÚHomeÚRightr    zCtrl-fé   z
Ctrl-Righté   é   z	Ctrl-Lefté   é   ©r
   r@   r7   r/   r8   ©r   Úrr   r   r   Útest_cursorb   sX   













zTestsMovement.test_cursorN©r+   r3   r4   rS   r   r   r   r   rC   a   ó    rC   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestsDeletec                 C   s¼  t ƒ }|  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ | d¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd	¡ |  |jd¡ | d
¡ |  |jd¡ |  |jd¡ | d¡ | d¡ | d¡ |  |jd¡ |  |jd¡ | d
¡ |  |jd¡ |  |jd¡ | d
¡ |  |jd¡ |  |jd¡ | d
¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ d S )NrD   rE   rF   rG   ÚDeleteÚLeftzFirst Second Thidé   zFirst Second ThiÚ	BackspacezFirst Second Thé   rI   rJ   rK   zFrst Second Thr    zrst Second Thr   r>   rP   rQ   r   r   r   Útest_delete’   sH   













zTestsDelete.test_deletec                 C   sÐ  t ƒ }|  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ | d	¡ | d	¡ |  |jd
¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ | d¡ | d¡ | d¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ d S )NrD   rE   rF   rG   zControl-BackspacezFirst Second rN   rZ   rX   zFirst Secondé
   zFirst ndrO   r>   r   rI   rJ   zControl-DeletezFiSecond ThirdrK   ZFiThirdZFirP   rQ   r   r   r   Útest_delete_word¸   sL   















zTestsDelete.test_delete_wordN)r+   r3   r4   r\   r^   r   r   r   r   rV   ‘   s    &rV   c                   @   r9   )ÚTestsSelectionMovementc                 C   sf  t ƒ }|  |jd¡ | d¡ |  |jd¡ |  |jd¡ |  |jjd¡ | d¡ | d¡ |  |jd¡ |  |jd¡ |  |jjd	¡ | d
¡ |  |jd¡ |  |jd¡ |  |jjd	¡ | d¡ |  |jd¡ |  |jd¡ |  |jjd¡ | d¡ |  |jd¡ |  |jd¡ |  |jjd¡ | d¡ |  |jd¡ |  |jd¡ |  |jjd¡ d S )NrD   rE   rF   rG   r"   rI   zShift-Rightr    r   zShift-Control-RightrL   ú"a"za Second Thirdz	Shift-Endé   rW   Úa)r
   r@   r7   r/   r8   r   Zselection_markrQ   r   r   r   rS   â   s6   






z"TestsSelectionMovement.test_cursorNrT   r   r   r   r   r_   á   rU   r_   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚTestsHistoryc                 C   sê   t ƒ }| d¡ | d¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ | d¡ |  |jd¡ |  |jd¡ d S )	NZaaÚbbbrD   ÚUpé   rK   ÚDownr   )r
   Úadd_historyr@   r7   r/   r8   rQ   r   r   r   Útest_history_1  s&   






zTestsHistory.test_history_1c                 C   s´  t ƒ }| d¡ | d¡ | d¡ | d¡ | d¡ | d¡ |  |dd¡ | d	¡ | d
¡ |  |dd¡ | d
¡ |  |dd¡ | d
¡ |  |dd¡ | d
¡ |  |dd¡ | d
¡ |  |dd¡ | d¡ |  |dd¡ | d¡ |  |dd¡ | d¡ |  |dd¡ | d¡ |  |dd¡ | d¡ | d¡ | d¡ | d¡ |  |dd¡ | d¡ |  |dd¡ | d¡ |  |dd¡ | d
¡ |  |dd¡ d S )NÚaaaaÚaabaÚaacaÚakcard   ÚakorD   r   r`   re   r    rJ   rK   rg   rX   rf   ©r
   rh   Úassert_liner/   rQ   r   r   r   Útest_history_2  sL   






















zTestsHistory.test_history_2c                 C   s¦   t ƒ }| d¡ | d¡ | d¡ | d¡ | d¡ | d¡ |  |dd¡ | d¡ | d	¡ |  |dd
¡ | d¡ |  |dd¡ | d	¡ |  |dd
¡ d S )Nrj   rk   rl   rm   rd   rn   rD   r   re   rf   rg   ro   rQ   r   r   r   Útest_history_3>  s   









zTestsHistory.test_history_3c                 C   sv   t ƒ }| d¡ | d¡ | d¡ | d¡ | d¡ | d¡ |  |dd¡ | d	¡ | d
¡ |  |d	d¡ d S )Nrj   rk   rl   rm   rd   rn   rD   r   Úkre   r    ro   rQ   r   r   r   rr   O  s   







c                 C   sê   dd l }dt_tdƒ tƒ }| ¡ }dd„ }||_|j|_| 	d|j¡ | 
d¡ | 
d¡ | 
d	¡ | 
d	¡ | 
d	¡ | 
d
¡ |  |dd¡ | 
d¡ | 
d¡ | 
d¡ | 
d	¡ | 
d	¡ | 
d	¡ | 
d
¡ |  |dd¡ d S )Nr   Fz2--------------------------------------------------c                 S   s   |S r   r   )ÚvalÚwordr   r   r   Ú_nopd  s   z(TestsHistory.test_complete.<locals>._nopÚtabz"exi(ksdjksjd)"rH   rJ   ZTabzexit(ksdjksjd)r   r>   z"exi"Úexit)ÚrlcompleterÚloggerÚsock_silentr   r
   Z	CompleterZ_callable_postfixZcompleter   Z	_bind_keyr/   rp   )r   ry   rR   Zcompleterobjrv   r   r   r   Útest_complete\  s0   












zTestsHistory.test_completec                 C   s    |   |j|¡ |   |j|¡ d S r   )r@   r7   r8   )r   rR   r7   Úcursorr   r   r   rp   z  s   zTestsHistory.assert_lineN)r+   r3   r4   ri   rq   rr   r|   rp   r   r   r   r   rc      s    (rc   Ú__main__c                 C   s   g | ]}|j |f‘qS r   )r+   ©r#   Úxr   r   r   r%   ‹  s    ÿr%   c                 C   s   g | ]}|t vr|‘qS r   )Útestedr   r   r   r   r%   Ž  s    z Not tested functions é<   ú-Ú
)*Ú
__future__r   r   r   ÚsysZunittestZpyreadline3.loggerrz   Zpyreadline3r   Zpyreadline3.lineeditorr   r   Zpyreadline3.modes.emacsZpyreadline3.test.commonÚpathÚinsertr{   Z
show_eventr   r
   ZTestCaser:   rC   rV   r_   rc   r+   ZTesterÚsortedr*   Úkeysr   ÚdictÚlistr'   ÚvaluesZ	all_funcsZ
not_testedÚprintÚcenterÚjoinr   r   r   r   Ú<module>   s<   70P ÿô