o
    Ďi                     @   sX   d 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r*e  d	S d	S )
zTests for the trace module.    )	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   	FireTraceassertIsNotNoneelementsselft r   K/home/jeff/fluffinator/venv/lib/python3.10/site-packages/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   assertEqual	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   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   <   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   AddCalledComponentCALLED_CALLABLEr   r%   r&   r   r   r   testAddCalledCallable2      
z#FireTraceTest.testAddCalledCallablec              	   C   r(   )
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;   r0   z"FireTraceTest.testAddCalledRoutinec              	   C   s@   t d}d}|jdd|dddt jd d	}| t|| d S )
Nr   r   	Classname	classnamer#   r$   Fr+   zE1. Initial component
2. Instantiated class "classname" (sample.py:12))r   r   r-   INSTANTIATED_CLASSr   r%   )r
   r   r!   targetr   r   r   testAddInstantiatedClassD   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   AddCompletionScriptr   r%   r	   r   r   r   testAddCompletionScriptN   s   

z%FireTraceTest.testAddCompletionScriptc                 C   s&   t d}|  | t|d d S )Nr   z01. Initial component
2. Entered interactive mode)r   r   AddInteractiveModer   r%   r	   r   r   r   testAddInteractiveModeU   s   
z$FireTraceTest.testAddInteractiveModec              	   C   <   t d}d}|jdd|dddt jd | | d	 d S )
Nr   r   r)   r1   r#   r$   Fr+   zexample argsr   r   r-   r2   r   
GetCommandr&   r   r   r   testGetCommand\      
zFireTraceTest.testGetCommandc              	   C   r=   )
Nr   )r    z
spaced argr)   r1   r#   r$   Fr+   zexample 'spaced arg'r>   r&   r   r   r   testGetCommandWithQuotesc   rA   z&FireTraceTest.testGetCommandWithQuotesc              	   C   r=   )
Nr   )z--example=spaced argr)   r1   r#   r$   Fr+   z--example='spaced arg'r>   r&   r   r   r   testGetCommandWithFlagQuotesj   rA   z*FireTraceTest.testGetCommandWithFlagQuotesN)__name__
__module____qualname__r   r   r   r'   r/   r3   r8   r:   r<   r@   rB   rC   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   testFireTraceElementHasErrort   s   z1FireTraceElementTest.testFireTraceElementHasErrorc                 C   s"   t jddd}| t|d d S )NExamplezFake action)	componentr,   r   rI   r   r%   rJ   r   r   r   &testFireTraceElementAsStringNoMetadata{   s
   z;FireTraceElementTest.testFireTraceElementAsStringNoMetadatac                 C   s$   t jdddd}| t|d d S )NrM   Created toyBeaker)rN   r,   r7   zCreated toy "Beaker"rO   rJ   r   r   r   &testFireTraceElementAsStringWithTarget   s   z;FireTraceElementTest.testFireTraceElementAsStringWithTargetc                 C   s(   t jdddddd}| t|d d S )NrM   rQ   rR   z	beaker.pyr   )rN   r,   r7   filenamelinenoz#Created toy "Beaker" (beaker.py:10)rO   rJ   r   r   r   /testFireTraceElementAsStringWithTargetAndLineNo   s   zDFireTraceElementTest.testFireTraceElementAsStringWithTargetAndLineNoN)rD   rE   rF   rL   rP   rS   rV   r   r   r   r   rG   r   s
    rG   __main__N)	__doc__firer   r   BaseTestCaser   rG   rD   mainr   r   r   r   <module>   s   ]#