U
    +ºc¥  ã                   @   sŠ   d Z ddlmZ ddlmZ ddlmZ ddlZddlZddlmZ ddlm	Z
 ddlmZ ddlZG d	d
„ d
ejƒZedkr†e ¡  dS )z"Tests for the inspectutils module.é    )Úabsolute_import)Údivision)Úprint_functionN)Úinspectutils)Útest_components)Ú	testutilsc                   @   sz   e Zd Zdd„ Ze ejd¡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 )ÚInspectUtilsTestc                 C   s€   t  tj¡}|  |jddddg¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |j	g ¡ |  |j
i ¡ |  |jttdœ¡ d S )	NÚarg1Úarg2Úarg3Úarg4©é
   é   Úarg5Úarg6)r
   r   )r   ÚGetFullArgSpecÚtcÚidentityÚassertEqualÚargsÚdefaultsÚvarargsÚvarkwÚ
kwonlyargsÚkwonlydefaultsÚannotationsÚint©ÚselfÚspec© r!   ú:/tmp/pip-unpacked-wheel-1xt1w7un/fire/inspectutils_test.pyÚtestGetFullArgSpec!   s    z#InspectUtilsTest.testGetFullArgSpecz No keyword arguments in python 2c                 C   s”   t  tjj¡}|  |jddddg¡ |  |jd¡ |  |jd¡ |  |j	d¡ |  |j
dd	d
dg¡ |  |jdddœ¡ |  |jttttdœ¡ d S )Nr	   r
   r   r   r   r   Zarg10r   Úarg7Úarg8Úarg9é   é(   )r%   r&   )r
   r   r$   r&   )r   r   r   Zpy3r   r   r   r   r   r   r   r   r   r   r   r!   r!   r"   ÚtestGetFullArgSpecPy3+   s    ÿz&InspectUtilsTest.testGetFullArgSpecPy3c                 C   sV   t  dj¡}|  |jg ¡ |  |jd¡ |  |jg ¡ |  |ji ¡ |  |ji ¡ d S )NÚtestr!   )	r   r   Úupperr   r   r   r   r   r   r   r!   r!   r"   ÚtestGetFullArgSpecFromBuiltin7   s    z.InspectUtilsTest.testGetFullArgSpecFromBuiltinc                 C   sr   t  tj¡}|  |jg ¡ |  |jd¡ |  |jd ¡ |  |jd ¡ |  |j	g ¡ |  |j
i ¡ |  |ji ¡ d S ©Nr!   )r   r   r   Ú
NoDefaultsr   r   r   r   r   r   r   r   r   r!   r!   r"   Ú!testGetFullArgSpecFromSlotWrapper?   s    z2InspectUtilsTest.testGetFullArgSpecFromSlotWrapperc                 C   sv   t  tj¡}|  |jddg¡ |  |jd¡ |  |jd ¡ |  |jd ¡ |  |j	g ¡ |  |j
i ¡ |  |ji ¡ d S ©NÚxÚyr!   )r   r   r   ZNamedTuplePointr   r   r   r   r   r   r   r   r   r!   r!   r"   Ú testGetFullArgSpecFromNamedTupleI   s    z1InspectUtilsTest.testGetFullArgSpecFromNamedTuplec                 C   sv   t  tj¡}|  |jddg¡ |  |jd¡ |  |jd ¡ |  |jd ¡ |  |j	g ¡ |  |j
i ¡ |  |ji ¡ d S r0   )r   r   r   ZSubPointr   r   r   r   r   r   r   r   r   r!   r!   r"   Ú(testGetFullArgSpecFromNamedTupleSubclassS   s    z9InspectUtilsTest.testGetFullArgSpecFromNamedTupleSubclassc                 C   sr   t  tj¡}|  |jg ¡ |  |jd¡ |  |jd ¡ |  |jd ¡ |  |j	g ¡ |  |j
i ¡ |  |ji ¡ d S r-   )r   r   r   ÚOldStyleEmptyr   r   r   r   r   r   r   r   r   r!   r!   r"   Ú!testGetFullArgSpecFromClassNoInit]   s    z2InspectUtilsTest.testGetFullArgSpecFromClassNoInitc                 C   sx   t  t ¡ j¡}|  |jdg¡ |  |jd¡ |  |jd ¡ |  |j	d ¡ |  |j
g ¡ |  |ji ¡ |  |ji ¡ d S )NÚcountr!   )r   r   r   r.   Údoubler   r   r   r   r   r   r   r   r   r!   r!   r"   ÚtestGetFullArgSpecFromMethodg   s    z-InspectUtilsTest.testGetFullArgSpecFromMethodc                 C   sV   t  d¡}|  | d¡d¡ |  | d¡d ¡ |  | d¡d ¡ |  | d¡d¡ d S )Né   Ú	type_namer   ÚfileÚlineZstring_formÚ1)r   ÚInfor   Úget©r   Úinfor!   r!   r"   ÚtestInfoOneq   s
    
zInspectUtilsTest.testInfoOnec                 C   sP   t  tj¡}|  | d¡d¡ |  tj 	dd¡| d¡¡ |  
| d¡d¡ d S )Nr;   ÚtypeÚfireútest_components.pyr<   r=   r   )r   r?   r   r.   r   r@   ÚassertInÚosÚpathÚjoinÚassertGreaterrA   r!   r!   r"   ÚtestInfoClassx   s    zInspectUtilsTest.testInfoClassc                 C   sj   t  tj¡}tjr&|  | d¡d¡ n|  | d¡d¡ |  t	j
 dd¡| d¡¡ |  | d¡d¡ d S )	Nr;   ZclassobjrD   rE   rF   r<   r=   r   )r   r?   r   r5   ÚsixÚPY2r   r@   rG   rH   rI   rJ   rK   rA   r!   r!   r"   ÚtestInfoClassNoInit~   s    z$InspectUtilsTest.testInfoClassNoInitc                 C   s"   t  tj¡}|  |d d d¡ d S )NZ	docstringzDocstring should be None)r   r?   r   r.   r   rA   r!   r!   r"   ÚtestInfoNoDocstring‡   s    z$InspectUtilsTest.testInfoNoDocstringN)Ú__name__Ú
__module__Ú__qualname__r#   ÚunittestZskipIfrM   rN   r)   r,   r/   r3   r4   r6   r9   rC   rL   rO   rP   r!   r!   r!   r"   r      s   






	r   Ú__main__)Ú__doc__Ú
__future__r   r   r   rH   rT   rE   r   r   r   r   rM   ZBaseTestCaser   rQ   Úmainr!   r!   r!   r"   Ú<module>   s   m