
    ѝiZ5                        S r SSKJr  SSKrSSKJr  SSKrSSKrSSKrSSK	J
r
  SSKJr   " S S5      r\" 5       r\R                  r\R"                  r " S	 S
\R&                  5      r " S S\R&                  5      r " S S5      r " S S5      r " S S\R0                  5      r " S S\R&                  5      r\S:X  a  \R8                  " SS9  gg)zTest calltip, coverage 76%    )calltipN)Mock)Text)MISSING_C_DOCSTRINGSc                       \ rS rSrSrSrSS jrS\l        S rS\l        SS	 jrS
\l        S r	S\	l        S r
S\
l        SS jrS\l        S rS\l        S rS\l        S r\S 5       r\S 5       rSrg)TC   docz(ai=None, *b)Nc                     gr
   N selfaibs      0lib/python3.13/idlelib/idle_test/test_calltip.py__init__TC.__init__           z(self, ai=None, *b)c                     gr   r   r   s    r   t1TC.t1   r   r   (self)c                     gr   r   r   s      r   t2TC.t2   r   r   z(self, ai, b=None)c                     gr   r   )r   r   argss      r   t3TC.t3   r   r   z(self, ai, *args)c                     gr   r   r   r    s     r   t4TC.t4   r   r   z(self, *args)c                     gr   r   )r   r   r   r    kws        r   t5TC.t5   r   r   z(self, ai, b=None, *args, **kw)c                     gr   r   )nor   s     r   t6TC.t6   r   r   z
(no, self)c                     gr   r   r   cis     r   __call__TC.__call__   r   r   z
(self, ci)c                     g Nr   r   s    r   ndTC.nd!   s    $r   c                     gr   r   )clsas     r   cmTC.cm#   r   r   c                     gr   r   )r   s    r   smTC.sm%   r   r   r   r5   )__name__
__module____qualname____firstlineno____doc__tipr   r   r   r!   r%   r)   r-   r2   r6   classmethodr;   staticmethodr>   __static_attributes__r   r   r   r   r      sy    	
C*(HLBF#!BF" BFBF0.BFBF!HL  r   r   c                       \ rS rSr\R
                  " \S5      S 5       rS rS r	S r
\R
                  " \S5      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rg)Get_argspecTest.   z6Signature information for builtins requires docstringsc                 H  ^  U 4S jn " S S[         5      n " S S5      nUR                  b  U" USUR                   35        U" [         R                  S5        U" [         R                  S5        S	nU" [         R                  S
U-   5        U" UR                  S
U-   5        U" / R                  SU-   5        U" [
        R                  S5        U" U" 5       [        5        [        R                  " S5      nU" [        R                  S5        U" UR                  S5        g )Nc                 <   > TR                  [        U 5      U5        g r5   )assertEqualget_spec)objoutr   s     r   tiptest.Get_argspecTest.test_builtins.<locals>.tiptest:   s    Xc]C0r   c                       \ rS rSrSrSrg)+Get_argspecTest.test_builtins.<locals>.List>   z
List() docr   N)r@   rA   rB   rC   rD   rH   r   r   r   ListrU   >   s    ,r   rW   c                       \ rS rSrSrSrg))Get_argspecTest.test_builtins.<locals>.SBA   Nr   r@   rA   rB   rC   r2   rH   r   r   r   SBrY   A   s    d8r   r\   z(iterable=(), /)
zY(*args, **kwargs)
Create and return a new object.  See help(type) for accurate signature.zY(self, /, *args, **kwargs)
Initialize self.  See help(type(self)) for accurate signature.z&
Append object to the end of the list.z(self, object, /)z(object, /)z>(function, instance, /)
Create a bound instance method object. aO  (pattern, repl, string, count=0, flags=0)
Return the string obtained by replacing the leftmost
non-overlapping occurrences of the pattern in string by the
replacement repl.  repl can be either a string or a callable;
if a string, backslash escapes in it are processed.  If it is
a callable, it's passed the Match object and must returnzm(repl, string, count=0)
Return the string obtained by replacing the leftmost non-overlapping occurrences o...)listrD   __new__r   appendtypes
MethodTypedefault_tiprecompilesub)r   rR   rW   r\   
append_docps   `     r   test_builtinsGet_argspecTest.test_builtins6   s	   	1 	'4& 	#"<<#D() 	7	8 	O	P ?
0:=>0:=>		=:56 	  7	8 	k"JJrN < 	= 	 $ 	%r   c                     [         R                  R                  b*  U R                  [	        [         R                  5      S5        g g )Na6  (width=70, initial_indent='', subsequent_indent='', expand_tabs=True,
    replace_whitespace=True, fix_sentence_endings=False, break_long_words=True,
    drop_whitespace=True, break_on_hyphens=True, tabsize=8, *, max_lines=None,
    placeholder=' [...]')
Object for wrapping/filling text.  The public interface consists of
the wrap() and fill() methods; the other methods are just there for
subclasses to override in order to tweak the default behaviour.
If you want to completely replace the main wrapping algorithm,
you'll probably have to override _wrap_chunks().)textwrapTextWrapperrD   rN   rO   r   s    r   test_signature_wrap#Get_argspecTest.test_signature_wrapf   s9    ''3Xh&:&:; 	>5 	6 4r   c                 *   S
S jnS
S jnSS jn[         R                  nSU-   S-   nSU-   S-   nSU-   S-   U-   S-   nX4X&4X744 H8  u  pU R                  XS	9   U R                  [	        U5      U	5        S S S 5        M:     g ! , (       d  f       ML  = f)Nc                     g r5   r   ss    r   foo4Get_argspecTest.test_properly_formatted.<locals>.foou       r   c                     g)zHello GuidoNr   rr   s    r   bar4Get_argspecTest.test_properly_formatted.<locals>.barx   s    r   c                     g r5   r   )rs   zs     r   baz4Get_argspecTest.test_properly_formatted.<locals>.baz|   rv   r   zV(s='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
zaaaaaaaaaaaaaaaaaaa')z!aaaaaaaaaaaaaaaaaaa')
Hello GuidozRaaaaaaaaaaaaaaaaaaa', z='bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
z.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'))funcr
   )daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)r   dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)r   _INDENTsubTestrN   rO   )
r   rt   rx   r|   indentsfoosbarsbazr~   r
   s
             r   test_properly_formatted'Get_argspecTest.test_properly_formatteds   s    			 24:;>24:;>++24:;>%% (..1** skC;?HD41  $5 21 @11s   B
B	c                     S nSUl         U R                  [        U5      SS[        R                  S-
  -  S-    35        g )Nc                      g r5   r   r   r   r   f2Get_argspecTest.test_docline_truncation.<locals>.f       r   ,  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz()
r:      z...)rD   rN   rO   r   	_MAX_COLSr   r   s     r   test_docline_truncation'Get_argspecTest.test_docline_truncation   s=    	!S'2C2CA2E-F-N,O&PQr   c                     U R                  [        [        5      S5        U R                  [        [        5      S5        g )NzFrange(stop) -> range object
range(start, stop[, step]) -> range objectzbytes(iterable_of_ints) -> bytes
bytes(string, encoding[, errors]) -> bytes
bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer
bytes(int) -> bytes object of size given by the parameter initialized with null bytes
bytes() -> empty bytes object)rN   rO   rangebytesr   s    r   test_multiline_docstring(Get_argspecTest.test_multiline_docstring   s8     	%=	>
 	% +! 	"r   c                 v    S nSUl         U R                  [        U5      SS[        R                  -  -   5        g )Nc                      g r5   r   r   r   r   r   5Get_argspecTest.test_multiline_docstring_2.<locals>.f   r   r   za
a
a
a
a
a
a
a
a
a
a
a
a
a
a
()z
a)rD   rN   rO   r   
_MAX_LINESr   s     r   test_multiline_docstring_2*Get_argspecTest.test_multiline_docstring_2   s0    	!dUW5G5G-G&GHr   c                 X   S nSUl         SS jnSUl         S nSUl         S nSUl         SS	 jnS
Ul         UR                  b  SOSnXX4U[        4 HC  nU R                  US9   U R	                  [        U5      UR                   U-   5        S S S 5        ME     g ! , (       d  f       MW  = f)Nc                      gr   r   r   r   r   r   *Get_argspecTest.test_functions.<locals>.t1   r   r   r   c                     gr   r   )r:   r   s     r   r   *Get_argspecTest.test_functions.<locals>.t2   r   r   z(a, b=None)c                     gr   r   )r:   r    s     r   r!   *Get_argspecTest.test_functions.<locals>.t3   r   r   z
(a, *args)c                      gr   r   r    s    r   r%   *Get_argspecTest.test_functions.<locals>.t4   r   r   (*args)c                     gr   r   )r:   r   r    r(   s       r   r)   *Get_argspecTest.test_functions.<locals>.t5   r   r   z(a, b=None, *args, **kw)
docr]   )r~   r5   )rE   rD   r   r   rN   rO   )r   r   r   r!   r%   r)   r
   r~   s           r   test_functionsGet_argspecTest.test_functions   s     -+/gRRR,D4(  $C@ )( -((s   $)B
B)	c                 f   [         R                  b  SOSn[         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  4 HC  nU R                  US9   U R                  [        U5      UR                  U-   5        S S S 5        ME     U R                  [        [         R                  5      SU-   5        U R                  [        [         R                  5      SU-   5        g ! , (       d  f       M  = f)Nr   r]   )meth(a)z(b))r   rD   r   r   r!   r%   r)   r-   r2   r   rN   rO   rE   r;   r>   )r   r
   r   s      r   test_methodsGet_argspecTest.test_methods   s    /gRUUBEE255"%%r{{KD4(  $C@ )( L 	"%%%#+6"%%%#+6 )(s   )D!!
D0	c                    [         R                  b  SOSn[        R                  S4[        R                  S4[        R
                  S4[        R                  S4[        S4[         R                  S44 H:  u  p#U R                  X#S9   U R                  [        U5      X1-   5        S S S 5        M<     g ! , (       d  f       MN  = f)	Nr   r]   r   r   r   (ci)r   r   mtip)r   rD   tcr   r%   r-   r2   r;   r   rN   rO   )r   r
   r   r   s       r   test_bound_methods"Get_argspecTest.test_bound_methods   s    /gRUUDMBEE9+=UUH-V/DL255%.;JD 43  $< 43; 43s   B33
C	c                      " S S5      nU" 5       nUR                   S4UR                   S44 H8  u  p4U R                  X4S9   U R                  [        U5      U5        S S S 5        M:     g ! , (       d  f       ML  = f)Nc                       \ rS rSrS rSrg)1Get_argspecTest.test_starred_parameter.<locals>.C   c                      g r5   r   r   s    r   m14Get_argspecTest.test_starred_parameter.<locals>.C.m1   s    4r   r   N)r@   rA   rB   rC   r   rH   r   r   r   Cr      s    r   r   r   r   )r   r   rN   rO   )r   r   cr   r   s        r   test_starred_parameter&Get_argspecTest.test_starred_parameter   sh    	  	 CTT9-i/@BJD43  $6 43 C33s   A++
A:	c                      " S S5      n " S S5      n[         R                  nU R                  [        U" 5       R                  5      U5        U R                  [        U" 5       5      U5        g )Nc                       \ rS rSrS rSrg)7Get_argspecTest.test_invalid_method_get_spec.<locals>.C   c                      g r5   r   )kwargss    r   m2:Get_argspecTest.test_invalid_method_get_spec.<locals>.C.m2   s    dr   r   N)r@   rA   rB   rC   r   rH   r   r   r   r   r      s    "r   r   c                       \ rS rSrS rSrg):Get_argspecTest.test_invalid_method_get_spec.<locals>.Test   c                     g r5   r   )r:   s    r   r2   CGet_argspecTest.test_invalid_method_get_spec.<locals>.Test.__call__   s    r   r   Nr[   r   r   r   Testr      s    $r   r   )r   _invalid_methodrN   rO   r   )r   r   r   r   s       r   test_invalid_method_get_spec,Get_argspecTest.test_invalid_method_get_spec   sU    	# 	#	% 	% &&!#&&)40$&)40r   c                 T    Sn[         R                  R                  SU5      S:X  d   eg )Nu   (AΑАאاअḀあ, a)r]   r   )r   _first_paramrf   )r   unis     r   test_non_ascii_name#Get_argspecTest.test_non_ascii_name   s+     A##''C0E999r   c                     [         R                  S4[        R                  S44 H8  u  pU R                  XS9   U R	                  [        U5      U5        S S S 5        M:     g ! , (       d  f       ML  = f)Nr   r   r   )r   r6   r   r   rN   rO   )r   r   r   s      r   test_no_docstring!Get_argspecTest.test_no_docstring   sU    EE8,ruudm<JD43  $6 43 =33s   A""
A1	c                 0    " S S5      n " S SU5      n " S SU5      nU[         4U[         4U" 5       S4U" 5       S4U" 5       S	44 H8  u  pEU R                  XES
9   U R                  [        U5      U5        S S S 5        M:     g ! , (       d  f       ML  = f)Nc                       \ rS rSrS rSrg)8Get_argspecTest.test_buggy_getattr_class.<locals>.NoCall   c                     [         er5   )
IndexError)r   names     r   __getattr__DGet_argspecTest.test_buggy_getattr_class.<locals>.NoCall.__getattr__   s      r   r   N)r@   rA   rB   rC   r   rH   r   r   r   NoCallr      s    !r   r   c                       \ rS rSrS rSrg)7Get_argspecTest.test_buggy_getattr_class.<locals>.CallA   c                     g r5   r   r0   s     r   r2   @Get_argspecTest.test_buggy_getattr_class.<locals>.CallA.__call__       r   r   Nr[   r   r   r   CallAr          r   r   c                       \ rS rSrS rSrg)7Get_argspecTest.test_buggy_getattr_class.<locals>.CallB   c                     g r5   r   )ouir:   r   r   s       r   r2   @Get_argspecTest.test_buggy_getattr_class.<locals>.CallB.__call__   r   r   r   Nr[   r   r   r   CallBr      r   r   r   r]   r   z	(a, b, c)r   )rc   r   rN   rO   )r   r   r   r   r   r   s         r   test_buggy_getattr_class(Get_argspecTest.test_buggy_getattr_class   s    	! 	!	F 		F 	 $[1E;3G#XrNUWf,="Wk24JD 43  $6 434 43s   B
B	c                     " S S[         5      n " S SUS9nU[        [         5      4U[        4U" 5       S44 H8  u  p4U R                  X4S9   U R	                  [        U5      U5        S S S 5        M:     g ! , (       d  f       ML  = f)Nc                   N    \ rS rSr\" 0 R
                  0 R                  5      rSrg)2Get_argspecTest.test_metaclass_class.<locals>.Type   r   N)	r@   rA   rB   rC   property__getitem____setitem__	__class__rH   r   r   r   Typer      s     @Ir   r  c                       \ rS rSrSrSrg)4Get_argspecTest.test_metaclass_class.<locals>.Object   r  r   N)r@   rA   rB   rC   	__slots__rH   r   r   r   Objectr     s    #Ir   r  )	metaclassr]   r   )typerO   rc   r   rN   )r   r  r  r   r   s        r   test_metaclass_class$Get_argspecTest.test_metaclass_class   sw    	A4 	A	$t 	$!8D>2V[4I#XrN,JD43  $6 43,33s   A77
B	c                     SSSS/ 0 4 H6  nU R                  US9   U R                  [        U5      S5        S S S 5        M8     g ! , (       d  f       MJ  = f)Nr   g        0   0)rP   r]   )r   rN   rO   )r   rP   s     r   test_non_callables"Get_argspecTest.test_non_callables  sJ    sCr2.C#&  #3 '& /&&s   A
A	r   N)r@   rA   rB   rC   unittestskipIfr   ri   rn   r   r   r   r   r   r   r   r   r   r   r   r   r  r  rH   r   r   r   rJ   rJ   .   s     __)MO,%O,%\66<R
 __)MO"O"IA"7=71:7
7"74r   rJ   c                        \ rS rSrS rS rSrg)Get_entityTesti  c                 N    U R                  [        R                  " S5      5        g )Nz1/0)assertIsNoner   
get_entityr   s    r   test_bad_entityGet_entityTest.test_bad_entity  s    ',,U34r   c                 X    U R                  [        R                  " S5      [        5        g )Nint)assertIsr   r  r  r   s    r   test_good_entityGet_entityTest.test_good_entity  s    g((/5r   r   N)r@   rA   rB   rC   r  r  rH   r   r   r   r  r    s    56r   r  c                       \ rS rSrSrS rSrg)
mock_Shelli  z.Return mock sufficient to pass to hyperparser.c                 V    [        S S9Ul        Xl        SU l        SU l        SU l        g )N)return_valuez>>>       )r   tag_prevrangetextprompt_last_lineindentwidthtabwidth)r   r'  s     r   r   mock_Shell.__init__  s+    !t4	 &r   )r)  r(  r*  r'  N)r@   rA   rB   rC   rD   r   rH   r   r   r   r!  r!    s
    4r   r!  c                        \ rS rSrS rS rSrg)mock_TipWindowi"  c                     g r5   r   r   s    r   r   mock_TipWindow.__init__#  s    r   c                 l    X#4U l         [        [        UR                  S5      5      u  U l        U l        g )N.)r    mapr  split	parenlineparencol)r   r'  	parenleft
parenrights       r   showtipmock_TipWindow.showtip&  s*    )	(+C1E(F%r   )r    r5  r4  N)r@   rA   rB   rC   r   r8  rH   r   r   r   r-  r-  "  s    Gr   r-  c                   *    \ rS rSrS rSS jrS rSrg)WrappedCalltipi+  c                     [        5       $ r5   )r-  r   s    r   _make_tk_calltip_window&WrappedCalltip._make_tk_calltip_window,  s    r   Nc                 `    U R                   (       a  S U l         U =R                  S-  sl        g g )N   )active_calltiptips_removed)r   events     r   remove_calltip_window$WrappedCalltip.remove_calltip_window/  s)    "&D" r   c                     g)NrE   r   )r   
expressions     r   	fetch_tipWrappedCalltip.fetch_tip4  s    r   )rA  r5   )r@   rA   rB   rC   r=  rD  rH  rH   r   r   r   r;  r;  +  s     #
r   r;  c                   H    \ rS rSr\S 5       rS rS rS rS r	S r
S rS	rg
)CalltipTesti8  c                 h    [        5       U l        [        [        U R                  5      5      U l        g r5   )r   r'  r;  r!  ct)r9   s    r   
setUpClassCalltipTest.setUpClass:  s     6
388 45r   c                     U R                   R                  SS5        S U R                  l        SU R                  l        g )Nz1.0endr   )r'  deleterM  rA  rB  r   s    r   setUpCalltipTest.setUp?  s.    		&!% r   c                 R   U R                   R                  nU R                  R                  SS5        U" S5        U R                   R                  U l        U" U 5        U R                  R                  SS5        U" S5        U R                  U R                   R                  S 5        g )Ng      ?zf(Finsert))rM  open_calltipr'  rV  rA  rE   r  )r   testfuncopentips      r   
open_closeCalltipTest.open_closeE  sy    ''&&		d#77))		3'$''00$7r   c                 ,    S nU R                  U5        g )Nc                 P    U R                  U R                  R                  S5        g )N)z1.1z1.end)rN   rE   r    r   s    r   r    )CalltipTest.test_open_close.<locals>.argsQ  s    TXX]],<=r   r[  r$   s     r   test_open_closeCalltipTest.test_open_closeP  s    	>r   c                 ,    S nU R                  U5        g )Nc                    S HU  nU R                   R                  SS5        U R                  R                  S5        U R                  R                  S5        MW     U R	                  U R                  R
                  U R                  5        g )NabcrV  r:   T)r'  rV  rM  rX  r  rA  rE   r   chars     r   force.CalltipTest.test_repeated_force.<locals>.forceV  sb    		  3/$$T*$$T*  MM$''00$((;r   r`  )r   rh  s     r   test_repeated_forceCalltipTest.test_repeated_forceU  s    	< 	r   c                 ,    S nU R                  U5        g )Nc                    S H  nU R                  US9   U R                  R                  SU5        S H  nU R                  R                  SU5        M!     U R                  U R                  R
                  U R                  5        S S S 5        M     U R                  R                  SS5        g ! , (       d  f       M  = f)N)r:   ')contextrV  (()())rn  )r   r'  rV  r  rM  rA  rE   )r   ro  rg  s      r   parens0CalltipTest.test_repeated_parens.<locals>.parens_  s    #\\'\2II$$Xw7 (		((48 !)MM$''"8"8$((C	 32 $ IIXs+ 32s   A2B00
B?	r`  )r   rq  s     r   test_repeated_parens CalltipTest.test_repeated_parens^  s    	, 	r   c                 ,    S nU R                  U5        g )Nc                    U R                   R                  SS5        S H  nU R                   R                  SU5        M!     U R                  U R                  R                  U R
                  5        U R                   R                  SS5        g )NrV  z# rp  
)r'  rV  r  rM  rA  rE   rf  s     r   comment0CalltipTest.test_comment_parens.<locals>.commentj  sd    IIXt, 		  40 !MM$''00$((;IIXt,r   r`  )r   rx  s     r   test_comment_parensCalltipTest.test_comment_parensi  s    	- 	 r   )rE   N)r@   rA   rB   rC   rF   rN  rS  r[  ra  rj  rs  rz  rH   r   r   r   rK  rK  8  s2    6 6!	8
	 !r   rK  __main__   )	verbosity)rD   idlelibr   r  unittest.mockr   rl   ra   rd   idlelib.idle_test.mock_tkr   test.supportr   r   r   _default_callable_argspecrc   get_argspecrO   TestCaserJ   r  r!  r-  Calltipr;  rK  r@   mainr   r   r   <module>r     s          	 * - 6 T//\4h'' \4~6X&& 6 G G
W__ 
8!(## 8!v zMMA r   