a  ze3@sdZddlmZddlZddlmZddlZddlZddlZddl m Z GdddZ e Z ej ZejZGdd d ejZGd d d ejZGd d d ZGdddZGdddejZGdddejZedkrejdddS)zTest calltip, coverage 76%)calltipN)Mock)Textc@seZdZdZdZd"ddZde_ddZd e_d#d d Zd e_d dZde_ddZ de _d$ddZ de _ddZ de _ddZ de _ddZ eddZed d!ZdS)%TCdocz (ai=None, *b)NcGsdSrNselfaibrrR/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/idle_test/test_calltip.py__init__z TC.__init__z(self, ai=None, *b)cCsdSrrr rrr t1rzTC.t1(self)cCsdSrrr rrr t2rzTC.t2z(self, ai, b=None)cGsdSrr)r r argsrrr t3rzTC.t3z(self, ai, *args)cGsdSrrr rrrr t4rzTC.t4z (self, *args)cOsdSrr)r r r rkwrrr t5rzTC.t5z(self, ai, b=None, *args, **kw)cCsdSrr)nor rrr t6rzTC.t6z (no, self)cCsdSrrr Zcirrr __call__rz TC.__call__z (self, ci)cCsdSNrrrrr nd rzTC.ndcCsdSrr)clsarrr cm"szTC.cmcCsdSrr)r rrr sm$szTC.sm)N)N)N)__name__ __module__ __qualname____doc__tiprrrrrrrrr classmethodr" staticmethodr#rrrr r s.    rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdS) Get_argspecTestcsfdd}Gdddt}Gddd}|jdurF||d|j|tjd|tjd d }|tjd |||jd ||gjd ||tjd ||tt d}|tj d||j ddS)Ncst||dSr) assertEqualget_spec)objoutrrr tiptest7sz.Get_argspecTest.test_builtins..tiptestc@seZdZdZdS)z+Get_argspecTest.test_builtins..Listz List() docN)r$r%r&r'rrrr List;rr1c@seZdZdZdS)z)Get_argspecTest.test_builtins..SBNr$r%r&rrrrr SB>rr3z(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, /)zmethod(function, instance)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...) listr'__new__rappendtypes MethodType default_tiprecompilesub)r r0r1r3Z append_docprrr test_builtins5s0      zGet_argspecTest.test_builtinscCs"tjjdur|ttjddS)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().)textwrapZ TextWrapperr'r,r-rrrr test_signature_wrap`s z#Get_argspecTest.test_signature_wrapc Csddd}ddd}ddd}tj}d |d }d |d }d |d |d }||f||f||ffD]F\}} |j|| d |t|| Wdqf1s0YqfdS)NdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSsdSrrsrrr fooosz3Get_argspecTest.test_properly_formated..foocSsdS)z Hello GuidoNrrCrrr barrsz3Get_argspecTest.test_properly_formated..bardbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcSsdSrr)rDzrrr bazvsz3Get_argspecTest.test_properly_formated..bazzV(s='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa zaaaaaaaaaaaaaaaaaaa')z!aaaaaaaaaaaaaaaaaaa') Hello GuidozRaaaaaaaaaaaaaaaaaaa', z='bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb z.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'))funcr)rB)rB)rBrG)rZ_INDENTsubTestr,r-) r rErFrIindentZsfooZsbarZsbazrJrrrr test_properly_formatedms4   z&Get_argspecTest.test_properly_formatedcCs6dd}d|_|t|ddtjdddS)NcSsdSrrrrrr frz2Get_argspecTest.test_docline_truncation..fA,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz() r!z...)r'r,r-rZ _MAX_COLSr rNrrr test_docline_truncationsz'Get_argspecTest.test_docline_truncationcCsL|ttd|ttddd}d|_|t|ddtjdS)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 objectcSsdSrrrrrr rNrz3Get_argspecTest.test_multiline_docstring..fza a a a a a a a a a a a a a a ()z a)r,r-rangebytesr'rZ _MAX_LINESrPrrr test_multiline_docstrings z(Get_argspecTest.test_multiline_docstringc Csdd}d|_ddd}d|_dd}d |_d d }d |_dd d}d|_|jdurXdnd}|||||tfD]F}|j|d&|t||j|Wdql1s0YqldS)NcSsdSrrrrrr rrz*Get_argspecTest.test_functions..t1rRcSsdSrr)r!r rrr rrz*Get_argspecTest.test_functions..t2z (a, b=None)cWsdSrr)r!rrrr rrz*Get_argspecTest.test_functions..t3z (a, *args)cWsdSrrrrrr rrz*Get_argspecTest.test_functions..t4(*args)c_sdSrr)r!r rrrrr rrz*Get_argspecTest.test_functions..t5z(a, b=None, *args, **kw) docr4)rJ)N)N)r(r'rrKr,r-)r rrrrrrrJrrr test_functionss  zGet_argspecTest.test_functionsc Cstjdurdnd}tjtjtjtjtjtjtjfD]F}|j |d&| t ||j |Wdq21sn0Yq2| t tj d|| t tjd|dS)NrXr4)meth(a)z(b))rr'rrrrrrrrKr,r-r(r"r#)r rrZrrr test_methodss $6zGet_argspecTest.test_methodsc Cstjdurdnd}tjdftjdftjdftjdftdftjdffD]J\}}|j||d$| t |||WdqD1s0YqDdS) NrXr4rRrWr(ci)r[rZmtip) rr'tcrrrrr"rKr,r-)r rrZr_rrr test_bound_methodss z"Get_argspecTest.test_bound_methodsc CstGddd}|}|jdf|jdffD]F\}}|j||d |t||Wdq(1sd0Yq(dS)Nc@seZdZddZdS)z1Get_argspecTest.test_starred_parameter..CcWsdSrrrVrrr m1rz4Get_argspecTest.test_starred_parameter..C.m1N)r$r%r&rbrrrr CsrcrWr^)rbrKr,r-)r rccrZr_rrr test_starred_parameters z&Get_argspecTest.test_starred_parametercCsLGddd}Gddd}tj}|t|j||t||dS)Nc@seZdZddZdS)z7Get_argspecTest.test_invalid_method_get_spec..Cc[sdSrr)kwargsrrr m2rz:Get_argspecTest.test_invalid_method_get_spec..C.m2N)r$r%r&rgrrrr rcsrcc@seZdZddZdS)z:Get_argspecTest.test_invalid_method_get_spec..TestcSsdSrr)r!rrr rrzCGet_argspecTest.test_invalid_method_get_spec..Test.__call__Nr2rrrr Testsrh)rZ_invalid_methodr,r-rg)r rcrhr_rrr test_invalid_method_get_specs z,Get_argspecTest.test_invalid_method_get_speccCsd}tjd|dksJdS)Nu(AΑАאاअḀあ, a)r4r[)rZ _first_paramr=)r Zunirrr test_non_ascii_namesz#Get_argspecTest.test_non_ascii_namec Cs`tjdftjdffD]F\}}|j||d |t||Wdq1sP0YqdS)NrrRr^)rrr`rKr,r-)r rZr_rrr test_no_docstringsz!Get_argspecTest.test_no_docstringc CsGddd}Gddd|}Gddd|}|tf|tf|df|df|d ffD]F\}}|j||d  |t||WdqV1s0YqVdS) Nc@seZdZddZdS)z8Get_argspecTest.test_buggy_getattr_class..NoCallcSstdSr) IndexError)r namerrr __getattr__szDGet_argspecTest.test_buggy_getattr_class..NoCall.__getattr__N)r$r%r&rnrrrr NoCallsroc@seZdZddZdS)z7Get_argspecTest.test_buggy_getattr_class..CallAcSsdSrrrrrr rsz@Get_argspecTest.test_buggy_getattr_class..CallA.__call__Nr2rrrr CallAsrpc@seZdZddZdS)z7Get_argspecTest.test_buggy_getattr_class..CallBcSsdSrr)Zouir!r rdrrr rsz@Get_argspecTest.test_buggy_getattr_class..CallB.__call__Nr2rrrr CallBsrqr4r]z (a, b, c)r^)r:rKr,r-)r rorprqrZr_rrr test_buggy_getattr_classs  z(Get_argspecTest.test_buggy_getattr_classc CsGdddt}Gddd|d}|ttf|tf|dffD]F\}}|j||d |t||Wdq>1sz0Yq>dS)Nc@seZdZeijijZdS)z2Get_argspecTest.test_metaclass_class..TypeN)r$r%r&property __getitem__ __setitem__ __class__rrrr Typesrwc@seZdZdZdS)z4Get_argspecTest.test_metaclass_class..ObjectrvN)r$r%r& __slots__rrrr Objectsry) metaclassr4r^)typer-r:rKr,)r rwryrZr_rrr test_metaclass_classs z$Get_argspecTest.test_metaclass_classc CsVddddgifD]@}|j|d |t|dWdq1sF0YqdS)Nrg00)r.r4)rKr,r-)r r.rrr test_non_callablessz"Get_argspecTest.test_non_callablesN)r$r%r&r?rArMrQrUrYr\rarerirjrkrrr|rrrrr r+-s+     r+c@seZdZddZddZdS)Get_entityTestcCs|tddS)Nz1/0) assertIsNoner get_entityrrrr test_bad_entityszGet_entityTest.test_bad_entitycCs|tdtdS)Nint)assertIsrrrrrrr test_good_entityszGet_entityTest.test_good_entityN)r$r%r&rrrrrr rsrc@seZdZdZddZdS) mock_Shellz.Return mock sufficient to pass to hyperparser.cCs(tdd|_||_d|_d|_d|_dS)N)Z return_valuez>>> )rZ tag_prevrangetextZprompt_last_lineZ indentwidthZtabwidth)r rrrr rs  zmock_Shell.__init__N)r$r%r&r'rrrrr rsrc@seZdZddZddZdS)mock_TipWindowcCsdSrrrrrr rszmock_TipWindow.__init__cCs&||f|_tt|d\|_|_dS)N.)rmaprsplitZ parenlineZparencol)r rZ parenleftZ parenrightrrr showtips zmock_TipWindow.showtipN)r$r%r&rrrrrr rsrc@s&eZdZddZdddZddZdS) WrappedCalltipcCstSr)rrrrr _make_tk_calltip_window#sz&WrappedCalltip._make_tk_calltip_windowNcCs|jrd|_|jd7_dS)N)active_calltip tips_removed)r eventrrr remove_calltip_window&sz$WrappedCalltip.remove_calltip_windowcCsdS)Nr(r)r Z expressionrrr fetch_tip+szWrappedCalltip.fetch_tip)N)r$r%r&rrrrrrr r"s rc@sHeZdZeddZddZddZddZd d Zd d Z d dZ dS) CalltipTestcCst|_tt|j|_dSr)rrrrct)r rrr setUpClass1szCalltipTest.setUpClasscCs"|jddd|j_d|j_dS)Nz1.0endr)rdeleterrrrrrr setUp6szCalltipTest.setUpcCsZ|jj}|jdd|d|jj|_|||jdd|d||jjddS)Ng?zf(Finsert))r open_calltiprrrr(r)r ZtestfuncZopentiprrr open_close<s zCalltipTest.open_closecCsdd}||dS)NcSs||jjddS)N)z1.1z1.end)r,r(rrrrr rHsz)CalltipTest.test_open_close..argsrrrrr test_open_closeGszCalltipTest.test_open_closecCsdd}||dS)NcSsFdD]*}|jdd|jd|jdq||jj|jdS)Nabcrr!T)rrrrrrr(r charrrr forceMs  z.CalltipTest.test_repeated_force..forcer)r rrrr test_repeated_forceLszCalltipTest.test_repeated_forcecCsdd}||dS)Nc SsdD]h}|j|dH|jd|dD]}|jd|q(||jj|jWdq1sb0Yq|jdddS)N)r!')contextr(()())r)rKrrrrrr()r rrrrr parensVs2z0CalltipTest.test_repeated_parens..parensr)r rrrr test_repeated_parensUsz CalltipTest.test_repeated_parenscCsdd}||dS)NcSsJ|jdddD]}|jd|q||jj|j|jdddS)Nrz# r )rrrrrr(rrrr commentas z0CalltipTest.test_comment_parens..commentr)r rrrr test_comment_parens`szCalltipTest.test_comment_parensN) r$r%r&r)rrrrrrrrrrr r/s    r__main__) verbosity)r'ZidlelibrZunittestZ unittest.mockrr@r8r;Zidlelib.idle_test.mock_tkrrr`Z_default_callable_argspecr:Z get_argspecr-ZTestCaser+rrrZCalltiprrr$mainrrrr s(   X    ;