
    `j                         d Z ddlmZ ddlmZ  G d dej                  Z G d dej                  Zedk    r ej                     d	S d	S )
zTests for the trace module.    )	testutils)tracec                   V    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )FireTraceTestc                     t          j        d          }|                     |           |                     |j                   d S )N
   )r   	FireTraceassertIsNotNoneelementsselfts     S/home/jworkman/hermes-web-chat/venv/lib/python3.11/site-packages/fire/trace_test.pytestFireTraceInitializationz)FireTraceTest.testFireTraceInitialization   sA    A$$$$$    c                     t          j        d          }|                     |                                d           |                    ddd dd           |                     |                                d           d S )Nstartr   final
example.pyr   )r   r	   assertEqual	GetResultAddAccessedPropertyr   s     r   testFireTraceGetResultz$FireTraceTest.testFireTraceGetResult   so      AQ[[]]G,,,#wlB???Q[[]]C(((((r   c                    t          j        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   s     r   testFireTraceHasErrorz#FireTraceTest.testFireTraceHasError"   s      AQZZ\\"""#wlB???QZZ\\"""JJz/**UG444OOAJJLL!!!!!r   c                     t          j        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'   s      r   testAddAccessedPropertyz%FireTraceTest.testAddAccessedProperty*   sf    ())AD/64bIIIAJL L L L Lr   c           	          t          j        d          }d}|                    dd|dddt           j                   |                     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,   s      r   testAddCalledCallablez#FireTraceTest.testAddCalledCallable2   sy    ())AD64b% % 5  7 7 7AHJ J J J Jr   c           	          t          j        d          }d}|                    dd|dddt           j                   |                     t          |          d	           d S )
Nr$   r%   r/   runr)   r*   Fr1   z;1. Initial component
2. Called routine "run" (sample.py:12))r   r	   r3   CALLED_ROUTINEr   r+   r,   s      r   testAddCalledRoutinez"FireTraceTest.testAddCalledRoutine;   sy    ())AD5$R % 4  6 6 6AFH H H H Hr   c           	          t          j        d          }d}|                    dd|dddt           j                   d	}|                     t          |          |           d S )
Nr$   r%   	Classname	classnamer)   r*   Fr1   zE1. Initial component
2. Instantiated class "classname" (sample.py:12))r   r	   r3   INSTANTIATED_CLASSr   r+   )r   r   r'   targets       r   testAddInstantiatedClassz&FireTraceTest.testAddInstantiatedClassD   sp    ())AD[$R'  ) ) )4FSVVV$$$$$r   c                     t          j        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   s     r   testAddCompletionScriptz%FireTraceTest.testAddCompletionScriptN   sZ    ())AABBBA>@ @ @ @ @r   c                     t          j        d          }|                                 |                     t	          |          d           d S )Nr$   z01. Initial component
2. Entered interactive mode)r   r	   AddInteractiveModer   r+   r   s     r   testAddInteractiveModez$FireTraceTest.testAddInteractiveModeU   sR    ())AA;= = = = =r   c           	          t          j        d          }d}|                    dd|dddt           j                   |                     |                                d	           d S )
Nr$   r%   r/   r7   r)   r*   Fr1   zexample argsr   r	   r3   r8   r   
GetCommandr,   s      r   testGetCommandzFireTraceTest.testGetCommand\   sj    ())AD5$R % 4  6 6 6Q\\^^^44444r   c           	          t          j        d          }d}|                    dd|dddt           j                   |                     |                                d	           d S )
Nr$   )r&   z
spaced argr/   r7   r)   r*   Fr1   zexample 'spaced arg'rG   r,   s      r   testGetCommandWithQuotesz&FireTraceTest.testGetCommandWithQuotesc   sk    ())A$D5$R % 4  6 6 6Q\\^^%;<<<<<r   c           	          t          j        d          }d}|                    dd|dddt           j                   |                     |                                d	           d S )
Nr$   )z--example=spaced argr/   r7   r)   r*   Fr1   z--example='spaced arg'rG   r,   s      r   testGetCommandWithFlagQuotesz*FireTraceTest.testGetCommandWithFlagQuotesj   sk    ())A$D5$R % 4  6 6 6Q\\^^%=>>>>>r   N)__name__
__module____qualname__r   r   r"   r-   r5   r9   r?   rB   rE   rI   rK   rM    r   r   r   r      s        % % %
) ) )" " "L L LJ J JH H H% % %@ @ @= = =5 5 5= = =? ? ? ? ?r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )FireTraceElementTestc                    t          j                    }|                     |                                           t          j        t	          d                    }|                     |                                           d S )Nr   )error)r   FireTraceElementr   r   r    r!   r   els     r   testFireTraceElementHasErrorz1FireTraceElementTest.testFireTraceElementHasErrort   sg    			!	!BR[[]]###		j&A&A	B	B	BBOOBKKMM"""""r   c                 x    t          j        dd          }|                     t          |          d           d S )NExamplezFake action)	componentr2   r   rV   r   r+   rW   s     r   &testFireTraceElementAsStringNoMetadataz;FireTraceElementTest.testFireTraceElementAsStringNoMetadata{   sC    		
 
 
B 	SWWm,,,,,r   c                 z    t          j        ddd          }|                     t          |          d           d S )Nr[   Created toyBeaker)r\   r2   r>   zCreated toy "Beaker"r]   rW   s     r   &testFireTraceElementAsStringWithTargetz;FireTraceElementTest.testFireTraceElementAsStringWithTarget   sG    		
 
 
B
 	SWW455555r   c                 ~    t          j        ddddd          }|                     t          |          d           d S )Nr[   r`   ra   z	beaker.pyr   )r\   r2   r>   filenamelinenoz#Created toy "Beaker" (beaker.py:10)r]   rW   s     r   /testFireTraceElementAsStringWithTargetAndLineNozDFireTraceElementTest.testFireTraceElementAsStringWithTargetAndLineNo   sM    		
 
 
B 	SWWCDDDDDr   N)rN   rO   rP   rY   r^   rb   rf   rQ   r   r   rS   rS   r   sU        # # #- - -6 6 6E E E E Er   rS   __main__N)	__doc__firer   r   BaseTestCaser   rS   rN   mainrQ   r   r   <module>rl      s    " !            Z? Z? Z? Z? Z?I* Z? Z? Z?z E  E  E  E  E91  E  E  EF z). r   