U
    ,cf                     @   sx   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ G dd dejZ	G d	d
 d
ejZ
edkrte  dS )zTests for the trace module.    )absolute_import)division)print_function)	testutils)tracec                   @   sl   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S )FireTraceTestc                 C   s$   t d}| | | |j d S )N
   )r   	FireTraceZassertIsNotNoneelementsselft r   3/tmp/pip-unpacked-wheel-1xt1w7un/fire/trace_test.pytestFireTraceInitialization   s    

z)FireTraceTest.testFireTraceInitializationc                 C   s@   t d}| | d |ddd dd | | d d S )Nstartr   final
example.pyr   )r   r	   assertEqualZ	GetResultAddAccessedPropertyr   r   r   r   testFireTraceGetResult    s    
z$FireTraceTest.testFireTraceGetResultc                 C   s\   t d}| |  |ddd dd | |  |tddg | |  d S )Nr   r   r   r   r   example errorarg)r   r	   assertFalseHasErrorr   ZAddError
ValueError
assertTruer   r   r   r   testFireTraceHasError&   s    
z#FireTraceTest.testFireTraceHasErrorc                 C   s4   t d}d}|dd|dd | t|d d S )Ninitial objectexampleargsznew componentprop	sample.py   z?1. Initial component
2. Accessed property "prop" (sample.py:12))r   r	   r   r   strr   r   r!   r   r   r   testAddAccessedProperty.   s    
z%FireTraceTest.testAddAccessedPropertyc              	   C   s<   t d}d}|jdd|dddt jd | t|d	 d S )
Nr   r   resultcellr#   r   Factionz=1. Initial component
2. Called callable "cell" (sample.py:10))r   r	   AddCalledComponentZCALLED_CALLABLEr   r%   r&   r   r   r   testAddCalledCallable6   s    
z#FireTraceTest.testAddCalledCallablec              	   C   s<   t d}d}|jdd|dddt jd | t|d	 d S )
Nr   r   r(   runr#   r$   Fr*   z;1. Initial component
2. Called routine "run" (sample.py:12))r   r	   r,   CALLED_ROUTINEr   r%   r&   r   r   r   testAddCalledRoutine?   s    
z"FireTraceTest.testAddCalledRoutinec              	   C   s@   t d}d}|jdd|dddt jd d	}| t|| d S )
Nr   r   Z	Classname	classnamer#   r$   Fr*   zE1. Initial component
2. Instantiated class "classname" (sample.py:12))r   r	   r,   ZINSTANTIATED_CLASSr   r%   )r   r   r!   targetr   r   r   testAddInstantiatedClassH   s    
     z&FireTraceTest.testAddInstantiatedClassc                 C   s(   t d}|d | t|d d S )Nr   z%This is the completion script string.z31. Initial component
2. Generated completion script)r   r	   ZAddCompletionScriptr   r%   r   r   r   r   testAddCompletionScriptR   s    

z%FireTraceTest.testAddCompletionScriptc                 C   s&   t d}|  | t|d d S )Nr   z01. Initial component
2. Entered interactive mode)r   r	   ZAddInteractiveModer   r%   r   r   r   r   testAddInteractiveModeY   s    
z$FireTraceTest.testAddInteractiveModec              	   C   s<   t d}d}|jdd|dddt jd | | d	 d S )
Nr   r   r(   r.   r#   r$   Fr*   zexample argsr   r	   r,   r/   r   Z
GetCommandr&   r   r   r   testGetCommand`   s    
zFireTraceTest.testGetCommandc              	   C   s<   t d}d}|jdd|dddt jd | | d	 d S )
Nr   )r    z
spaced argr(   r.   r#   r$   Fr*   zexample 'spaced arg'r6   r&   r   r   r   testGetCommandWithQuotesg   s    
z&FireTraceTest.testGetCommandWithQuotesc              	   C   s<   t d}d}|jdd|dddt jd | | d	 d S )
Nr   )z--example=spaced argr(   r.   r#   r$   Fr*   z--example='spaced arg'r6   r&   r   r   r   testGetCommandWithFlagQuotesn   s    
z*FireTraceTest.testGetCommandWithFlagQuotesN)__name__
__module____qualname__r   r   r   r'   r-   r0   r3   r4   r5   r7   r8   r9   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	S )
FireTraceElementTestc                 C   s8   t  }| |  t jtdd}| |  d S )Nr   )error)r   FireTraceElementr   r   r   r   r   elr   r   r   testFireTraceElementHasErrorx   s    z1FireTraceElementTest.testFireTraceElementHasErrorc                 C   s"   t jddd}| t|d d S )NExamplezFake action)	componentr+   r   r?   r   r%   r@   r   r   r   &testFireTraceElementAsStringNoMetadata   s
    z;FireTraceElementTest.testFireTraceElementAsStringNoMetadatac                 C   s$   t jdddd}| t|d d S )NrC   Created toyBeaker)rD   r+   r2   zCreated toy "Beaker"rE   r@   r   r   r   &testFireTraceElementAsStringWithTarget   s    z;FireTraceElementTest.testFireTraceElementAsStringWithTargetc                 C   s(   t jdddddd}| t|d d S )NrC   rG   rH   z	beaker.pyr   )rD   r+   r2   filenamelinenoz#Created toy "Beaker" (beaker.py:10)rE   r@   r   r   r   /testFireTraceElementAsStringWithTargetAndLineNo   s    zDFireTraceElementTest.testFireTraceElementAsStringWithTargetAndLineNoN)r:   r;   r<   rB   rF   rI   rL   r   r   r   r   r=   v   s   r=   __main__N)__doc__
__future__r   r   r   Zfirer   r   ZBaseTestCaser   r=   r:   mainr   r   r   r   <module>   s   ]#