B YI~d�&�@s�ddlmZddlZddlZddlZddlZGdd�d�Ze�ZejZ ej Z Gdd�dej �Z Gdd�dej �Zed kr�ejd d �dS) �)�calltipNc@s�eZdZdZd!dd�Zde_dd�Zde_d"d d �Zd e_d d �Zde_dd�Zde_d#dd�Z de _dd�Z de _dd�Z de _dd�Z e dd��Zedd ��ZdS)$�TCz (ai=None, *b)NcGsdS)N�)�self�ai�brr�C/opt/alt/python37/lib64/python3.7/idlelib/idle_test/test_calltip.py�__init__�z TC.__init__z(self, ai=None, *b)cCsdS)Nr)rrrr�t1r zTC.t1z(self)cCsdS)Nr)rrrrrr�t2r zTC.t2z(self, ai, b=None)cGsdS)Nr)rr�argsrrr�t3r zTC.t3z(self, ai, *args)cGsdS)Nr)rr rrr�t4r zTC.t4z (self, *args)cOsdS)Nr)rrrr �kwrrr�t5r zTC.t5z(self, ai, b=None, *args, **kw)cCsdS)Nr)�norrrr�t6r zTC.t6z (no, self)cCsdS)Nr)r�cirrr�__call__r z TC.__call__z (self, ci)cCsdS)Nr)rrrr�ndr zTC.ndcCsdS)Nr)�cls�arrr�cm szTC.cmcCsdS)Nr)rrrr�sm"szTC.sm)N)N)N)�__name__� __module__� __qualname__�tipr r r rrrrrr� classmethodr� staticmethodrrrrrr s(    rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Zd d�Z dd�Z dd�Z dd�Z dd�Z dd�Zdd�Zdd�Zdd�ZdS) �Get_argspecTestcs��fdd�}Gdd�dt�}Gdd�d�}|jdk rN||dtj�d|j���|tjd �|tjd tjdd �tjd }|tjd |�||jd |�|gjd|�|tjd�||�t �t � d�}|t j d�||j d�dS)Ncs��t|�|�dS)N)� assertEqual�get_spec)�obj�out)rrr�tiptest5sz.Get_argspecTest.test_builtins..tiptestc@s eZdZdS)z+Get_argspecTest.test_builtins..ListN)rrrrrrr�List9sr'c@seZdZdZdS)z)Get_argspecTest.test_builtins..SBN)rrrrrrrr�SB<sr(z(iterable=(), /)� zY(*args, **kwargs) Create and return a new object. See help(type) for accurate signature.z(self, /, *args, **kwargs)z>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__rZ_argument_positional�__new__r �append�types� MethodType� default_tip�re�compile�sub)rr&r'r(Z append_doc�pr)rr� test_builtins3s.      zGet_argspecTest.test_builtinscCs"tjjdk r|�ttj�d�dS)Nz�(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=' [...]'))�textwrapZ TextWrapperr,r"r#)rrrr�test_signature_wrap`s  z#Get_argspecTest.test_signature_wrapc Cs�ddd�}ddd�}ddd�}tj}d |d }d |d }d |d |d }xL||f||f||fgD]2\}} |j|| d��|�t|�| �WdQRXqhWdS)N�daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSsdS)Nr)�srrr�foojsz3Get_argspecTest.test_properly_formated..foocSsdS)Nr)r:rrr�barmsz3Get_argspecTest.test_properly_formated..bar�dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcSsdS)Nr)r:�zrrr�bazqsz3Get_argspecTest.test_properly_formated..bazzV(s='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa zaaaaaaaaaaaaaaaaaaa')z!aaaaaaaaaaaaaaaaaaa') Hello GuidozRaaaaaaaaaaaaaaaaaaa', z='bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb z.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'))�func�doc)r9)r9)r9r=)rZ_INDENT�subTestr"r#) rr;r<r?�indentZsfooZsbarZsbazr@rArrr�test_properly_formatedhs      z&Get_argspecTest.test_properly_formatedcCs6dd�}d|_|�t|�ddtjdd���dS)NcSsdS)Nrrrrr�f�r z2Get_argspecTest.test_docline_truncation..fA,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz() r�z...)r,r"r#rZ _MAX_COLS)rrErrr�test_docline_truncation�sz'Get_argspecTest.test_docline_truncationcCsL|�tt�d�|�tt�d�dd�}d|_|�t|�ddtj�dS)NzFrange(stop) -> range object range(start, stop[, step]) -> range objectz�bytes(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 objectcSsdS)NrrrrrrE�r z3Get_argspecTest.test_multiline_docstring..fza a a a a a a a a a a a a a a z()z a)r"r#�range�bytesr,rZ _MAX_LINES)rrErrr�test_multiline_docstring�s  z(Get_argspecTest.test_multiline_docstringc Cs�dd�}d|_ddd�}d|_dd�}d |_d d �}d |_dd d�}d|_|jdk rXdnd}xF|||||tfD]2}|j|d��|�t|�|j|�WdQRXqnWdS)NcSsdS)Nrrrrrr �r z*Get_argspecTest.test_functions..t1z()cSsdS)Nr)rrrrrr �r z*Get_argspecTest.test_functions..t2z (a, b=None)cWsdS)Nr)rr rrrr�r z*Get_argspecTest.test_functions..t3z (a, *args)cWsdS)Nr)r rrrr�r z*Get_argspecTest.test_functions..t4z(*args)c_sdS)Nr)rrr rrrrr�r z*Get_argspecTest.test_functions..t5z(a, b=None, *args, **kw)z docr*)r@)N)N)rr,rrBr"r#)rr r rrrrAr@rrr�test_functions�s  zGet_argspecTest.test_functionsc Cs�tjdk rdnd}xVtjtjtjtjtjtjtjfD]2}|j |d��|� t |�|j |�WdQRXq4W|� t tj �d|�|� t tj�d|�dS)Nz docr*)�methz(a)z(b))rr,r r rrrrrrBr"r#rrr)rrArLrrr� test_methods�s &$zGet_argspecTest.test_methodsc Cs�tjdk rdnd}xltjdftjdftjdftjdftdftjdffD]6\}}|j||d��|� t |�||�WdQRXqFWdS) Nz docr*z()z(*args)z(self)z(ci)z(a))rL�mtip) rr,�tcr rrrrrBr"r#)rrArLrNrrr�test_bound_methods�s z"Get_argspecTest.test_bound_methodsc CsdGdd�d�}|�}xJ|jdf|jdffD]2\}}|j||d��|�t|�|�WdQRXq*WdS)Nc@seZdZdd�ZdS)z1Get_argspecTest.test_starred_parameter..CcWsdS)Nr)r rrr�m1�r z4Get_argspecTest.test_starred_parameter..C.m1N)rrrrQrrrr�C�srRz(*args))rLrN)rQrBr"r#)rrR�crLrNrrr�test_starred_parameter�s z&Get_argspecTest.test_starred_parametercCsLGdd�d�}Gdd�d�}tj}|�t|�j�|�|�t|��|�dS)Nc@seZdZdd�ZdS)z7Get_argspecTest.test_invalid_method_get_spec..Cc[sdS)Nr)�kwargsrrr�m2�r z:Get_argspecTest.test_invalid_method_get_spec..C.m2N)rrrrVrrrrrR�srRc@seZdZdd�ZdS)z:Get_argspecTest.test_invalid_method_get_spec..TestcSsdS)Nr)rrrrr�r zCGet_argspecTest.test_invalid_method_get_spec..Test.__call__N)rrrrrrrr�Test�srW)rZ_invalid_methodr"r#rV)rrRrWrNrrr�test_invalid_method_get_spec�s z,Get_argspecTest.test_invalid_method_get_speccCsd}dS)Nu(AΑÐ�×�اअḀã�‚, a)r)rZunirrr�test_non_ascii_name�sz#Get_argspecTest.test_non_ascii_namec CsPxJtjdftjdffD]2\}}|j||d��|�t|�|�WdQRXqWdS)Nz(self)z())rLrN)rrrOrBr"r#)rrLrNrrr�test_no_docstring�sz!Get_argspecTest.test_no_docstringc Cs�Gdd�d�}Gdd�d|�}Gdd�d|�}x^|tf|tf|�df|�df|�d ffD]2\}}|j||d ��|�t|�|�WdQRXqXWdS) Nc@seZdZdd�ZdS)z8Get_argspecTest.test_buggy_getattr_class..NoCallcSst�dS)N)� IndexError)r�namerrr� __getattr__�szDGet_argspecTest.test_buggy_getattr_class..NoCall.__getattr__N)rrrr]rrrr�NoCall�sr^c@seZdZdd�ZdS)z7Get_argspecTest.test_buggy_getattr_class..CallAcSsdS)Nr)rrrrrr�sz@Get_argspecTest.test_buggy_getattr_class..CallA.__call__N)rrrrrrrr�CallA�sr_c@seZdZdd�ZdS)z7Get_argspecTest.test_buggy_getattr_class..CallBcSsdS)Nr)ZouirrrSrrrr�sz@Get_argspecTest.test_buggy_getattr_class..CallB.__call__N)rrrrrrrr�CallB�sr`r*z(ci)z (a, b, c))rLrN)r1rBr"r#)rr^r_r`rLrNrrr�test_buggy_getattr_class�sz(Get_argspecTest.test_buggy_getattr_classc CsvGdd�dt�}Gdd�d|d�}xN|tf|tf|�dffD]2\}}|j||d��|�t|�|�WdQRXq.TypeN)rrr�property� __getitem__� __setitem__� __class__rrrr�Type�srfc@seZdZdZdS)z4Get_argspecTest.test_metaclass_class..ObjectreN)rrr� __slots__rrrr�Object�srh)� metaclassr*)rLrN)�typer1rBr"r#)rrfrhrLrNrrr�test_metaclass_class�s z$Get_argspecTest.test_metaclass_classc CsFx@ddddgifD],}|j|d��|�t|�d�WdQRXqWdS)Nrg�0�0)r$r*)rBr"r#)rr$rrr�test_non_callables�sz"Get_argspecTest.test_non_callablesN)rrrr6r8rDrGrJrKrMrPrTrXrYrZrarkrnrrrrr!+s-    r!c@seZdZdd�Zdd�ZdS)�Get_entityTestcCs|�t�d��dS)Nz1/0)Z assertIsNoner� get_entity)rrrr�test_bad_entityszGet_entityTest.test_bad_entitycCs|�t�d�t�dS)N�int)ZassertIsrrprr)rrrr�test_good_entityszGet_entityTest.test_good_entityN)rrrrqrsrrrrro�sro�__main__�)� verbosity)ZidlelibrZunittestr7r/r2rrOZ_default_callable_argspecr1Z get_argspecr#ZTestCaser!ror�mainrrrr�s U