
    0hh                         S SK r S SKJr  S SKrS SKrS SKJr   " S S5      r " S S\ R                  5      r	\
S:X  a  \ R                  " 5         gg)	    N)patch)MISSING_C_DOCSTRINGSc                        \ rS rSrSrSrSrSrg)
CompleteMe   z5Trivial class used in testing rlcompleter.Completer.        N)__name__
__module____qualname____firstlineno____doc__spam_ham__static_attributes__r
       >/opt/python-3.13.8/usr/lib/python3.13/test/test_rlcompleter.pyr   r      s    @DDr   r   c                       \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	S
5      S 5       rS rSrg)TestRlcompleter   c                     [         R                  " 5       U l        [         R                  " [        [        [
        [        S95      U l        U R                  R                  SS5        g )N)r   eggr    r   )	rlcompleter	Completerstdcompleterdictintstrr   	completercompleteselfs    r   setUpTestRlcompleter.setUp   sN    '113$..t8;?I0K L
 	""2q)r   c                     " S S[         5      n " S S[        5      nU R                  U R                  R                  5        U R                  U R                  R                  5        U R                  [        R                  " U" 5       5      R                  5        U R                  [        [        R                  U" S5      5        g )Nc                       \ rS rSrSrg))TestRlcompleter.test_namespace.<locals>.A   r
   Nr   r   r   r   r   r
   r   r   Ar)          r   r,   c                       \ rS rSrSrg))TestRlcompleter.test_namespace.<locals>.B   r
   Nr+   r
   r   r   Br/      r-   r   r1   )r   )r   list
assertTruer   use_main_nsassertFalser!   r   r   assertRaises	TypeError)r$   r,   r1   s      r   test_namespaceTestRlcompleter.test_namespace   s    	 		 	 	))556334..qs3??@)[%:%:AdGDr   c           	      Z   U R                  [        U R                  R                  S5      5      [	        [
        5       Vs/ s H  oR                  S5      (       d  M  US-   PM!     sn5        U R                  [        U R                  R                  S5      5      [	        [
        5       Vs/ s H  oR                  S5      (       d  M  US-   PM!     sn5        U R                  U R                  R                  S5      / 5        U R                  U R                  R                  S5      [        (       a  SOS/5        U R                  U R                  R                  S5      S	/5        U R                  U R                  R                  S5      [        (       a  SOS/5        g s  snf s  snf )
Ndi(stakaksajadhak	CompleteMzCompleteMe(zCompleteMe()egzegg()	assertEqualsortedr   global_matchesdirbuiltins
startswithr!   r   )r$   xs     r   test_global_matches#TestRlcompleter.test_global_matches"   sF    1 1 @ @ FG),XMA,,t:L%!C%M	O 1 1 @ @ FG),XMA,,t:L%!C%M	O**99.I2N 	66{C"6"6NK	M66t< 	# 	66{C"6"6NK	M NMs    F#
	F#
,F(
		F(
c           
      @   U R                  U R                  R                  S5      [        [        5       Vs/ s H,  nUR                  S5      (       d  M  SR                  U5      PM.     sn5        U R                  U R                  R                  S5      / 5        S nU" 5       nU R                  U R                  R                  S5      U5        U R                  U R                  R                  S5      U5        U R                  U R                  R                  S5      U5        U R                  U R                  R                  S	5      S
/5        U R                  U R                  R                  S5      / 5        U R                  U R                  R                  S5      SS
/5        U R                  U R                  R                  S5      S/5        U R                  R                  S5      nU H$  nU R                  UR                  S5      U5        M&     U R                  SU5        U R                  SU5        [        R                  " [        S[        SS9   U R                  U R                  R                  S5      S/5        U R                  U R                  R                  S5      [        [        5       Vs/ s H,  nUR                  S5      (       d  M  SR                  U5      PM.     sn5        S S S 5        g s  snf s  snf ! , (       d  f       g = f)Nzstr.sszstr.{}(ztuple.foospameggc                  
   [         (       d  Sn OSn [        5       n[        S 5       HP  nX ;   a  UR                  SU S35        M  US:X  a  UR                  SU 35        M;  UR                  SU S35        MR     [	        U5      $ )N)__init_subclass__	__class__)rM   None.z()r   r<   )r   setrD   addrB   )parenthesesitemsrG   s      r   create_expected_for_noneCTestRlcompleter.test_attr_matches.<locals>.create_expected_for_none:   s|    ''@ 5EEY#IIaSm,)^IIaSk*IIaSl+  %= r   rO   zNone._zNone.__zCompleteMe.spzCompleteMe.spamzCompleteme.eggzCompleteMe.zCompleteMe.mro()zCompleteMe._zCompleteMe._hamzCompleteMe.__zCompleteMe.__name__zCompleteMe.__new__(meT)createzCompleteMe.me.me.spzCompleteMe.me.me.spamzegg.szegg.{}()rA   r   attr_matchesrD   r    rF   formatr!   r3   assertInr   objectr   )r$   rG   rT   expectedmatchess        r   test_attr_matches!TestRlcompleter.test_attr_matches3   s   **77@7:3x 0x!\\#. .)**1-x 0	1 	**778JKRP	!$ ,-**77@(K**77A8L**77	BHM 	44_E+,	.445EFK44]C,.?@	B44^D+,	...--o>AOOALL91= +W5+W5\\*dJtDT^^889NO568T^^88A;>s8 48a!"c!2 2i..q18 45 EDS0Z4	 EDs0   L
L
A#LL
 L
5L
L
Lc                      " S S5      nU" 5       n[         R                  " [        US95      nU R                  UR	                  SS5      S5        U R                  UR
                  S5        g)	z;Ensure getattr() is invoked no more than once per attributec                   0   ^  \ rS rSrSrSrU 4S jrSrU =r$ )3TestRlcompleter.test_excessive_getattr.<locals>.Foom   r   r   c                 Z   > US:X  a  U =R                   S-  sl         g [        TU ]	  U5      $ )Nbarr   )callssuper__getattribute__)r$   namerN   s     r   rh   DTestRlcompleter.test_excessive_getattr.<locals>.Foo.__getattribute__p   s*    5=JJ!OJw/55r   r
   )	r   r   r   r   rf   re   rh   r   __classcell__)rN   s   @r   Foorb   m   s    EC6 6r   rl   ff.br   f.barr   N)r   r   r   rA   r"   rf   r$   rl   rn   r!   s       r   test_excessive_getattr&TestRlcompleter.test_excessive_getattrf   sZ    	6 	6 E))$)4	++E15w?!$r   c                      " S S5      nU" 5       n[         R                  " [        US95      nU R                  UR	                  SS5      S5        U R                  UR                  5        g )Nc                   ,    \ rS rSrSrSr\S 5       rSrg)<TestRlcompleter.test_property_method_not_called.<locals>.Foo|   r   Fc                 (    SU l         U R                  $ )NT)property_called_barr#   s    r   re   @TestRlcompleter.test_property_method_not_called.<locals>.Foo.bar   s    '+$yy r   )ry   N)	r   r   r   r   rz   ry   propertyre   r   r
   r   r   rl   rv   |   s    D#O! !r   rl   rm   ro   r   rp   )r   r   r   rA   r"   r5   ry   rq   s       r   test_property_method_not_called/TestRlcompleter.test_property_method_not_called{   sZ    	! 	! E))$)4	++E15w?**+r   c                      " S S5      n[         R                  " [        U" 5       S95      nU R                  UR	                  SS5      S5        g )Nc                       \ rS rSrSrSrg)0TestRlcompleter.test_uncreated_attr.<locals>.Foo   )re   r
   N)r   r   r   r   	__slots__r   r
   r   r   rl   r      s     Ir   rl   rm   zf.r   rp   )r   r   r   rA   r"   )r$   rl   r!   s      r   test_uncreated_attr#TestRlcompleter.test_uncreated_attr   s?    	! 	!))$-8	++D!4g>r   zrlcompleter._readline_availableFc                    [         R                  " 5       nU R                  UR                  SS5      S5        U R                  UR                  SS5      S5        U R                  UR                  SS5      S5        U R                  UR                  SS	5      S
5        U R                  UR                  SS5      S5        U R                  UR                  SS5      S5        U R                  UR                  SS5      S5        U R                  UR                  SS5      S5        U R                  UR                  SS5      S5        U R                  UR                  SS5      S5        U R                  UR                  SS5      S5        U R                  UR                  SS5      S5        U R                  UR                  SS5      S5        g )Nr   r   	azand r   zas asr	   assert anpapassFaFalseelzelif elsetrtry:_matchzmatch casezcase )r   r   rA   r"   )r$   r!   s     r   test_completeTestRlcompleter.test_complete   s   ))+	++B2D9++C3V<++C3U;++D!4i@++D!4f=++D!4f=++D!4g>++D!4g>++D!4f=++D!4f=++C3S9++GQ7B++FA6@r   c                    S S S S S S.n[         R                  " U5      nU R                  UR                  SS5      S5        U R	                  UR                  SS5      5        U R                  UR                  SS5      S5        U R	                  UR                  SS5      5        U R                  UR                  S	S5      S
5        U R	                  UR                  S	S5      5        U R                  UR                  SS5      S5        U R	                  UR                  SS5      5        U R                  UR                  SS5      S5        U R	                  UR                  SS5      5        g )Nc                      g Nr
   r
   r   r   <lambda>8TestRlcompleter.test_duplicate_globals.<locals>.<lambda>   s    4r   c                      g r   r
   r
   r   r   r   r      s    r   )r   asserttry
memoryviewEllipsisr   r   r   r   r   r   r   r   r   z
Ellipsis())r   r   rA   r"   assertIsNone)r$   	namespacer!   s      r   test_duplicate_globals&TestRlcompleter.test_duplicate_globals   sB   $
	  )))4	++GQ7A),,Wa89++Ha8)D),,Xq9:++E15v>),,UA67++L!<lK),,\1=>++J:LI),,Z;<r   )r!   r   N)r   r   r   r   r%   r8   rH   r^   rr   r}   r   unittestmockr   r   r   r   r
   r   r   r   r      sV    *	EM"15f%*, ? ]]:EBA CA =r   r   __main__)r   unittest.mockr   rE   r   test.supportr   r   TestCaser   r   mainr
   r   r   <module>r      sK        - k=h'' k=Z zMMO r   