
    |h                         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                          y	y	)
zTests for the trace module.    )	testutils)tracec                   T    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y)FireTraceTestc                     t        j                  d      }| j                  |       | j                  |j                         y )N
   )r   	FireTraceassertIsNotNoneelementsselfts     N/var/www/html/test/engine/venv/lib/python3.12/site-packages/fire/trace_test.pytestFireTraceInitializationz)FireTraceTest.testFireTraceInitialization   s0    A$    c                     t        j                  d      }| j                  |j                         d       |j	                  ddd dd       | j                  |j                         d       y )Nstartr   final
example.pyr   )r   r	   assertEqual	GetResultAddAccessedPropertyr   s     r   testFireTraceGetResultz$FireTraceTest.testFireTraceGetResult   sR     AQ[[]G,#wlB?Q[[]C(r   c                 J   t        j                  d      }| j                  |j                                |j	                  ddd dd       | j                  |j                                |j                  t        d      dg       | j                  |j                                y )Nr   r   r   r   r   example errorarg)r   r	   assertFalseHasErrorr   AddError
ValueError
assertTruer   s     r   testFireTraceHasErrorz#FireTraceTest.testFireTraceHasError"   su     AQZZ\"#wlB?QZZ\"JJz/*UG4OOAJJL!r   c                     t        j                  d      }d}|j                  dd|dd       | j                  t	        |      d       y )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*   sE    ()AD/64bIAJLr   c           	          t        j                  d      }d}|j                  dd|dddt         j                         | j	                  t        |      d	       y )
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   sW    ()AD64b% % 5 5  7AHJr   c           	          t        j                  d      }d}|j                  dd|dddt         j                         | j	                  t        |      d	       y )
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;   sW    ()AD5$R % 4 4  6AFHr   c           	          t        j                  d      }d}|j                  dd|dddt         j                         d	}| j	                  t        |      |       y )
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   sZ    ()AD[$R''  )4FSVV$r   c                     t        j                  d      }|j                  d       | j                  t	        |      d       y )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   s9    ()AABA>@r   c                     t        j                  d      }|j                          | j                  t	        |      d       y )Nr$   z01. Initial component
2. Entered interactive mode)r   r	   AddInteractiveModer   r+   r   s     r   testAddInteractiveModez$FireTraceTest.testAddInteractiveModeU   s5    ()AA;=r   c           	          t        j                  d      }d}|j                  dd|dddt         j                         | j	                  |j                         d	       y )
Nr$   r%   r/   r7   r)   r*   Fr1   zexample argsr   r	   r3   r8   r   
GetCommandr,   s      r   testGetCommandzFireTraceTest.testGetCommand\   sT    ()AD5$R % 4 4  6Q\\^^4r   c           	          t        j                  d      }d}|j                  dd|dddt         j                         | j	                  |j                         d	       y )
Nr$   )r&   z
spaced argr/   r7   r)   r*   Fr1   zexample 'spaced arg'rG   r,   s      r   testGetCommandWithQuotesz&FireTraceTest.testGetCommandWithQuotesc   sU    ()A$D5$R % 4 4  6Q\\^%;<r   c           	          t        j                  d      }d}|j                  dd|dddt         j                         | j	                  |j                         d	       y )
Nr$   )z--example=spaced argr/   r7   r)   r*   Fr1   z--example='spaced arg'rG   r,   s      r   testGetCommandWithFlagQuotesz*FireTraceTest.testGetCommandWithFlagQuotesj   sU    ()A$D5$R % 4 4  6Q\\^%=>r   N)__name__
__module____qualname__r   r   r"   r-   r5   r9   r?   rB   rE   rI   rK   rM    r   r   r   r      sB    %
)"LJH%@=5=?r   r   c                   $    e Zd Zd Zd Zd Zd Zy)FireTraceElementTestc                     t        j                         }| j                  |j                                t        j                  t	        d            }| j                  |j                                y )Nr   )error)r   FireTraceElementr   r   r    r!   r   els     r   testFireTraceElementHasErrorz1FireTraceElementTest.testFireTraceElementHasErrort   sK    				!BR[[]#			j&A	BBOOBKKM"r   c                 h    t        j                  dd      }| j                  t        |      d       y )NExamplezFake action)	componentr2   r   rV   r   r+   rW   s     r   &testFireTraceElementAsStringNoMetadataz;FireTraceElementTest.testFireTraceElementAsStringNoMetadata{   s.    			
B 	SWm,r   c                 j    t        j                  ddd      }| j                  t        |      d       y )Nr[   Created toyBeaker)r\   r2   r>   zCreated toy "Beaker"r]   rW   s     r   &testFireTraceElementAsStringWithTargetz;FireTraceElementTest.testFireTraceElementAsStringWithTarget   s2    			
B
 	SW45r   c                 n    t        j                  ddddd      }| j                  t        |      d       y )Nr[   r`   ra   z	beaker.pyr   )r\   r2   r>   filenamelinenoz#Created toy "Beaker" (beaker.py:10)r]   rW   s     r   /testFireTraceElementAsStringWithTargetAndLineNozDFireTraceElementTest.testFireTraceElementAsStringWithTargetAndLineNo   s8    			
B 	SWCDr   N)rN   rO   rP   rY   r^   rb   rf   rQ   r   r   rS   rS   r   s    #-6Er   rS   __main__N)	__doc__firer   r   BaseTestCaser   rS   rN   mainrQ   r   r   <module>rl      sU    "  Z?I** Z?z E911  EF z).. r   