B
    v9a}$                 @   s   d Z ddlmZ ddlZddlZddlZddlZG dd dZe Zej	Z
ejZG dd dejZG dd	 d	ejZed
krejdd dS )zTest calltip, coverage 60%    )calltipNc               @   s   e Zd ZdZdZd"ddZde_dd Zd	e_d#d
dZde_dd Zde_dd Z	de	_d$ddZ
de
_dd Zde_dd Zde_dd Zedd Zed d! ZdS )%TCdocz(ai=None, *b)Nc             G   s   dS )r   N )selfaibr   r   "/usr/lib/python3.7/test_calltip.py__init__       zTC.__init__z(self, ai=None, *b)c             C   s   dS )r   Nr   )r   r   r   r	   t1   r   zTC.t1z(self)c             C   s   dS )r   Nr   )r   r   r   r   r   r	   t2   r   zTC.t2z(self, ai, b=None)c             G   s   dS )r   Nr   )r   r   argsr   r   r	   t3   r   zTC.t3z(self, ai, *args)c             G   s   dS )r   Nr   )r   r   r   r   r	   t4   r   zTC.t4z(self, *args)c             O   s   dS )r   Nr   )r   r   r   r   kwr   r   r	   t5   r   zTC.t5z(self, ai, b=None, *args, **kw)c             C   s   dS )r   Nr   )nor   r   r   r	   t6   r   zTC.t6z
(no, self)c             C   s   dS )r   Nr   )r   cir   r   r	   __call__   r   zTC.__call__z
(self, ci)c             C   s   d S )Nr   )r   r   r   r	   nd   r   zTC.ndc             C   s   dS )r   Nr   )clsar   r   r	   cm    s    zTC.cmc             C   s   dS )r   Nr   )r   r   r   r	   sm"   s    zTC.sm)N)N)N)__name__
__module____qualname____doc__tipr
   r   r   r   r   r   r   r   r   classmethodr   staticmethodr   r   r   r   r	   r      s*   


r   c               @   s|   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )Get_argspecTestc                s    fdd}G dd dt }G dd d}|jd k	rN||dtj d|j  |t jd	 |t jd
tj d d  tjd }|t jd|  ||jd|  |g jd|  |tjd || t	 t
d}|t
jd ||jd d S )Nc                s     t| | d S )N)assertEqualget_spec)objout)r   r   r	   tiptest5   s    z.Get_argspecTest.test_builtins.<locals>.tiptestc               @   s   e Zd ZdZdS )z+Get_argspecTest.test_builtins.<locals>.Listz
List() docN)r   r   r   r   r   r   r   r	   List9   s    r)   c               @   s   e Zd ZdZdS )z)Get_argspecTest.test_builtins.<locals>.SBN)r   r   r   r   r   r   r   r	   SB<   s    r*   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, /)zmethod(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   r   Z_argument_positional__new__r
   appendtypes
MethodTypedefault_tiprecompilesub)r   r(   r)   r*   Z
append_docpr   )r   r	   test_builtins3   s.    

zGet_argspecTest.test_builtinsc             C   s"   t jjd k	r| tt jd d S )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%   )r   r   r   r	   test_signature_wrap`   s    z#Get_argspecTest.test_signature_wrapc       
   
   C   s   ddd}ddd}ddd}t j}d	| d
 }d	| d }d	| d | d }xL||f||f||fgD ]2\}}	| j||	d | t||	 W d Q R X qhW d S )Ndaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac             S   s   d S )Nr   )sr   r   r	   fooj   s    z3Get_argspecTest.test_properly_formated.<locals>.fooc             S   s   dS )zHello GuidoNr   )r;   r   r   r	   barm   s    z3Get_argspecTest.test_properly_formated.<locals>.bardbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc             S   s   d S )Nr   )r;   zr   r   r	   bazq   s    z3Get_argspecTest.test_properly_formated.<locals>.bazzV(s='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
zaaaaaaaaaaaaaaaaaaa')z!aaaaaaaaaaaaaaaaaaa')
Hello GuidozRaaaaaaaaaaaaaaaaaaa', z='bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
z.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'))funcr   )r:   )r:   )r:   r>   )r   Z_INDENTsubTestr$   r%   )
r   r<   r=   r@   indentZsfooZsbarZsbazrA   r   r   r   r	   test_properly_formatedh   s    


 z&Get_argspecTest.test_properly_formatedc             C   s6   dd }d|_ | t|ddtjd  d   d S )Nc               S   s   d S )Nr   r   r   r   r	   f   r   z2Get_argspecTest.test_docline_truncation.<locals>.fA,  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz()
r      z...)r   r$   r%   r   Z	_MAX_COLS)r   rE   r   r   r	   test_docline_truncation   s    z'Get_argspecTest.test_docline_truncationc             C   sL   |  ttd |  ttd dd }d|_|  t|ddtj   d S )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 objectc               S   s   d S )Nr   r   r   r   r	   rE      r   z3Get_argspecTest.test_multiline_docstring.<locals>.fza
a
a
a
a
a
a
a
a
a
a
a
a
a
a
z()z
a)r$   r%   rangebytesr   r   Z
_MAX_LINES)r   rE   r   r   r	   test_multiline_docstring   s    

z(Get_argspecTest.test_multiline_docstringc          
   C   s   dd }d|_ ddd}d|_ dd }d	|_ d
d }d|_ ddd}d|_ |jd k	rXdnd}xF|||||tfD ]2}| j|d | t||j |  W d Q R X qnW d S )Nc               S   s   dS )r   Nr   r   r   r   r	   r      r   z*Get_argspecTest.test_functions.<locals>.t1z()c             S   s   dS )r   Nr   )r   r   r   r   r	   r      r   z*Get_argspecTest.test_functions.<locals>.t2z(a, b=None)c             W   s   dS )r   Nr   )r   r   r   r   r	   r      r   z*Get_argspecTest.test_functions.<locals>.t3z
(a, *args)c              W   s   dS )r   Nr   )r   r   r   r	   r      r   z*Get_argspecTest.test_functions.<locals>.t4z(*args)c             _   s   dS )r   Nr   )r   r   r   r   r   r   r	   r      r   z*Get_argspecTest.test_functions.<locals>.t5z(a, b=None, *args, **kw)z
docr,   )rA   )N)N)r    r   r   rB   r$   r%   )r   r   r   r   r   r   r   rA   r   r   r	   test_functions   s    

zGet_argspecTest.test_functionsc          
   C   s   t jd k	rdnd}xVt jt jt jt jt jt jt jfD ]2}| j	|d | 
t||j|  W d Q R X q4W | 
tt jd|  | 
tt jd|  d S )Nz
docr,   )methz(a)z(b))r   r   r   r   r   r   r   r   r   rB   r$   r%   r    r   r   )r   r   rL   r   r   r	   test_methods   s    &$zGet_argspecTest.test_methodsc          
   C   s   t jd k	rdnd}xltjdftjdftjdftjdftdft jdffD ]6\}}| j||d | 	t
|||  W d Q R X qFW d S )	Nz
docr,   z()z(*args)z(self)z(ci)z(a))rL   mtip)r   r   tcr   r   r   r   r   rB   r$   r%   )r   r   rL   rN   r   r   r	   test_bound_methods   s    z"Get_argspecTest.test_bound_methodsc          
   C   sd   G dd d}| }xJ|j df|j dffD ]2\}}| j||d | t|| W d Q R X q*W d S )Nc               @   s   e Zd Zdd ZdS )z1Get_argspecTest.test_starred_parameter.<locals>.Cc              W   s   d S )Nr   )r   r   r   r	   m1   r   z4Get_argspecTest.test_starred_parameter.<locals>.C.m1N)r   r   r   rQ   r   r   r   r	   C   s   rR   z(*args))rL   rN   )rQ   rB   r$   r%   )r   rR   crL   rN   r   r   r	   test_starred_parameter   s
    z&Get_argspecTest.test_starred_parameterc             C   sL   G dd d}G dd d}t j}| t| j| | t| | d S )Nc               @   s   e Zd Zdd ZdS )z7Get_argspecTest.test_invalid_method_get_spec.<locals>.Cc              [   s   d S )Nr   )kwargsr   r   r	   m2   r   z:Get_argspecTest.test_invalid_method_get_spec.<locals>.C.m2N)r   r   r   rV   r   r   r   r	   rR      s   rR   c               @   s   e Zd Zdd ZdS )z:Get_argspecTest.test_invalid_method_get_spec.<locals>.Testc             S   s   d S )Nr   )r   r   r   r	   r      r   zCGet_argspecTest.test_invalid_method_get_spec.<locals>.Test.__call__N)r   r   r   r   r   r   r   r	   Test   s   rW   )r   Z_invalid_methodr$   r%   rV   )r   rR   rW   rN   r   r   r	   test_invalid_method_get_spec   s
    z,Get_argspecTest.test_invalid_method_get_specc             C   s   d}d S )Nu   (AΑАאاअḀあ, a)r   )r   Zunir   r   r	   test_non_ascii_name   s    z#Get_argspecTest.test_non_ascii_namec          
   C   sP   xJt jdftjdffD ]2\}}| j||d | t|| W d Q R X qW d S )Nz(self)z())rL   rN   )r   r   rO   rB   r$   r%   )r   rL   rN   r   r   r	   test_no_docstring   s    z!Get_argspecTest.test_no_docstringc          
   C   s   G dd d}G dd d|}G dd d|}x^|t f|t f| df| df| d	ffD ]2\}}| j||d
 | t|| W d Q R X qXW d S )Nc               @   s   e Zd Zdd ZdS )z8Get_argspecTest.test_attribute_exception.<locals>.NoCallc             S   s   t d S )N)BaseException)r   namer   r   r	   __getattr__   s    zDGet_argspecTest.test_attribute_exception.<locals>.NoCall.__getattr__N)r   r   r   r]   r   r   r   r	   NoCall   s   r^   c               @   s   e Zd Zdd ZdS )z7Get_argspecTest.test_attribute_exception.<locals>.CallAc             S   s   d S )Nr   )Zouir   r   rS   r   r   r	   r      s    z@Get_argspecTest.test_attribute_exception.<locals>.CallA.__call__N)r   r   r   r   r   r   r   r	   CallA   s   r_   c               @   s   e Zd Zdd ZdS )z7Get_argspecTest.test_attribute_exception.<locals>.CallBc             S   s   d S )Nr   )r   r   r   r   r	   r      s    z@Get_argspecTest.test_attribute_exception.<locals>.CallB.__call__N)r   r   r   r   r   r   r   r	   CallB   s   r`   r,   z	(a, b, c)z(ci))rL   rN   )r2   rB   r$   r%   )r   r^   r_   r`   rL   rN   r   r   r	   test_attribute_exception   s    z(Get_argspecTest.test_attribute_exceptionc          
   C   sF   x@ddddg i fD ],}| j |d | t|d W d Q R X qW d S )Nr   g        0   0)r&   r,   )rB   r$   r%   )r   r&   r   r   r	   test_non_callables   s    z"Get_argspecTest.test_non_callablesN)r   r   r   r7   r9   rD   rG   rJ   rK   rM   rP   rT   rX   rY   rZ   ra   rd   r   r   r   r	   r#   +   s   -		
r#   c               @   s   e Zd Zdd Zdd ZdS )Get_entityTestc             C   s   |  td d S )Nz1/0)ZassertIsNoner   
get_entity)r   r   r   r	   test_bad_entity   s    zGet_entityTest.test_bad_entityc             C   s   |  tdt d S )Nint)ZassertIsr   rf   rh   )r   r   r   r	   test_good_entity   s    zGet_entityTest.test_good_entityN)r   r   r   rg   ri   r   r   r   r	   re      s   re   __main__   )	verbosity)r   Zidlelibr   Zunittestr8   r0   r3   r   rO   Z_default_callable_argspecr2   Zget_argspecr%   ZTestCaser#   re   r   mainr   r   r   r	   <module>   s    K