B � f�)�@s�dZddlZddlmZmZddlmZddlmZm Z ddl Z ddl Z ddl m ZddlmZddlmZddlmZGdd �d �ZGd d �d ej�Zed kr�ejd d�dS)z Test autocomplete, coverage 93%.�N)�Mock�patch)�requires)�Tk�Text)�Func)�Eventc@seZdZdd�ZdS)� DummyEditwincCs"||_||_d|_d|_d|_dS)N�z>>>)�root�textZ indentwidthZtabwidthZprompt_last_line)�selfr r �r�H/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_autocomplete.py�__init__s zDummyEditwin.__init__N)�__name__� __module__� __qualname__rrrrrr sr c@s�eZdZedd��Zedd��Zdd�Zdd�Zd d �Zd d �Z d d�Z dd�Z dd�Z dd�Z dd�Zdd�Zdd�ZGdd�d�Zdd�Zdd �Zd!d"�Zd#S)$�AutoCompleteTestcCs:td�t�|_|j��t|j�|_t|j|j�|_dS)NZgui)rrr Zwithdrawrr r �editor)�clsrrr� setUpClasss   zAutoCompleteTest.setUpClasscCs$|`|`|j��|j��|`dS)N)rr r Zupdate_idletasksZdestroy)rrrr� tearDownClass#s  zAutoCompleteTest.tearDownClasscCs |j�dd�t�|j�|_dS)Nz1.0�end)r �delete�ac� AutoCompleter� autocomplete)r rrr�setUp*szAutoCompleteTest.setUpcCs(|�|jj|j�|�|jj|j�dS)N)� assertEqualrZeditwinrr )r rrr� test_init.szAutoCompleteTest.test_initcCs|j��}|�|tj�dS)N)r�_make_autocomplete_window�assertIsInstance�acwZAutoCompleteWindow)r Ztestwinrrr�test_make_autocomplete_window2s z.AutoCompleteTest.test_make_autocomplete_windowcCs4|j}t�|_}|��|j��|�|j�dS)N)rr�autocompletewindowZ_remove_autocomplete_window� hide_window�assert_called_once� assertIsNone)r �acp�mrrr�test_remove_autocomplete_window6s   z0AutoCompleteTest.test_remove_autocomplete_windowcCs<|j}t�}||_|�|�d�d�|�|jdtj�dS)NZevent�breakr)rr�open_completionsrZforce_open_completions_event�argsrZFORCE)r r)�open_crrr�!test_force_open_completions_event=s z2AutoCompleteTest.test_force_open_completions_eventcCs�|j}|j}tdd�}|�|�|��|`|j�dd�|�|�|��|j�dd�|j�dd�t �|_ }t dd�|_ ||�|�d�|j � �d|_ td d �}||_||�|�d�||jd tj�d|_||�|�d�||jd tj�dS) NT)�mc_statez1.0z """Docstring. rzre.)Z return_valuer,F)�resultr)rrrr(Zautocomplete_eventr1r �insertrrr%Z is_activeZcompleter'rr-r.r�TABr2)r �Equalr)Zev�mockr/rrr�test_autocomplete_eventEs*     z(AutoCompleteTest.test_autocomplete_eventcCs|j}|j}|j}|j}tdd�}||j_|�||jd�|�dd�|�||jd�|�dd�d|_|�||j |� d��||j |j |j tjf�|j}||d�|�dd�d |_t�}||j_|�||j |� d��||j |f�||j |j |j tjf�||jd �dS) NZafter1)r2rz1.0�rer3z re.z "./Lib/Zafter2)rr rZtry_open_completions_eventr�after�calledr3�_delayed_completion_id�_delayed_completion_index�indexr.Z popupwait�_delayed_open_completionsrZTRY_Ar2� after_cancelZTRY_F)r r5r r)Ztrycompletionsr9Zcb1Zcancelrrr�test_try_open_completions_eventds:       z0AutoCompleteTest.test_try_open_completions_eventcCs�|j}|j}t�}||_|j�dd�d|_|j�d�|_|� d�|� |j�||j d�|j�d�|_|� dd d t j f�|�|jddd d t j f�dS) Nz1.0z"dict.r9z insert+1cZdummyrr3���)rrrr-r r3r;r=r<r>r(r:r�FILESr.)r r5r)r/rrr�test_delayed_open_completions�s   z.AutoCompleteTest.test_delayed_open_completionscCsP|j}|j}d|_tdd�}||j_|j�dd�||�tj ��||j�dS)Nr9)r2g�?z # comment) r(rr;rr r?r3r-rr4)r �noner)r9rrr�test_oc_cancel_comment�s z'AutoCompleteTest.test_oc_cancel_commentcCsl|j}tggfd�}||_|j�dd�|�|�tj��|j�dd�|�|�tj��|� |j d�dS)N)r2z1.0�objectr3�.rB) rr�fetch_completionsr r3r(r-rr4rr:)r r)�fetchrrr�test_oc_no_list�sz AutoCompleteTest.test_oc_no_listcCs�|j}|j}|j�dd�||�tj��|j�dd�||�tj��|j�dd�|�|�tj��|j�dd�|�|�tj��|j�dd�dS)Ng�?rIr3z int().rz1.0�") r(rr r3r-rr4rZ assertFalse)r rFr)rrr�test_open_completions_none�sz+AutoCompleteTest.test_open_completions_nonec@s"eZdZe�Zedd�Ze�ZdS)zAutoCompleteTest.dummy_acwF)r2N)rrrrrZ show_windowr&rrrr� dummy_acw�s rOcs��j}tdgddgfd�}||_�fdd�}||_�j�dd�|�tj��� |j �j ��j� dd��j�dd ��� |�tj���j� dd�dS) NZtemZ_tem)r2cs���S)N)rOr)r rr�make_acw��z8AutoCompleteTest.test_open_completions..make_acwz1.0zint.rz"t)rrrJr!r r3r-rr4r"r%rOr� assertTrue)r r)rKrPr)r r�test_open_completions�s  z&AutoCompleteTest.test_open_completionsc Cs�|j}|�dtj�\}}ttd�r:tjtjkr:|�d|�|�dtj�\}}|�t |�t |��|� t t dd�|���|� t t dd�|���t�ddd d gi��@|�dtj�\}}|�|d d g�|�d |�|�d |�WdQRXt�}t�|_t�dd |i��b|�d tj�\}}|�d|�|�d|�|�|dd�tt|��D��|�|tt|���WdQRXdd�}t�td|��n|�dtj�\}}|�|dd g�|�|ddd g�|�dtj�\}}|�|ddg�|�|dddg�WdQRXdS)N��__file__rcSs |�d�S)N�_)� startswith)�xrrr��rQz9AutoCompleteTest.test_fetch_completions..cSs |�d�S)NrV)rW)rXrrrrY�rQz__main__.__dict__�__all__�a�br�sum�foo�_privatecSs g|]}|dd�dkr|�qS)NrArVr)�.0�irrr� �sz;AutoCompleteTest.test_fetch_completions..cSs|dkrdddgSdddgS)NrIr^�barz.hidden�monty�pythonr)�pathrrr�_listdirs z9AutoCompleteTest.test_fetch_completions.._listdir�listdirrcz.hidden�~rdre)rrJrZATTRS�hasattr�__main__rUZ assertNotInZ assertLess�lenrR�all�filter�anyr�dictrZassertInrr_�sorted�dirrH�osrD)r r)ZsmallZlarge�sr\r6rgrrr�test_fetch_completions�s<    z'AutoCompleteTest.test_fetch_completionsc Cs�|j}|j}||�d�t�t�}t�dd|i��||�d�|�WdQRXddd�}t�dd|i��||�d�|�WdQRXt�di��&|�t��|�d �WdQRXWdQRXdS) N�intz sys.modulesZtempfile� �)r^rcz__main__.__dict__�dZ not_exist) rrZ get_entityrvrrrpZ assertRaises� NameError)r r)r5r6Zdirrr�test_get_entitys  z AutoCompleteTest.test_get_entityN)rrr� classmethodrrrr r$r+r0r7r@rErGrLrNrOrSrur{rrrrrs"  %  3rrkrB)� verbosity)�__doc__ZunittestZ unittest.mockrrZ test.supportrZtkinterrrrsrkZidlelib.autocompleterrZidlelib.autocomplete_wZautocomplete_wr#Zidlelib.idle_test.mock_idlerZidlelib.idle_test.mock_tkrr ZTestCaserr�mainrrrr�s