a  ze3@sddlmZddlZddlmZddlZddlZddlZddlm Z GdddZ e Z ej Z ejZGdddejZGd d d ejZGd d d ZGd ddZGdddejZGdddejZedkrejdddS))calltipN)Mock)Textc@seZdZdZd!ddZde_ddZde_d"d d Zd e_d d Zde_ddZde_d#ddZ de _ddZ de _ddZ de _ddZ e ddZedd ZdS)$TCz (ai=None, *b)NcGsdSNselfaibrrR/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)cCsdSrrrrrr 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)cCsdSrrrrrr nd rzTC.ndcCsdSrr)clsarrr cm"szTC.cmcCsdSrr)r rrr sm$szTC.sm)N)N)N)__name__ __module__ __qualname__tipr rrrrrrrr 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@s eZdZdS)z+Get_argspecTest.test_builtins..ListN)r"r#r$rrrr List;rr.c@seZdZdZdS)z)Get_argspecTest.test_builtins..SBNr"r#r$rrrrr SB>rr0z(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...) list__doc____new__r appendtypes MethodType default_tiprecompilesub)r r-r.r0Z 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 TextWrapperr3r)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..foocSsdSrrrArrr barrsz3Get_argspecTest.test_properly_formated..bardbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcSsdSrr)rBzrrr bazvsz3Get_argspecTest.test_properly_formated..bazzV(s='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa zaaaaaaaaaaaaaaaaaaa')z!aaaaaaaaaaaaaaaaaaa') Hello GuidozRaaaaaaaaaaaaaaaaaaa', z='bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb z.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'))funcdoc)r@)r@)r@rE)rZ_INDENTsubTestr)r*) r rCrDrGindentZsfooZsbarZsbazrHrIrrr test_properly_formatedms4   z&Get_argspecTest.test_properly_formatedcCs6dd}d|_|t|ddtjdddS)NcSsdSrrrrrr frz2Get_argspecTest.test_docline_truncation..fA,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz() rz...)r3r)r*rZ _MAX_COLSr rMrrr 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 rMrz3Get_argspecTest.test_multiline_docstring..fza a a a a a a a a a a a a a a ()z a)r)r*rangebytesr3rZ _MAX_LINESrOrrr 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..t1rQcSsdSrr)rr rrr rrz*Get_argspecTest.test_functions..t2z (a, b=None)cWsdSrr)rrrrr rrz*Get_argspecTest.test_functions..t3z (a, *args)cWsdSrrrrrr rrz*Get_argspecTest.test_functions..t4(*args)c_sdSrr)rr rrrrr rrz*Get_argspecTest.test_functions..t5z(a, b=None, *args, **kw) docr1)rH)N)N)r%r3rrJr)r*)r rrrrrrIrHrrr test_functionss  zGet_argspecTest.test_functionsc Cstjdurdnd}tjtjtjtjtjtjtjfD]F}|j |d&| t ||j |Wdq21sn0Yq2| t tj d|| t tjd|dS)NrWr1)meth(a)z(b))rr3rrrrrrrrJr)r*r%r r!)r rIrYrrr test_methodss $6zGet_argspecTest.test_methodsc Cstjdurdnd}tjdftjdftjdftjdftdftjdffD]J\}}|j||d$| t |||WdqD1s0YqDdS) NrWr1rQrVr(ci)rZrYmtip) rr3tcrrrrr rJr)r*)r rIrYr^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..CcWsdSrrrUrrr m1rz4Get_argspecTest.test_starred_parameter..C.m1N)r"r#r$rarrrr CsrbrVr])rarJr)r*)r rbcrYr^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$rfrrrr rbsrbc@seZdZddZdS)z:Get_argspecTest.test_invalid_method_get_spec..TestcSsdSrr)rrrr rrzCGet_argspecTest.test_invalid_method_get_spec..Test.__call__Nr/rrrr Testsrg)rZ_invalid_methodr)r*rf)r rbrgr^rrr test_invalid_method_get_specs z,Get_argspecTest.test_invalid_method_get_speccCsd}dS)Nu(AΑАאاअḀあ, a)r)r Zunirrr test_non_ascii_namesz#Get_argspecTest.test_non_ascii_namec Cs`tjdftjdffD]F\}}|j||d |t||Wdq1sP0YqdS)NrrQr])rrr_rJr)r*)r rYr^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$rmrrrr NoCallsrnc@seZdZddZdS)z7Get_argspecTest.test_buggy_getattr_class..CallAcSsdSrrrrrr rsz@Get_argspecTest.test_buggy_getattr_class..CallA.__call__Nr/rrrr CallAsroc@seZdZddZdS)z7Get_argspecTest.test_buggy_getattr_class..CallBcSsdSrr)Zouirr rcrrr rsz@Get_argspecTest.test_buggy_getattr_class..CallB.__call__Nr/rrrr CallBsrpr1r\z (a, b, c)r])r8rJr)r*)r rnrorprYr^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 Typesrvc@seZdZdZdS)z4Get_argspecTest.test_metaclass_class..ObjectruN)r"r#r$ __slots__rrrr Objectsrx) metaclassr1r])typer*r8rJr))r rvrxrYr^rrr test_metaclass_classs z$Get_argspecTest.test_metaclass_classc CsVddddgifD]@}|j|d |t|dWdq1sF0YqdS)Nrg00)r+r1)rJr)r*)r r+rrr test_non_callablessz"Get_argspecTest.test_non_callablesN)r"r#r$r=r?rLrPrTrXr[r`rdrhrirjrqr{r~rrrr 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@seZdZddZdS) mock_ShellcCs(tdd|_||_d|_d|_d|_dS)N)Z return_valuez>>> )rZ tag_prevrangetextZprompt_last_lineZ indentwidthZtabwidth)r rrrr r s  zmock_Shell.__init__N)r"r#r$r rrrr rsrc@seZdZddZddZdS)mock_TipWindowcCsdSrrrrrr r szmock_TipWindow.__init__cCs&||f|_tt|d\|_|_dS)N.)rmaprsplitZ parenlineZparencol)r rZ parenleftZ parenrightrrr showtips zmock_TipWindow.showtipN)r"r#r$r rrrrr 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)rrrr 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)NabcrrT)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)rJrrrrrr%)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)ZidlelibrZunittestZ unittest.mockrr>r6r9Zidlelib.idle_test.mock_tkrrr_Z_default_callable_argspecr8Z get_argspecr*ZTestCaser(rrrZCalltiprrr"mainrrrr s&   X    ;