
    /hhU+                         S SK r S SKJrJr  S SKJr  S SKJrJr  S SK	r	S SK
r
S SKJr  S SKJr  S SKJr  S SKJr   " S S5      r " S	 S
\ R,                  5      r\S:X  a  \ R2                  " SS9  gg)    N)Mockpatch)requires)TkText)Func)Eventc                       \ rS rSrS rSrg)DummyEditwin   c                 F    Xl         X l        SU l        SU l        SU l        g )N   z>>>)roottextindentwidthtabwidthprompt_last_line)selfr   r   s      L/opt/python-3.13.8/usr/lib/python3.13/idlelib/idle_test/test_autocomplete.py__init__DummyEditwin.__init__   s#    		 %    )r   r   r   r   r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__ r   r   r   r      s    &r   r   c                       \ rS rSr\S 5       r\S 5       rS rS rS r	S r
S rS	 rS
 rS rS rS rS r " S S5      rS rS rS rS rSrg)AutoCompleteTest   c                     [        S5        [        5       U l        U R                  R                  5         [	        U R                  5      U l        [        U R                  U R
                  5      U l        g )Ngui)r   r   r   withdrawr   r   r   editorclss    r   
setUpClassAutoCompleteTest.setUpClass   sG    4>!#((CHH5
r   c                 x    U ? U ?U R                  R                  5         U R                  R	                  5         U ?g N)r%   r   r   update_idletasksdestroyr&   s    r   tearDownClassAutoCompleteTest.tearDownClass#   s0    J!!#Hr   c                     U R                   R                  SS5        [        R                  " U R                  5      U l        g )N1.0end)r   deleteacAutoCompleter%   autocompleter   s    r   setUpAutoCompleteTest.setUp*   s+    		&OODKK8r   c                     U R                  U R                  R                  U R                  5        U R                  U R                  R                  U R                  5        g r+   )assertEqualr6   editwinr%   r   r7   s    r   	test_initAutoCompleteTest.test_init.   sB    **22DKK@**//;r   c                 x    U R                   R                  5       nU R                  U[        R                  5        g r+   )r6   _make_autocomplete_windowassertIsInstanceacwAutoCompleteWindow)r   testwins     r   test_make_autocomplete_window.AutoCompleteTest.test_make_autocomplete_window2   s,    ##==?gs'='=>r   c                     U R                   n[        5       =Ul        nUR                  5         UR                  R                  5         U R                  UR                  5        g r+   )r6   r   autocompletewindow_remove_autocomplete_windowhide_windowassert_called_onceassertIsNone)r   acpms      r   test_remove_autocomplete_window0AutoCompleteTest.test_remove_autocomplete_window6   sL    %)V+'')	((*#001r   c                     U R                   n[        5       nX!l        U R                  UR	                  S5      S5        U R                  UR
                  S   [        R                  5        g )Neventbreakr   )r6   r   open_completionsr;   force_open_completions_eventargsr4   FORCE)r   rM   open_cs      r   !test_force_open_completions_event2AutoCompleteTest.test_force_open_completions_event=   sQ    %99'BGLQ2r   c                 >   U R                   nU R                  n[        SS9nU R                  UR	                  U5      5        U?U R                  R                  SS5        U R                  UR	                  U5      5        U R                  R                  SS5        U R                  R                  SS5        [        5       =Ul
        n[        SS9Ul        U" UR	                  U5      S5        UR                  R                  5         S Ul
        [        S	S
9nXRl        U" UR	                  U5      S 5        U" UR                   S   ["        R$                  5        SUl        U" UR	                  U5      S5        U" UR                   S   ["        R$                  5        g )NT)mc_stater1   z        """Docstring.
    r2   zre.)return_valuerS   Fresultr   )r;   r6   r	   rL   autocomplete_eventr\   r   insertr3   r   rH   	is_activecompleterK   r   rT   rV   r4   TABr_   )r   EqualrM   evmockrX   s         r   test_autocomplete_event(AutoCompleteTest.test_autocomplete_eventE   sS      D!#0045K 			 =>#0045		& 			&(,.40c$$R('2((*!% U#%c$$R($/fkk!nbff%c$$R('2fkk!nbff%r   c                    U R                   nU R                  nU R                  nUR                  n[	        SS9nXSR                  l        U" 5         U" UR                  S5        UR                  SS5        U" 5         U" UR                  S5        UR                  SS5        S Ul        U" 5         U" UR                  UR                  S5      5        U" UR                  UR                  UR                  [        R                  45        UR                  nU" US5        UR                  SS5        S	Ul        [	        5       nXsR                  l        U" 5         U" UR                  UR                  S5      5        U" UR                  U45        U" UR                  UR                  UR                  [        R$                  45        U" UR                  S	5        g )
Nafter1r^   r   r1   rera   z re.z "./Lib/after2)r;   r   r6   try_open_completions_eventr   aftercalledra   _delayed_completion_id_delayed_completion_indexindexrV   	popupwait_delayed_open_completionsr4   TRY_Ar_   after_cancelTRY_F)r   re   r   rM   trycompletionsro   cb1cancels           r   test_try_open_completions_event0AutoCompleteTest.test_try_open_completions_eventd   sx     yy77H% 	ellAE4 ellA 	Hf%%)"c++TZZ-ABejj}}c;;RXXF	H((c8 	Hj) &c++TZZ-ABfkkC6"ejj}}c;;RXXF	Hc(((3r   c                 @   U R                   nU R                  n[        5       nX2l        U R                  R                  SS5        SUl        U R                  R                  S5      Ul        UR                  S5        U R                  UR                  5        U" UR                  S5        U R                  R                  S5      Ul        UR                  SS	S
[        R                  45        U R                  UR                  S   SS	S
[        R                  45        g )Nr1   z"dict.ro   z	insert+1cdummyr   ra            )r;   r6   r   rT   r   ra   rq   rs   rr   ru   rL   rp   r4   FILESrV   )r   re   rM   rX   s       r   test_delayed_open_completions.AutoCompleteTest.test_delayed_open_completions   s      %		) &-"(,		(D%%%g.#445fmmQ )-		(A%%%q!Q&9:Q!Q288)<=r   c                    U R                   nU R                  nSUl        [        SS9nX2R                  l        U R                  R                  SS5        U" UR                  [        R                  5      5        U" UR                  5        g )Nro   r^         ?z	# comment)
rL   r6   rq   r   r   rw   ra   rT   r4   rd   )r   nonerM   ro   s       r   test_oc_cancel_comment'AutoCompleteTest.test_oc_cancel_comment   so       &-"G$ %		k*S!!"&&)*S''(r   c                    U R                   n[        / / 4S9nX!l        U R                  R	                  SS5        U R                  UR                  [        R                  5      5        U R                  R	                  SS5        U R                  UR                  [        R                  5      5        U R                  UR                  S5        g )Nr^   r1   objectra   .r   )r6   r   fetch_completionsr   ra   rL   rT   r4   rd   r;   rp   )r   rM   fetchs      r   test_oc_no_list AutoCompleteTest.test_oc_no_list   s    RG$ %		)#..rvv67		3'#..rvv67q)r   c                    U R                   nU R                  nU R                  R                  SS5        U" UR	                  [
        R                  5      5        U R                  R                  SS5        U" UR	                  [
        R                  5      5        U R                  R                  SS5        U R                  UR	                  [
        R                  5      5        U R                  R                  SS5        U R                  UR	                  [
        R                  5      5        U R                  R                  SS5        g )Nr   r   ra   z int().r2   r1   ")	rL   r6   r   ra   rT   r4   rd   r3   assertFalse)r   r   rM   s      r   test_open_completions_none+AutoCompleteTest.test_open_completions_none   s       			c"S!!"&&)*		9-S!!"&&)* 			e$--bff56		$--bff56		&r   c                   <    \ rS rSr\" 5       r\" SS9r\" 5       rSrg)AutoCompleteTest.dummy_acw   Fr^   r   N)	r   r   r   r   r   r   show_windowrJ   r   r   r   r   	dummy_acwr      s    6%(fr   r   c                 $  ^  T R                   n[        S/SS/4S9nX!l        U 4S jnX1l        T R                  R                  SS5        UR                  [        R                  5        T R                  UR                  T R                  5        T R                  R                  SS5        T R                  R                  SS5        T R                  UR                  [        R                  5      5        T R                  R                  SS5        g )	Ntem_temr^   c                  $   > T R                  5       $ r+   )r   r7   s   r   make_acw8AutoCompleteTest.test_open_completions.<locals>.make_acw   s    t~~//r   r1   zint.r2   z"t)r6   r   r   r@   r   ra   rT   r4   rd   rA   rH   r   r3   
assertTrue)r   rM   r   r   s   `   r   test_open_completions&AutoCompleteTest.test_open_completions   s    eWeV_56 %/(0%		'RVV$c44dnnE		& 			%,,RVV45		&r   c                     U R                  S[        R                  5        U R                  S[        R                  5        U R                  S[        R                  5        g )NandcaseNone)assertInr4   completion_kwdsassertNotInr7   s    r   test_completion_kwds%AutoCompleteTest.test_completion_kwds   s@    eR//0fb001!3!34r   c           
      4   U R                   nUR                  S[        R                  5      u  p#[	        [
        S5      (       a4  [
        R                  [        R                  :w  a  U R                  SU5        UR                  S[        R                  5      u  pEU R                  [        U5      [        U5      5        U R                  [        [        S U5      5      5        U R                  [        [        S U5      5      5        [        R                  " SSSS	/05         UR                  S[        R                  5      u  pEU R!                  USS	/5        U R#                  S
U5        U R#                  SU5        U R#                  SU5        UR%                  S5      nU R'                  XVS-      S5        S S S 5        [)        5       n[)        5       Ul        [        R                  " SSU05         UR                  S[        R                  5      u  pEU R                  SU5        U R#                  SU5        U R!                  U[-        [/        U5      5       Vs/ s H  oS S S:w  d  M  UPM     sn5        U R!                  U[-        [/        U5      5      5        S S S 5        S n	[        R0                  " [2        SU	5         UR                  S[        R4                  5      u  pEU R!                  USS/5        U R!                  U/ SQ5        UR                  S[        R4                  5      u  pEU R!                  USS/5        U R!                  U/ SQ5        S S S 5        g ! , (       d  f       GN= fs  snf ! , (       d  f       N= f! , (       d  f       g = f)N __file__r5   c                 $    U R                  S5      $ N_
startswithxs    r   <lambda>9AutoCompleteTest.test_fetch_completions.<locals>.<lambda>       Q\\#->r   c                 $    U R                  S5      $ r   r   r   s    r   r   r      r   r   __main__.__dict____all__abr   sumnonlocalFalser   foo_privater   c                     U S:X  a  / SQ$ / SQ$ )Nr   )r   bar.hidden)montypythonr   r   )paths    r   _listdir9AutoCompleteTest.test_fetch_completions.<locals>._listdir	  s    s{0011r   listdirr   )r   r   r   ~r   r   )r   r   r   )r6   r   r4   ATTRShasattr__main__r   r   
assertLesslenr   allfilteranyr   dictr;   r   rs   assertNotEqualr   r   sorteddirr   osr   )
r   rM   smalllargesr   posrg   ir   s
             r   test_fetch_completions'AutoCompleteTest.test_fetch_completions   s    ,,BHH8Z((X->->"++-M^U3 $$R2E
CJ/F#>BCDF#>BCD ZZ+i#s-DE((RXX6DAQc
+MM*a(MM%#MM*a('''"Ca%'2 F vZZ+eT];((9DAZ+MM*a(QF3t9,= N,=q2A#,= NOQs4y 12 <	2 \\"i2((RXX6DAQ/Q 9:((bhh7DAQ( 34Q >? 325 FE  !O	 <; 32s?   #BM!2A)M8M3+M31+M8BN	!
M03M88
N	
Nc                    U R                   nU R                  nU" UR                  S5      [        5        [	        5       n[
        R                  " SSU05         U" UR                  S5      U5        S S S 5        SSS.n[
        R                  " SSU05         U" UR                  S5      U5        S S S 5        [
        R                  " S0 5         U R                  [        5         UR                  S	5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       No= f! , (       d  f       N9= f! , (       d  f       g = f)
Nintzsys.modulestempfile
      )r   r   r   d	not_exist)	r6   r;   
get_entityr   r   r   r   assertRaises	NameError)r   rM   re   rg   dis        r   test_get_entity AutoCompleteTest.test_get_entity  s       cnnU#S) vZZ
D'9:#..,d3 ; #ZZ+c2Y7#..%r* 8 ZZ+R0""9-{+ . 10 ;:
 87
 .- 10s<   DDD;%D*7D;
D
D'*
D8	4D;;
E	)r6   N)r   r   r   r   classmethodr(   r.   r8   r=   rE   rO   rY   rh   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r       s    6 6  9<?23&>#4J>(
)*'$ 
'$5
4@l,r   r    r   r   )	verbosity)unittestunittest.mockr   r   test.supportr   tkinterr   r   r   r   idlelib.autocompleter6   r4   idlelib.autocomplete_wautocomplete_wrB   idlelib.idle_test.mock_idler   idlelib.idle_test.mock_tkr	   r   TestCaser    r   mainr   r   r   <module>r      s_     % !  	  ! $ , +& &T,x(( T,n zMMA r   