Ë
    #´˜jU+  ã                   óì   — d Z 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	«      Z G d
„ dej.                  «      Zedk(  r ej4                  d¬«       yy)z Test autocomplete, coverage 93%.é    N)ÚMockÚpatch)Úrequires)ÚTkÚText)ÚFunc)ÚEventc                   ó   — e Zd Zd„ Zy)ÚDummyEditwinc                 óJ   — || _         || _        d| _        d| _        d| _        y )Né   z>>>)ÚrootÚtextÚindentwidthÚtabwidthÚprompt_last_line)Úselfr   r   s      ú5lib/python3.12/idlelib/idle_test/test_autocomplete.pyÚ__init__zDummyEditwin.__init__   s'   € ØˆŒ	ØˆŒ	ØˆÔØˆŒØ %ˆÕó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s   „ ó&r   r   c                   óš   — e Zd Zed„ «       Zed„ «       Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Z G d„ d«      Zd„ Zd„ Zd„ Zd„ Zy)ÚAutoCompleteTestc                 óê   — t        d«       t        «       | _        | j                  j                  «        t	        | j                  «      | _        t        | j                  | j
                  «      | _        y )NÚgui)r   r   r   Úwithdrawr   r   r   Úeditor©Úclss    r   Ú
setUpClasszAutoCompleteTest.setUpClass   sG   € ä�ŒÜ“4ˆŒØ�‰×ÑÔÜ˜Ÿ™“>ˆŒÜ! #§(¡(¨C¯H©HÓ5ˆ�
r   c                 óx   — | ` | `| j                  j                  «        | j                  j	                  «        | `y ©N)r    r   r   Úupdate_idletasksÚdestroyr!   s    r   ÚtearDownClasszAutoCompleteTest.tearDownClass#   s0   € àˆJ˜˜Ø�‰×!Ñ!Ô#Ø�‰×ÑÔØ‰Hr   c                 ó„   — | j                   j                  dd«       t        j                  | j                  «      | _        y )Nú1.0Úend)r   ÚdeleteÚacÚAutoCompleter    Úautocomplete©r   s    r   ÚsetUpzAutoCompleteTest.setUp*   s+   € Ø�	‰	×Ñ˜ Ô&ÜŸO™O¨D¯K©KÓ8ˆÕr   c                 óÄ   — | j                  | j                  j                  | j                  «       | j                  | j                  j                  | j                  «       y r%   )ÚassertEqualr/   Úeditwinr    r   r0   s    r   Ú	test_initzAutoCompleteTest.test_init.   sB   € Ø×Ñ˜×*Ñ*×2Ñ2°D·K±KÔ@Ø×Ñ˜×*Ñ*×/Ñ/°·±Õ;r   c                 óx   — | j                   j                  «       }| j                  |t        j                  «       y r%   )r/   Ú_make_autocomplete_windowÚassertIsInstanceÚacwÚAutoCompleteWindow)r   Útestwins     r   Útest_make_autocomplete_windowz.AutoCompleteTest.test_make_autocomplete_window2   s,   € Ø×#Ñ#×=Ñ=Ó?ˆØ×Ñ˜g¤s×'=Ñ'=Õ>r   c                 óÈ   — | j                   }t        «       x|_        }|j                  «        |j                  j                  «        | j                  |j                  «       y r%   )r/   r   ÚautocompletewindowÚ_remove_autocomplete_windowÚhide_windowÚassert_called_onceÚassertIsNone)r   ÚacpÚms      r   Útest_remove_autocomplete_windowz0AutoCompleteTest.test_remove_autocomplete_window6   sL   € Ø×ÑˆÜ%)£VÐ+ˆÔ Ø×'Ñ'Ô)Ø	�‰×(Ñ(Ô*Ø×Ñ˜#×0Ñ0Õ1r   c                 óÚ   — | j                   }t        «       }||_        | j                  |j	                  d«      d«       | j                  |j
                  d   t        j                  «       y )NÚeventÚbreakr   )r/   r   Úopen_completionsr3   Úforce_open_completions_eventÚargsr-   ÚFORCE)r   rC   Úopen_cs      r   Ú!test_force_open_completions_eventz2AutoCompleteTest.test_force_open_completions_event=   sS   € à×ÑˆÜ“ˆØ%ˆÔØ×Ñ˜×9Ñ9¸'ÓBÀGÔLØ×Ñ˜Ÿ™ Q™¬¯©Õ2r   c                 óR  — | j                   }| j                  }t        d¬«      }| j                  |j	                  |«      «       |`| j                  j                  dd«       | j                  |j	                  |«      «       | j                  j                  dd«       | j                  j                  dd«       t        «       x|_
        }t        d¬«      |_         ||j	                  |«      d«       |j                  j                  «        d |_
        t        d	¬
«      }||_         ||j	                  |«      d «        ||j                   d   t"        j$                  «       d|_         ||j	                  |«      d«        ||j                   d   t"        j$                  «       y )NT)Úmc_stater*   z        """Docstring.
    r+   zre.)Úreturn_valuerH   F©Úresultr   )r3   r/   r	   rB   Úautocomplete_eventrP   r   Úinsertr,   r   r>   Ú	is_activeÚcompleterA   r   rI   rK   r-   ÚTABrS   )r   ÚEqualrC   ÚevÚmockrM   s         r   Útest_autocomplete_eventz(AutoCompleteTest.test_autocomplete_eventE   sU  € Ø× Ñ ˆØ×Ñˆô ˜DÔ!ˆØ×Ñ˜#×0Ñ0°Ó4Ô5ØˆKð 	�	‰	×Ñ˜Ð =Ô>Ø×Ñ˜#×0Ñ0°Ó4Ô5Ø�	‰	×Ñ˜ Ô&ð 	�	‰	×Ñ˜ Ô&Ü(,«Ð.ˆÔ Ü¨4Ô0ˆŒÙˆc×$Ñ$ RÓ(¨'Ô2Ø�‰×(Ñ(Ô*Ø!%ˆÔô ˜UÔ#ˆØ%ˆÔÙˆc×$Ñ$ RÓ(¨$Ô/Ùˆf�k‰k˜!‰nœbŸf™fÔ%ØˆŒÙˆc×$Ñ$ RÓ(¨'Ô2Ùˆf�k‰k˜!‰nœbŸf™fÕ%r   c                 óÀ  — | j                   }| j                  }| j                  }|j                  }t	        d¬«      }||j                  _         |«         ||j                  d«       |j                  dd«        |«         ||j                  d«       |j                  dd«       d |_         |«         ||j                  |j                  d«      «        ||j                  |j                  |j                  t        j                  f«       |j                  } ||d«       |j                  dd«       d	|_        t	        «       }||j                  _         |«         ||j                  |j                  d«      «        ||j                  |f«        ||j                  |j                  |j                  t        j$                  f«        ||j                  d	«       y )
NÚafter1rR   r   r*   ÚrerU   z re.z "./Lib/Úafter2)r3   r   r/   Útry_open_completions_eventr   ÚafterÚcalledrU   Ú_delayed_completion_idÚ_delayed_completion_indexÚindexrK   Ú	popupwaitÚ_delayed_open_completionsr-   ÚTRY_ArS   Úafter_cancelÚTRY_F)r   rY   r   rC   Útrycompletionsrb   Úcb1Úcancels           r   Útest_try_open_completions_eventz0AutoCompleteTest.test_try_open_completions_eventd   s|  € Ø× Ñ ˆØ�y‰yˆØ×ÑˆØ×7Ñ7ˆÜ˜HÔ%ˆØˆ�‰Œñ 	ÔÙˆe�l‰l˜AÔØ�‰�E˜4Ô ÙÔÙˆe�l‰l˜AÔð 	�‰�H˜fÔ%Ø%)ˆÔ"ÙÔÙˆc×+Ñ+¨T¯Z©Z¸Ó-AÔBÙˆe�j‰jØ�}‰}˜c×;Ñ;¼R¿X¹XÐFô	Hà×(Ñ(ˆÙˆc�8Ôð 	�‰�H˜jÔ)ØˆŒÜ“ˆØ &ˆ�‰ÔÙÔÙˆc×+Ñ+¨T¯Z©Z¸Ó-AÔBÙˆf�k‰k˜C˜6Ô"Ùˆe�j‰jØ�}‰}˜c×;Ñ;¼R¿X¹XÐFô	Háˆc×(Ñ(¨(Õ3r   c                 óB  — | j                   }| j                  }t        «       }||_        | j                  j                  dd«       d|_        | j                  j                  d«      |_        |j                  d«       | j                  |j                  «        ||j                  d«       | j                  j                  d«      |_        |j                  dd	d
t        j                  f«       | j                  |j                  d   dd	d
t        j                  f«       y )Nr*   z"dict.rb   z	insert+1cÚdummyr   rU   é   é   é   )r3   r/   r   rI   r   rU   rd   rf   re   rh   rB   rc   r-   ÚFILESrK   )r   rY   rC   rM   s       r   Útest_delayed_open_completionsz.AutoCompleteTest.test_delayed_open_completions‰   sá   € Ø× Ñ ˆØ×ÑˆÜ“ˆØ%ˆÔØ�	‰	×Ñ˜ Ô)ð &-ˆÔ"Ø(,¯	©	¯©¸Ó(DˆÔ%Ø×%Ñ% gÔ.Ø×Ñ˜#×4Ñ4Ô5Ùˆf�m‰m˜QÔð )-¯	©	¯©¸Ó(AˆÔ%Ø×%Ñ% q¨!¨Q´·±Ð&9Ô:Ø×Ñ˜Ÿ™ Q™¨!¨Q°´2·8±8Ð)<Õ=r   c                 ó"  — | j                   }| j                  }d|_        t        d¬«      }||j                  _        | j                  j                  dd«        ||j                  t        j                  «      «        ||j                  «       y )Nrb   rR   ç      ð?z	# comment)
rB   r/   rd   r   r   rj   rU   rI   r-   rX   )r   ÚnonerC   rb   s       r   Útest_oc_cancel_commentz'AutoCompleteTest.test_oc_cancel_comment�   sq   € Ø× Ñ ˆØ×Ñˆð &-ˆÔ"Ü˜GÔ$ˆØ %ˆ�‰ÔØ�	‰	×Ñ˜˜kÔ*ÙˆS×!Ñ!¤"§&¡&Ó)Ô*ÙˆS×'Ñ'Õ(r   c                 ó¦  — | j                   }t        g g f¬«      }||_        | j                  j	                  dd«       | j                  |j                  t        j                  «      «       | j                  j	                  dd«       | j                  |j                  t        j                  «      «       | j                  |j                  d«       y )NrR   r*   ÚobjectrU   Ú.rs   )r/   r   Úfetch_completionsr   rU   rB   rI   r-   rX   r3   rc   )r   rC   Úfetchs      r   Útest_oc_no_listz AutoCompleteTest.test_oc_no_list©   s™   € Ø×ÑˆÜ˜R ˜GÔ$ˆØ %ˆÔØ�	‰	×Ñ˜ Ô)Ø×Ñ˜#×.Ñ.¬r¯v©vÓ6Ô7Ø�	‰	×Ñ˜ 3Ô'Ø×Ñ˜#×.Ñ.¬r¯v©vÓ6Ô7Ø×Ñ˜Ÿ™ qÕ)r   c                 ó˜  — | j                   }| j                  }| j                  j                  dd«        ||j	                  t
        j                  «      «       | j                  j                  dd«        ||j	                  t
        j                  «      «       | j                  j                  dd«       | j                  |j	                  t
        j                  «      «       | j                  j                  dd«       | j                  |j	                  t
        j                  «      «       | j                  j                  dd«       y )Nrx   r}   rU   z int().r+   r*   Ú")	rB   r/   r   rU   rI   r-   rX   r,   ÚassertFalse)r   ry   rC   s      r   Útest_open_completions_nonez+AutoCompleteTest.test_open_completions_none´   sè   € à× Ñ ˆØ×Ñˆð 	�	‰	×Ñ˜˜cÔ"ÙˆS×!Ñ!¤"§&¡&Ó)Ô*Ø�	‰	×Ñ˜ 9Ô-ÙˆS×!Ñ!¤"§&¡&Ó)Ô*ð 	�	‰	×Ñ˜˜eÔ$Ø×Ñ˜×-Ñ-¬b¯f©fÓ5Ô6Ø�	‰	×Ñ˜ Ô$Ø×Ñ˜×-Ñ-¬b¯f©fÓ5Ô6Ø�	‰	×Ñ˜ Õ&r   c                   ó:   — e Zd Z e«       Z ed¬«      Z e«       Zy)úAutoCompleteTest.dummy_acwFrR   N)r   r   r   r   r   Úshow_windowr@   r   r   r   Ú	dummy_acwr†   Æ   s   „ Ù“6ˆÙ %Ô(ˆÙ“f‰r   rˆ   c                 ó,  ‡ — ‰ j                   }t        dgddgf¬«      }||_        ˆ fd„}||_        ‰ j                  j                  dd«       |j                  t        j                  «       ‰ j                  |j                  ‰ j                  «       ‰ j                  j                  dd«       ‰ j                  j                  dd«       ‰ j                  |j                  t        j                  «      «       ‰ j                  j                  dd«       y )	NÚtemÚ_temrR   c                  ó$   •— ‰ j                  «       S r%   )rˆ   r0   s   €r   Úmake_acwz8AutoCompleteTest.test_open_completions.<locals>.make_acwÐ   s   ø€ ˜tŸ~™~Ó/Ð/r   r*   zint.r+   z"t)r/   r   r~   r7   r   rU   rI   r-   rX   r8   r>   rˆ   r,   Ú
assertTrue)r   rC   r   r�   s   `   r   Útest_open_completionsz&AutoCompleteTest.test_open_completionsË   sÏ   ø€ à×ÑˆÜ˜e˜W e¨V _Ð5Ô6ˆØ %ˆÔÜ/Ø(0ˆÔ%à�	‰	×Ñ˜ Ô'Ø×ÑœRŸV™VÔ$Ø×Ñ˜c×4Ñ4°d·n±nÔEØ�	‰	×Ñ˜ Ô&ð 	�	‰	×Ñ˜ Ô%Ø�‰˜×,Ñ,¬R¯V©VÓ4Ô5Ø�	‰	×Ñ˜ Õ&r   c                 óÄ   — | j                  dt        j                  «       | j                  dt        j                  «       | j                  dt        j                  «       y )NÚandÚcaseÚNone)ÚassertInr-   Úcompletion_kwdsÚassertNotInr0   s    r   Útest_completion_kwdsz%AutoCompleteTest.test_completion_kwdsÝ   s@   € Ø�‰�eœR×/Ñ/Ô0Ø�‰�fœb×0Ñ0Ô1Ø×Ñ˜¤×!3Ñ!3Õ4r   c           
      ó
  — | j                   }|j                  dt        j                  «      \  }}t	        t
        d«      r3t
        j                  t        j                  k7  r| j                  d|«       |j                  dt        j                  «      \  }}| j                  t        |«      t        |«      «       | j                  t        t        d„ |«      «      «       | j                  t        t        d„ |«      «      «       t        j                  dddd	gi«      5  |j                  dt        j                  «      \  }}| j!                  |dd	g«       | j#                  d
|«       | j#                  d|«       | j#                  d|«       |j%                  d«      }| j'                  ||dz      d«       d d d «       t)        «       }t)        «       |_        t        j                  dd|i«      5  |j                  dt        j                  «      \  }}| j                  d|«       | j#                  d|«       | j!                  |t-        t/        |«      «      D �cg c]  }|d d dk7  sŒ|‘Œ c}«       | j!                  |t-        t/        |«      «      «       d d d «       d„ }	t        j0                  t2        d|	«      5  |j                  dt        j4                  «      \  }}| j!                  |ddg«       | j!                  |g d¢«       |j                  dt        j4                  «      \  }}| j!                  |ddg«       | j!                  |g d¢«       d d d «       y # 1 sw Y   �Œ¨xY wc c}w # 1 sw Y   ŒÙxY w# 1 sw Y   y xY w)NÚ Ú__file__r.   c                 ó$   — | j                  d«      S ©NÚ_©Ú
startswith©Úxs    r   Ú<lambda>z9AutoCompleteTest.test_fetch_completions.<locals>.<lambda>ñ   ó   € ¨Q¯\©\¸#Ô->r   c                 ó$   — | j                  d«      S rœ   rž   r    s    r   r¢   z9AutoCompleteTest.test_fetch_completions.<locals>.<lambda>ò   r£   r   ú__main__.__dict__Ú__all__ÚaÚbr   ÚsumÚnonlocalÚFalserr   ÚfooÚ_privater�   c                 ó   — | dk(  rg d¢S g d¢S )Nr}   )r¬   Úbarú.hidden)ÚmontyÚpythonr°   r   )Úpaths    r   Ú_listdirz9AutoCompleteTest.test_fetch_completions.<locals>._listdir	  s   € à�sŠ{Ú0Ð0Ú1Ð1r   Úlistdirr¯   )r°   r¯   r¬   Ú~r±   r²   )r°   r±   r²   )r/   r~   r-   ÚATTRSÚhasattrÚ__main__rš   r–   Ú
assertLessÚlenrŽ   ÚallÚfilterÚanyr   Údictr3   r”   rf   ÚassertNotEqualr   r­   ÚsortedÚdirr|   Úosru   )
r   rC   ÚsmallÚlargeÚsr¨   Úposr[   Úir´   s
             r   Útest_fetch_completionsz'AutoCompleteTest.test_fetch_completionsâ   sÉ  € ð ×ÑˆØ×,Ñ,Ø”B—H‘Hó‰ˆˆuä”8˜ZÔ(¬X×->Ñ->Ä"Ç+Á+Ò-MØ×Ñ˜^¨UÔ3ð ×$Ñ$ R¬¯©Ó2‰ˆˆ1Ø�‰œ˜E›
¤C¨£JÔ/Ø�‰œœFÑ#>ÀÓBÓCÔDØ�‰œœFÑ#>ÀÓBÓCÔDô �Z‰ZÐ+¨i¸#¸s¸Ð-DÕEØ×(Ñ(¨¬R¯X©XÓ6‰DˆAˆqØ×Ñ˜Q  c 
Ô+Ø�M‰M˜* aÔ(Ø�M‰M˜% Ô#Ø�M‰M˜* aÔ(Ø—'‘'˜'Ó"ˆCØ×Ñ  # a¡%¡¨'Ô2÷ Fô ‹vˆÜ›ˆŒÜ�Z‰ZÐ+¨e°T¨]Õ;Ø×(Ñ(¨´·±Ó9‰DˆAˆqØ×Ñ˜Z¨Ô+Ø�M‰M˜* aÔ(Ø×Ñ˜Q¬F´3°t³9Ô,=Ó NÑ,= qÀÀ2ÀAÀÈ#Ã¢Ð,=Ñ NÔOØ×Ñ˜Q¤¤s¨4£yÓ 1Ô2÷ <ò	2ô �\‰\œ"˜i¨Õ2Ø×(Ñ(¨¬R¯X©XÓ6‰DˆAˆqØ×Ñ˜Q ¨ Ô/Ø×Ñ˜QÒ 9Ô:à×(Ñ(¨¬b¯h©hÓ7‰DˆAˆqØ×Ñ˜Q ¨(Ð 3Ô4Ø×Ñ˜QÒ >Ô?÷ 3Ð2÷5 FÑEüò  !O÷	 <Ð;ú÷ 3Ð2ús?   ÄBMÇ.A*M-ÉM(É&M(É*+M-Ê;BM9ÍM%Í(M-Í-M6Í9Nc                 ój  — | j                   }| j                  } ||j                  d«      t        «       t	        «       }t        j                  dd|i«      5   ||j                  d«      |«       d d d «       dddœ}t        j                  dd|i«      5   ||j                  d«      |«       d d d «       t        j                  di «      5  | j                  t        «      5  |j                  d	«       d d d «       d d d «       y # 1 sw Y   Œ–xY w# 1 sw Y   ŒdxY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)
NÚintzsys.modulesÚtempfileé
   é   )r¬   r¯   r¥   ÚdÚ	not_exist)	r/   r3   Ú
get_entityrË   r   r   r¿   ÚassertRaisesÚ	NameError)r   rC   rY   r[   Údis        r   Útest_get_entityz AutoCompleteTest.test_get_entity  sô   € ð ×ÑˆØ× Ñ ˆáˆc�n‰n˜UÓ#¤SÔ)ô ‹vˆÜ�Z‰Z˜¨
°DÐ'9Õ:Ù�#—.‘. Ó,¨dÔ3÷ ;ð  Ñ#ˆÜ�Z‰ZÐ+¨c°2¨YÕ7Ù�#—.‘. Ó% rÔ*÷ 8ô �Z‰ZÐ+¨RÕ0Ø×"Ñ"¤9Õ-Ø—‘˜{Ô+÷ .÷ 1Ð0÷ ;Ð:ú÷
 8Ð7ú÷
 .Ð-ú÷ 1Ð0ús<   ÁDÂDÃD)Ã"DÃ4D)ÄDÄDÄD&	Ä"D)Ä)D2N)r   r   r   Úclassmethodr#   r(   r1   r5   r<   rE   rN   r\   ro   rv   rz   r€   r„   rˆ   r�   r—   rÉ   rÕ   r   r   r   r   r      s€   „ àñ6ó ð6ð ñó ðò9ò<ò?ò2ò3ò&ò>#4òJ>ò(
)ò*ò'÷$ñ ò
'ò$5ò
4@ól,r   r   r¹   rs   )Ú	verbosity)Ú__doc__ÚunittestÚunittest.mockr   r   Útest.supportr   Útkinterr   r   rÃ   r¹   Úidlelib.autocompleter/   r-   Úidlelib.autocomplete_wÚautocomplete_wr9   Úidlelib.idle_test.mock_idler   Úidlelib.idle_test.mock_tkr	   r   ÚTestCaser   r   Úmainr   r   r   Ú<module>rä      sb   ðÙ "ã ß %Ý !ß Û 	Û å !Ý $Ý ,Ý +÷&ñ &ôT,�x×(Ñ(ô T,ðn ˆzÒØ€H‡M�M˜AÖð r   