<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    YI~dÝ)  ã               @   s¬   d dl Z d dlmZmZ d dlmZ d dl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 G dd„ dƒZG d	d
„ d
e jƒZedkr¨e jdd dS )é    N)ÚMockÚpatch)Úrequires)ÚTkÚText)ÚFunc)ÚEventc               @   s   e Zd Zdd„ ZdS )ÚDummyEditwinc             C   s"   || _ || _d| _d| _d| _d S )Né   z>>>)ÚrootÚtextZindentwidthZtabwidthZprompt_last_line)Úselfr   r   © r   úH/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_autocomplete.pyÚ__init__   s
    zDummyEditwin.__init__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r	      s   r	   c               @   s¢   e Zd Zedd„ ƒZedd„ ƒZdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZG dd„ dƒZdd„ Zdd „ Zd!d"„ Zd#S )$ÚAutoCompleteTestc             C   s:   t dƒ tƒ | _| j ¡  t| jƒ| _t| j| jƒ| _d S )NZgui)r   r   r   Zwithdrawr   r   r	   Úeditor)Úclsr   r   r   Ú
setUpClass   s
    
zAutoCompleteTest.setUpClassc             C   s$   | ` | `| j ¡  | j ¡  | `d S )N)r   r   r   Zupdate_idletasksZdestroy)r   r   r   r   ÚtearDownClass#   s    

zAutoCompleteTest.tearDownClassc             C   s    | j  dd¡ t | j¡| _d S )Nz1.0Úend)r   ÚdeleteÚacÚAutoCompleter   Úautocomplete)r   r   r   r   ÚsetUp*   s    zAutoCompleteTest.setUpc             C   s(   |   | jj| j¡ |   | jj| j¡ d S )N)ÚassertEqualr   Zeditwinr   r   )r   r   r   r   Ú	test_init.   s    zAutoCompleteTest.test_initc             C   s   | j  ¡ }|  |tj¡ d S )N)r   Ú_make_autocomplete_windowÚassertIsInstanceÚacwZAutoCompleteWindow)r   Ztestwinr   r   r   Útest_make_autocomplete_window2   s    
z.AutoCompleteTest.test_make_autocomplete_windowc             C   s4   | j }tƒ  |_}| ¡  |j ¡  |  |j¡ d S )N)r   r   ÚautocompletewindowZ_remove_autocomplete_windowÚhide_windowÚassert_called_onceÚassertIsNone)r   ÚacpÚmr   r   r   Útest_remove_autocomplete_window6   s
    
z0AutoCompleteTest.test_remove_autocomplete_windowc             C   s<   | j }tƒ }||_|  | d¡d¡ |  |jd tj¡ d S )NZeventÚbreakr   )r   r   Úopen_completionsr   Zforce_open_completions_eventÚargsr   ZFORCE)r   r)   Úopen_cr   r   r   Ú!test_force_open_completions_event=   s
    z2AutoCompleteTest.test_force_open_completions_eventc             C   sú   | j }| j}tdd}|  | |¡¡ |`| j dd¡ |  | |¡¡ | j dd¡ | j dd¡ t	ƒ  |_
}t	dd|_|| |¡dƒ |j ¡  d |_
td	d
}||_|| |¡d ƒ ||jd tjƒ d|_|| |¡dƒ ||jd tjƒ d S )NT)Úmc_statez1.0z        """Docstring.
    r   zre.)Zreturn_valuer,   F)Úresultr   )r   r   r   r(   Zautocomplete_eventr1   r   Úinsertr   r   r%   Z	is_activeZcompleter'   r   r-   r.   r   ÚTABr2   )r   ÚEqualr)   ZevÚmockr/   r   r   r   Útest_autocomplete_eventE   s*    


z(AutoCompleteTest.test_autocomplete_eventc             C   s  | j }| j}| j}|j}tdd}||j_|ƒ  ||jdƒ | dd¡ |ƒ  ||jdƒ | dd¡ d |_|ƒ  ||j	| 
d¡ƒ ||j|j|jtjfƒ |j}||dƒ | dd¡ d	|_tƒ }||j_|ƒ  ||j	| 
d¡ƒ ||j|fƒ ||j|j|jtjfƒ ||jd	ƒ d S )
NZafter1)r2   r   z1.0Úrer3   z re.z "./Lib/Zafter2)r   r   r   Ztry_open_completions_eventr   ÚafterÚcalledr3   Ú_delayed_completion_idÚ_delayed_completion_indexÚindexr.   Z	popupwaitÚ_delayed_open_completionsr   ZTRY_Ar2   Úafter_cancelZTRY_F)r   r5   r   r)   Ztrycompletionsr9   Zcb1Zcancelr   r   r   Útest_try_open_completions_eventd   s:    

z0AutoCompleteTest.test_try_open_completions_eventc             C   sž   | j }| j}tƒ }||_| j dd¡ d|_| j d¡|_| 	d¡ |  
|j¡ ||jdƒ | j d¡|_| 	dd	d
tjf¡ |   |jd dd	d
tjf¡ d S )Nz1.0z"dict.r9   z	insert+1cZdummyr   r3   é   é   é   )r   r   r   r-   r   r3   r;   r=   r<   r>   r(   r:   r   ÚFILESr.   )r   r5   r)   r/   r   r   r   Útest_delayed_open_completions‰   s    
z.AutoCompleteTest.test_delayed_open_completionsc             C   sP   | j }| j}d|_tdd}||j_| j dd¡ || tj	¡ƒ ||jƒ d S )Nr9   )r2   g      ð?z	# comment)
r(   r   r;   r   r   r?   r3   r-   r   r4   )r   Únoner)   r9   r   r   r   Útest_oc_cancel_comment   s    
z'AutoCompleteTest.test_oc_cancel_commentc             C   sl   | j }tg g fd}||_| j dd¡ |  | tj¡¡ | j dd¡ |  | tj¡¡ |  	|j
d¡ d S )N)r2   z1.0Úobjectr3   Ú.rB   )r   r   Úfetch_completionsr   r3   r(   r-   r   r4   r   r:   )r   r)   Úfetchr   r   r   Útest_oc_no_list©   s    z AutoCompleteTest.test_oc_no_listc             C   sš   | j }| j}| j dd¡ || tj¡ƒ | j dd¡ || tj¡ƒ | j dd¡ |  | tj¡¡ | j dd¡ |  | tj¡¡ | j dd¡ d S )Ng      ð?rI   r3   z int().r   z1.0ú")	r(   r   r   r3   r-   r   r4   r   ZassertFalse)r   rF   r)   r   r   r   Útest_open_completions_none´   s    z+AutoCompleteTest.test_open_completions_nonec               @   s"   e Zd Zeƒ ZeddZeƒ ZdS )zAutoCompleteTest.dummy_acwF)r2   N)r   r   r   r   r   Zshow_windowr&   r   r   r   r   Ú	dummy_acwÆ   s   
rO   c                sœ   ˆ j }tdgddgfd}||_‡ fdd„}||_ˆ j dd¡ | tj¡ ˆ  	|j
ˆ j¡ ˆ j dd¡ ˆ j dd	¡ ˆ  | tj¡¡ ˆ j dd¡ d S )
NZtemZ_tem)r2   c                  s   ˆ   ¡ S )N)rO   r   )r   r   r   Úmake_acwÐ   ó    z8AutoCompleteTest.test_open_completions.<locals>.make_acwz1.0zint.r   z"t)r   r   rJ   r!   r   r3   r-   r   r4   r"   r%   rO   r   Ú
assertTrue)r   r)   rK   rP   r   )r   r   Útest_open_completionsË   s    z&AutoCompleteTest.test_open_completionsc          	   C   sþ  | j }| dtj¡\}}ttdƒr:tjtjkr:|  d|¡ | dtj¡\}}|  t	|ƒt	|ƒ¡ |  
ttdd„ |ƒƒ¡ |  
ttdd„ |ƒƒ¡ t ddd	d
gi¡@ | dtj¡\}}|  |d	d
g¡ |  d|¡ |  d|¡ W d Q R X tƒ }tƒ |_t dd|i¡b | dtj¡\}}|  d|¡ |  d|¡ |  |dd„ tt|ƒƒD ƒ¡ |  |tt|ƒƒ¡ W d Q R X dd„ }t td|¡n | dtj¡\}}|  |ddg¡ |  |dddg¡ | dtj¡\}}|  |ddg¡ |  |dddg¡ W d Q R X d S )NÚ Ú__file__r   c             S   s
   |   d¡S )NÚ_)Ú
startswith)Úxr   r   r   Ú<lambda>ì   rQ   z9AutoCompleteTest.test_fetch_completions.<locals>.<lambda>c             S   s
   |   d¡S )NrV   )rW   )rX   r   r   r   rY   í   rQ   z__main__.__dict__Ú__all__ÚaÚbr   ÚsumÚfooÚ_privatec             S   s    g | ]}|d d… dkr|‘qS )NrA   rV   r   )Ú.0Úir   r   r   ú
<listcomp>ý   s    z;AutoCompleteTest.test_fetch_completions.<locals>.<listcomp>c             S   s   | dkrdddgS dddgS )NrI   r^   Úbarz.hiddenÚmontyÚpythonr   )Úpathr   r   r   Ú_listdir  s    
z9AutoCompleteTest.test_fetch_completions.<locals>._listdirÚlistdirrc   z.hiddenú~rd   re   )r   rJ   r   ZATTRSÚhasattrÚ__main__rU   ZassertNotInZ
assertLessÚlenrR   ÚallÚfilterÚanyr   Údictr   ZassertInr   r_   ÚsortedÚdirrH   ÚosrD   )r   r)   ZsmallZlargeÚsr\   r6   rg   r   r   r   Útest_fetch_completionsÝ   s<    z'AutoCompleteTest.test_fetch_completionsc          
   C   sÀ   | j }| j}|| d¡tƒ tƒ }t dd|i¡ || d¡|ƒ W d Q R X dddœ}t dd|i¡ || d¡|ƒ W d Q R X t di ¡& |  t¡ | d	¡ W d Q R X W d Q R X d S )
NÚintzsys.modulesZtempfileé
   é   )r^   rc   z__main__.__dict__ÚdZ	not_exist)	r   r   Z
get_entityrv   r   r   rp   ZassertRaisesÚ	NameError)r   r)   r5   r6   Zdir   r   r   Útest_get_entity  s    
z AutoCompleteTest.test_get_entityN)r   r   r   Úclassmethodr   r   r   r    r$   r+   r0   r7   r@   rE   rG   rL   rN   rO   rS   ru   r{   r   r   r   r   r      s"   %3r   rk   rB   )Ú	verbosity)ZunittestZunittest.mockr   r   Ztest.supportr   Ztkinterr   r   rs   rk   Zidlelib.autocompleter   r   Zidlelib.autocomplete_wZautocomplete_wr#   Zidlelib.idle_test.mock_idler   Zidlelib.idle_test.mock_tkr   r	   ZTestCaser   r   Úmainr   r   r   r   Ú<module>   s   	  