
    |h"r                         d Z ddlZddlZddlmZ ddlZddlmZ ddlmZ  G d dej                        Z
edk(  r ej                          yy)	zTests for the fire module.    N)mock)test_components)	testutilsc                      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 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 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) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d: Z<d; Z=d< Z>d= Z?d> Z@y?)@FireTestc                 l   t         j                  j                  t        ddg      5  t	        j
                  t        j                         t	        j
                  t        j                         t	        j
                  t        j                         d d d        | j                  t	        j
                  t        j                  d      d       | j                  t	        j
                  t        j                  d      d       | j                  t	        j
                  t        j                  dd	g      d       | j                  t	        j
                  t        j                  d
dg      d       | j                  t	        j
                  t        j                  dd	g      d       y # 1 sw Y   xY w)Nargvprognameztriple 4command   )double2   triple4r   r   )r   patchobjectsysfireFiretcEmptyOldStyleEmptyWithInitassertEqual
NoDefaultsWithDefaultsOldStyleWithDefaultsselfs    M/var/www/html/test/engine/venv/lib/python3.12/site-packages/fire/fire_test.pytestFirezFireTest.testFire   s   			3	5 
ii
ii  !
ii
 	TYYr}}jA2FTYYrH!LTYYr3H"MTYYr66(0#89:<TYYr66(0#89;= s   A*F))F3c                     | j                  t        j                  t        j                  d      d       | j                  t        j                  t        j                  ddg      d       y )Nzdouble 2r   r   r   )r   r   r   r   r   r    s    r"   testFirePositionalCommandz"FireTest.testFirePositionalCommand*   sD    TYYr}}j91=TYYr}}xo>B    c                     | j                  t              5  t        j                  t        j
                  d       d d d        y # 1 sw Y   y xY w)N
   r   )assertRaises
ValueErrorr   r   r   r   r    s    r"   testFireInvalidCommandArgz"FireTest.testFireInvalidCommandArg/   s7    			:	& -
ii,- - -s   &AAc           	      N   t         j                  j                  t        dt        j
                  j                  ddd      g      5  | j                  dd       5  t        j                  t        j                         d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr	   zpython-firer   zbase_filename.pyzSYNOPSIS.*base_filename.py)stdoutstderr)r   r   r   r   ospathjoinassertOutputMatchesr   r   r   r   r    s    r"   testFireDefaultNamezFireTest.testFireDefaultName4   s    			3GGLL);= >
?  ##+G+/ $ 1 		"((   s$   B$B>BB	BB$c                 p    | j                  t        j                  t        j                  dg      d       y )Ntenr   r(   r   r   r   r   MixedDefaultsr    s    r"   testFireNoArgszFireTest.testFireNoArgs<   s%    TYYr//%A2Fr&   c                 p   | j                  d      5  t        j                  t        j                  dg       d d d        | j                  d      5  t        j                  t        j
                  dg       d d d        | j                  d      5  t        j                  t        j                  ddg       d d d        | j                  t              5  t        j                  t        j                  ddg       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   y xY w)	N   nomethodr   r   deltax
reciprocalz0.0)
assertRaisesFireExitr   r   r   r   r   TypedPropertiesr)   ZeroDivisionErrorNumberDefaultsr    s    r"   testFireExceptionszFireTest.testFireExceptions?   s    		"	"1	% 0
ii:,/0		"	"1	% 3
iiz23		"	"1	% <
ii""WcN;< 
		,	- B
ii!!L%+@AB B0 03 3< <B Bs/   'D'D(D (D,DD D),D5c                    | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j
                  g d      d       | j                  t        j                  t        j
                  g d      d       y Nr   --count5r   r(   r   rG   rH      r   r   r   r   r   r   r    s    r"   testFireNamedArgszFireTest.testFireNamedArgsL   s    TYYr'ACDFHTYYr'ACDFH		"))3MN
 			"))3MN
r&   c                    | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j
                  g d      d       | j                  t        j                  t        j
                  g d      d       y )N)r   -countrH   r   r(   )r   rN   rH   rJ   rK   r    s    r"   testFireNamedArgsSingleHyphenz&FireTest.testFireNamedArgsSingleHyphenX   s    TYYr'@BCEGTYYr'@BCEG		"))3LM
 			"))3LM
r&   c                     | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       y )Nr   z	--count=5r   r(   r   rJ   r   r   r   r   r   r    s    r"   testFireNamedArgsWithEqualsz$FireTest.testFireNamedArgsWithEqualsd   sZ    TYYr(0+'>@ACETYYr(0+'>@ACEr&   c                     | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       y )Nr   z-count=5r   r(   r   rJ   rQ   r    s    r"   'testFireNamedArgsWithEqualsSingleHyphenz0FireTest.testFireNamedArgsWithEqualsSingleHyphenj   sX    TYYr(0*'=?@BDTYYr(0*'=?@BDr&   c                    | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d	      d       | j                  t        j                  t        j                  g d
      d       y )N)sum1r   r      )rV   --alpharW   r   )rV   --betarW   r   r   )rV   rW   rY   r   )rV   rW   rZ   r   )rV   rY   rW   rZ   r   )rV   rZ   rW   rY   r   r6   r    s    r"   testFireAllNamedArgszFireTest.testFireAllNamedArgsp   s   TYYr//9JKQOTYYr//'CEFGITYYr//'BDEFHTYYr//'CEFGITYYr//'BDEFH		"""@	BCDF 			"""@	BCDFr&   c                    | j                  t        j                  t        j                  dg      d       | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       y )	NrV   r   r   rW      )rV   rY   rW   )rV   rZ   r   r   r6   r    s    r"   testFireAllNamedArgsOneMissingz'FireTest.testFireAllNamedArgsOneMissing   s    TYYr//%A1ETYYr//%FJTYYr//'>@ABDTYYr//'=?@ACr&   c                    | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d	      d       | j                  t        j                  t        j                  g d
      d       y )N)identityrW   r   r   )r]   r:   )r`   rY   rW   r   )r`   rZ   rW   r   )r:   r]   )r`   rW   rY   r   )r`   rW   rZ   r   )r`   rY   rW   rZ   r   )r`   rZ   rW   rY   r   r6   r    s    r"   testFirePartialNamedArgsz!FireTest.testFirePartialNamedArgs   s,   		""",BCVM		""";	=>DF 			""":	<=CE 			""";	=>DF 			""":	<=CE 			?	ABHJ 			?	ABHJr&   c                    | j                  d      5  t        j                  t        j                  dg       d d d        | j                  d      5  t        j                  t        j                  g d       d d d        | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  g d      d       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr:   r`   r   )r`   rZ   r   rW   )r]   0)r`   rY   rW   )r?   r   r   r   r7   r   r    s    r"   "testFirePartialNamedArgsOneMissingz+FireTest.testFirePartialNamedArgsOneMissing   s    		"	"1	% &
ii  #&& 
	"	"1	% G
ii  *EFG 			"""Z,=>J		""",HI& &G Gs   'C1(C=1C:=Dc                     | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       y )Nr   rH   r   r(   r   rJ   )r   r   r   r   Annotationsr    s    r"   testFireAnnotatedArgszFireTest.testFireAnnotatedArgs   sH    TYYr~~#GLTYYr~~#GLr&   c                    | j                  d      5  t        j                  t        j                  j
                  ddg       d d d        | j                  t        j                  t        j                  j
                  g d      d       | j                  t        j                  t        j                  j
                  g d      d       y # 1 sw Y   xY w)	Nr:   r   rH   r   rF   r(   rI   rJ   )r?   r   r   r   py3KeywordOnlyr   r    s    r"   testFireKeywordOnlyArgsz FireTest.testFireKeywordOnlyArgs   s    		"	"1	% =
ii""XsO<= 			"&&$$.HI2O		"&&$$.HI2O= =s   2CCc                     | j                  t        j                  t        j                  dg      d       | j                  t        j                  t        j                  dg      d       y )Nalphar   Tbeta)r]   r:      r   r   r   r   r@   r    s    r"   testFirePropertieszFireTest.testFireProperties   sH    TYYr11G9EtLTYYr11F8DiPr&   c                     | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       y )N)charlier   hellor   
hellohello)rs   r   wwwwrp   r    s    r"   testFireRecursionzFireTest.testFireRecursion   sV    		"$$8	:;GI 	TYYr11'ACDIKr&   c                     | j                  t        j                  t        j                  g d      g d       | j                  t        j                  t        j                  g d      g d       y )N)cumsumsabcdr   )r{   ababcabcd)rz   rW   r   3r   )r]   ro      r(   r   r   r   r   VarArgsr    s    r"   testFireVarArgszFireTest.testFireVarArgs   sN    		"**9	;"$ 			"**&EFr&   c                     | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       y )N)varcharsrW   r   r}   r~   r   )r]   r:   cd)r   r   r   r}   r~   e)ro   r   cder   r    s    r"   testFireVarArgsWithNamedArgsz%FireTest.testFireVarArgsWithNamedArgs   sL    		"**&FG 			"**&KLr&   c                    | j                  t        j                  t        j                  g d      ddd       | j                  t        j                  t        j                  g d      ddi       | j                  t        j                  t        j                  g d	      ddi       | j                  t        j                  t        j                  d
      ddi       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       y )N)propsz--nameDavidz--age24r   r      )nameage)r   	--messagez#"This is a message it has -- in it"message!This is a message it has -- in it)r   r   r   z3props --message "This is a message it has -- in it")upperrY   ArZ   Bz
ALPHA BETA)r   rY   r   rZ   r   -lowerz
alpha betar   r   r   r   Kwargsr    s    r"   testFireKeywordArgszFireTest.testFireKeywordArgs   s   		II?	A $	& 			II<	= 
78: 			II:	; 
78: 			III	K 
78	:
 			"))B	D 			IIJ	L 		r&   c                     | j                  t        j                  t        j                  g d      ddddif       | j                  t        j                  t        j                  g d      dd ddif       y )	N)runHelloWorld--cellisr   r   r   cellr   )r   r   r   okr   r   r    s    r"   ,testFireKeywordArgsWithMissingPositionalArgsz5FireTest.testFireKeywordArgsWithMissingPositionalArgs   sb    		"))%NO	'FD>*, 			"))%EF	$')r&   c                     | j                  t        j                  t        j                         g d      d       | j                  t        j                  t        j                         g d      d       y rE   rQ   r    s    r"   testFireObjectzFireTest.testFireObject  sP    		"//#-GH"N		"//#-GH"Nr&   c                     d	ddd}| j                  t        j                  |ddg      d       | j                  t        j                  |dg      d       y )
Nc                     d| z  S )Nr:    )r=   s    r"   <lambda>z'FireTest.testFireDict.<locals>.<lambda>  s
    a!e r&   swiss)r   cheeser   rH   r   r(   r   r   r   r   r   r!   	components     r"   testFireDictzFireTest.testFireDict  sM    #I 	TYYy8S/BBGTYYy8*=wGr&   c                    | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  ddg      t               | j                  t        j                  t        j                  g d      d	       y )
Nr<   echor   E)r<   r   r   r   nest)r<   r   rc   r{   )r   r   r   r   r@   assertIsInstancedictr    s    r"   testFireObjectWithDictzFireTest.testFireObjectWithDict  s    		"$$w.?@#G		"$$.HI3P		"$$w.?@$H		"$$.DEsLr&   c                     t        j                         }t        j                  |g       }| j	                  t        |      d       y Nr   ro   )r   
simple_setr   r   r   lenr!   r   results      r"   testFireSetzFireTest.testFireSet  s1    IYYy"-FS[!$r&   c                     t        j                         }t        j                  |g       }| j	                  t        |      d       y r   )r   simple_frozensetr   r   r   r   r   s      r"   testFireFrozensetzFireTest.testFireFrozenset"  s4    ##%IYYy"-FS[!$r&   c                     g d}| j                  t        j                  |dg      d       | j                  t        j                  |dg      d       | j                  t        j                  |dg      d       y )N)zeroonetwothreer   r   r   r   r   z-1r   r   s     r"   testFireListzFireTest.testFireList'  s^    /ITYYy3%8%@TYYy3%8'BTYYy4&97Cr&   c                     | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       y )Nr   rc   r   alexrW   bethanyrp   r    s    r"   testFireObjectWithListzFireTest.testFireObjectWithList-  sR    TYYr11FC=ITYYr11FC=I r&   c                     | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       y )Nfoxrc   r   carryrW   dividerp   r    s    r"   testFireObjectWithTuplez FireTest.testFireObjectWithTuple3  sR    TYYr11E3<HTYYr11E3<Hr&   c                 r    | j                  t        j                  t        j                  g d      d       y )N)r   countr   r   r]   rp   r    s    r"   testFireObjectWithListAsObjectz'FireTest.testFireObjectWithListAsObject9  s(    		"$$.JK	r&   c                 r    | j                  t        j                  t        j                  g d      d       y )N)r   r   r   r   r]   rp   r    s    r"   testFireObjectWithTupleAsObjectz(FireTest.testFireObjectWithTupleAsObject>  s(    		"$$.HI	r&   c                 V   | j                  t        j                  g d      d       d }| j                  t        j                  ddg      d       | j                  t        j                  dd	g      d
       dd}| j                  t        j                  ddg      h d       y )N)r   r   r   10r      c                     | d   S )Nr   )texts    r"   r   z.FireTest.testFireNoComponent.<locals>.<lambda>F  s
    T"X r&   	last_charz"Hello"oz	last-charz"World"r~   c                 *    t        t        |             S N)setrange)r   s    r"   r   z.FireTest.testFireNoComponent.<locals>.<lambda>I  s    3uU|, r&   rsetrH   >   r   r]   r:   ro   r   r   r   )r!   r   r   s      r"   testFireNoComponentzFireTest.testFireNoComponentC  s    TYY'MN%ITYYY'?@#FTYYY'?@#F,DTYY}5Gr&   c                     | j                  t        j                  t        j                  dg      d       | j                  t        j                  t        j                  dg      d       y )Nzunderscore-exampler   zfish fingersunderscore_exampler   r   r   r   Underscoresr    s    r"   testFireUnderscoreszFireTest.testFireUnderscoresL  sX    		"../0	23AC 			"../0	23ACr&   c                 N   | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       y )Nzunderscore-functionexampler   underscore_functionz--underscore-arg=scorescorez--underscore_arg=scorer   r    s    r"   testFireUnderscoresInArgz!FireTest.testFireUnderscoresInArgT  s    		"..0)<	>?HJ 			"..02JK	M 			"..02JK	Mr&   c                    | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  dd	g      d       | j                  t        j                  t        j                  dd
g      d       y )Nas-boolTruer   TFalseFz
--arg=Truez--arg=Falsez--argz--noarg)r   r   r   r   BoolConverterr    s    r"   testBoolParsingzFireTest.testBoolParsinga  s    TYYr//)V9LM		"""Y,@A5J		"""Y,EFN		"""Y,FGPTYYr//)W9MN		"""Y	,BCULr&   c                    | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d	      d
       | j                  t        j                  t        j                  g d      d       y )N)r`   r   r   r   TF)r`   z--alpha=Falser   Fr(   )r`   rY   rZ   r   Tr(   r`   rY   	--beta=10)r`   z	--noalpharZ   FT)r`   r   rZ   )r(   Tr6   r    s    r"   testBoolParsingContinuedz!FireTest.testBoolParsingContinuedo  s   		"""7	9:GI 			"""=	?@KM 			"""A	CDNP 			""">	@AKM 			"""=	?@MO 			""",HIr&   c                 *   | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d	      d
       y )N)r`   z-alpha=Falser   r   r   )r`   -alpha-betar   r   )r`   r  z-beta=10)r`   z-noalphar  r   )r`   r  z-10r  )iTr6   r    s    r"   testBoolParsingSingleHyphenz$FireTest.testBoolParsingSingleHyphen  s    		"""<	>?JL 			"""?	ABLN 			"""<	>?IK 			""";	=>KM 			"""@	BCNPr&   c                 .   | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  d      5  t        j                  t        j                  g d       d d d        | j                  t        j                  t        j                  g d	      d
       | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  d      d       y # 1 sw Y   xY w)N)r`   rY   r   r   )r(   rc   r   r   )r`   r   r   r:   )r`   rY   --test)r`   rY   r   z"--test")Tr  r`   z--alpha=--test)r  rc   zidentity --alpha \"--test\"r   r   r   r   r7   r?   r    s    r"    testBoolParsingLessExpectedCasesz)FireTest.testBoolParsingLessExpectedCases  sE   		"""7	9:CE 			""">	@ 			"""4	67AC
 
	"	"1	% M
ii  *KLM 			?	A 		 	TYYr//(24D'EG$& 			""",JKM Ms   7(FFc                 2   | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d	      d
       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  d      5  t        j                  t        j                  ddg       d d d        y # 1 sw Y   y xY w)Nr`   -ar   Trc   )r`   r	  r   r   )r`   r	  -bTT)r`   r	  42r  )*   T)r`   r	  r  r  r   r  r(   )r`   rY   r   r  r   r:   r  )r   r   r   r   r7   r?   SimilarArgNamesr    s    r"   testSingleCharFlagParsingz"FireTest.testSingleCharFlagParsing  sK   		"""%t,	./:< 			"""9	;<FH 			"""2	45AC 			"""8	:;EG 			""">	@AIK 			"""E	G 
	"	"1	% @ ii""Z,>?@ @ @s   (FFc                 *   | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d	      d
       | j                  t        j                  t        j                  g d      d       y )Nr`   z-a=Truer   r
  )r`   z-a=3r   )ro   r(   )r`   z-a=Falsez-b=15)FrJ   )r`   r	  r  z-b=12)r  r   )r`   z-a=42r  r   r  r6   r    s    r"   "testSingleCharFlagParsingEqualSignz+FireTest.testSingleCharFlagParsingEqualSign  s    		"""%y1	34?A 			""";	=>EG 			""";	=>IK 			""";	=>FH 			""";	=>FHr&   c                 *   | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d       | j                  t        j                  t        j                  ddg      d	       | j                  t        j                  t        j                  g d
      d       y )N	identity2r	  r   )TNz-a=10)r(   Nz--ar  )NT)r  r	  r  r  )r   r   r   r   r  r    s    r"   #testSingleCharFlagParsingExactMatchz,FireTest.testSingleCharFlagParsingExactMatch  s    		"$$&-	/0<> 			"$$&0	23=? 			"$$&.	01=? 			"$$&1	34@B 			"$$7	9:FHr&   c                 r    | j                  t        j                  t        j                  g d      d       y )N)rV   z-DrH   z-Gr   r   rJ   )r   r   r   r   CapitalizedArgNamesr    s    r"   &testSingleCharFlagParsingCapitalLetterz/FireTest.testSingleCharFlagParsingCapitalLetter  s*    		"((8	:;=?r&   c                    d }| j                  t        j                  |ddg      d       | j                  t        j                  |ddg      d       | j                  d      5  t        j                  |ddg       d d d        d	 }| j                  t        j                  |dg      d
i f       | j                  t        j                  |dg      di f       | j                  d      5  t        j                  |dg       d d d        | j                  t        j                  |ddg      ddd
if       d }| j                  t        j                  |ddg      ddd
if       | j                  t        j                  |ddg      dddif       | j                  t        j                  |ddg      dddif       y # 1 sw Y   KxY w# 1 sw Y   xY w)Nc                 
    | |fS r   r   )thingnothings     r"   fn1z+FireTest.testBoolParsingWithNo.<locals>.fn1  s    G^r&   z--thingz	--nothingr   r  z--nonothingr   r:   c                 
    | |fS r   r   )r  kwargss     r"   fn2z+FireTest.testBoolParsingWithNo.<locals>.fn2  s    F]r&   TFz--nothing=Truer  c                 
    | |fS r   r   )argr   s     r"   fn3z+FireTest.testBoolParsingWithNo.<locals>.fn3  s    &[r&   z--arg=valuevaluer  )r   r   r   r?   )r!   r  r!  r$  s       r"   testBoolParsingWithNozFireTest.testBoolParsingWithNo  s    	TYYsY,DE!#TYYsY,FG"$ 
	"	"1	% ; iik=9:;TYYsYK84*ETYYs[M:UBKH		"	"1	% 1
ii./01 	TYYs[:J,KLi./1TYYs]I,FG/1TYYs]K,HI/02TYYs]M,JK	5124-; ;1 1s   'G
1G
GG c                    | j                  dd      5  t        j                  t        j                  g d       d d d        | j                  dd      5  t        j                  t        j                  g d       d d d        | j                  dd      5  t        j                  t        j                  ddg       d d d        y # 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   y xY w)Nr   zFire trace:
)r   r   ----tracer   )r   r   r(  -tr(  r)  r?   r   r   r   r   r    s    r"   testTraceFlagzFireTest.testTraceFlag  s    		"	"1o	6 P
ii  *NOP		"	"1o	6 K
ii  *IJK		"	"1o	6 =
ii  4*;<= =	P PK K= =#   (C(C(C CC C)c                    | j                  d      5  t        j                  t        j                  g d       d d d        | j                  d      5  t        j                  t        j                  g d       d d d        | j                  d      5  t        j                  t        j                  ddg       d d d        y # 1 sw Y   xY w# 1 sw Y   WxY w# 1 sw Y   y xY w)Nr   )r   r   r(  --helpr   )r   r   r(  -hr(  r/  r+  r    s    r"   testHelpFlagzFireTest.testHelpFlag  s    		"	"1	% O
ii  *MNO		"	"1	% K
ii  *IJK		"	"1	% <
ii  4*:;< <	O OK K< <s#   (C(C(CCCC&c                    | j                  dd      5  t        j                  t        j                  g d       d d d        | j                  dd      5  t        j                  t        j                  g d       d d d        | j                  dd      5  t        j                  t        j                  g d       d d d        y # 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   y xY w)Nr   zFire trace:
.*SYNOPSIS)r   r   r(  r/  r)  r   )r   r   r(  r0  r*  )r(  r0  r)  r+  r    s    r"   testHelpFlagAndTraceFlagz!FireTest.testHelpFlagAndTraceFlag&  s    		"	"1&?	@ H
ii  FHH 
	"	"1&?	@ Q
ii  *OPQ		"	"1&?	@ C
ii  *ABC CH HQ QC Cr-  c                     t        j                  t        j                  ddg      }| j	                  d|       | j	                  d|       y )Nr(  --completionr   r   r   r   r   r   r   assertInr!   completion_scripts     r"   testTabCompletionNoNamez FireTest.testTabCompletionNoName/  s:    		"--$9OPMM(-.MM(-.r&   c                     t        j                  t        j                  ddgd      }| j	                  d|       | j	                  d|       y )Nr(  r5  r}   r   r   r   r   r6  r8  s     r"   testTabCompletionzFireTest.testTabCompletion4  s@    		
n5CAMM(-.MM(-.r&   c                     dd i}t        j                  |ddgd      }| j                  d|       | j                  d|       y )Nmultiplyc                     | |z  S r   r   )r{   r|   s     r"   r   z4FireTest.testTabCompletionWithDict.<locals>.<lambda>;  s
    A r&   r(  r5  actCLIr<  )r   r   r7  )r!   actionsr9  s      r"   testTabCompletionWithDictz"FireTest.testTabCompletionWithDict:  sG    -.G		$/h@MM(-.MM*/0r&   c                    | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  d      5  t        j                  t        j                  g d	       d d d        y # 1 sw Y   y xY w)
N)r`   +_r   )rE  rF  )r`   rF  rE  r   )rF  rE  )r`   r   rF  r(  --separator&)r   rF  r:   )r`   r   rF  rE  r  r    s    r"   testBasicSeparatorzFireTest.testBasicSeparatorA  s    		"""0	23=? 			"""5	78BD
 			"""J	L 
	"	"1	% G
ii  *EFG G Gs   7(C((C1c                    | j                  t        j                  t        j                  d      t        j                         | j                  t        j                  t        j                  g       t        j                         | j                  t        j                  t        j                  ddg      t        j                         y)z8Fire should work with classes that disallow comparisons. r   r   N)r   r   r   r   NonComparabler    s    r"   testNonComparablezFireTest.testNonComparableT  s     			"""B/1A1AC		"""B/1A1AC
 			"""S#J79I9IKr&   c                     | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       y )N)get-objarg1arg2r   r   r   r   r   T)rO  rP  rQ  r   r   r   r   r   )r   r   r   r   
ReturnsObjr    s    r"   testExtraSeparatorszFireTest.testExtraSeparatorsa  sY    		MML	N 		
 			MM	 	r&   c                    | j                  t        j                  t        j                  g d      t        j
                         | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j                  g d      d       y )N)rO  rP  rQ  r   r   r   )rO  rP  rQ  r   r   r   T)	rO  rP  rQ  rH  r   r   r(  rG  rH  )rO  rP  $$r   r   r(  rG  rU  )r   r   r   r   rR  r   r   r    s    r"   testSeparatorForChainingz!FireTest.testSeparatorForChainingn  s    		"--H	J

 			MMG	IJNP 			"--5	6 		
 			"--0	1 		r&   c                 r    | j                  t        j                  t        j                  g d      d       y )N)rV   rY   z-3rZ   z-4r   ir6   r    s    r"   testNegativeNumberszFireTest.testNegativeNumbers  s,    		"""B	DEHJr&   c                 N   | j                  t        j                  t        j                  g d      d       | j                  t        j                  t        j
                  g d      d       | j                  t        j                  t        j
                  ddg      d       y )	N)rV   rY   z2.2rZ   z3.0r   gffffff @)integer_reciprocalz	--divisorz5.0g?rZ  z4.0g      ?)r   r   r   r   r7   rB   r    s    r"   testFloatForExpectedIntz FireTest.testFloatForExpectedInt  s    		"""D	FGJL 			>	@ADF 			"##.BE-JKr&   c                 (   | j                  t        j                  t        j                  ddg      t        j                         | j                  d      5  t        j                  t        j                  ddg       d d d        y # 1 sw Y   y xY w)N	--arg1=a1	--arg2=a2r   r:   a1a2)r   r   r   r   InstanceVarsr?   r    s    r"   testClassInstantiationzFireTest.testClassInstantiation  sl    $))BOO-8+,FH//+ 
	"	"1	% 7
ii$67 7 7s   (BBc                    | j                  d      5  t        j                  t        j                  dg       d d d        | j                  d      5  t        j                  t        j                  dg       d d d        | j                  d      5  t        j                  t        j                  g d       d d d        | j                  d      5  t        j                  t        j                  g d       d d d        | j                  d      5  t        j                  t        j                  g d       d d d        | j                  d      5  t        j                  t        j                  g d       d d d        | j                  d      5  t        j                  t        j                  g d	       d d d        | j                  d      5  t        j                  t        j                  g d
       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   jxY w# 1 sw Y   6xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr:   r_  r   r]  )r_  r`  r   r   b1)r]  r^  r   zrun b1)r_  r`  r   r   rd  b2b3)r]  r^  r   r   rd  re  rf  )r_  r`  r   jog)r]  r^  r   rg  )r?   r   r   r   ra  r    s    r"   testTraceErrorszFireTest.testTraceErrors  s   		"	"1	% 1
ii$01		"	"1	% 8
ii+78 
	"	"1	% I
ii)GHI		"	"1	% C
iiACC
 
	"	"1	% D
iiBDD 
	"	"1	% L
ii
//JLL 
	"	"1	% C
ii)ABC		"	"1	% Q
ii)OPQ Q11 18 8I IC C
D DL LC CQ Qs_   'H'H(H"(H/(H<(I	(I(I!HH"H,/H9<I	II!I*c                 r    | j                  t        j                  t        j                  ddg      d       y Nr   r   r   r   )r   r   r   r   DefaultMethodr    s    r"   testClassWithDefaultMethodz#FireTest.testClassWithDefaultMethod  s+    		"""Xt,<=rr&   c                 r    | j                  t        j                  t        j                  ddg      d       y rj  )r   r   r   r   InvalidPropertyr    s    r"   testClassWithInvalidPropertyz%FireTest.testClassWithInvalidProperty  s+    		"$$x.>?r&   c                 4   | j                  d      5  t        j                  t        j                  dg       d d d        | j                  d      5  t        j                  t        j                  dg       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr   r0  r   r/  )r?   r   r   r   decorated_methodr    s    r"   testHelpKwargsDecoratorz FireTest.testHelpKwargsDecorator  sy    		"	"1	% 5
ii##dV45		"	"1	% 9
ii##hZ89 95 59 9s   'B'BBBc                     | j                  t        j                  t        j                  j
                  g d      d       y )N)r   rG   r   r   r   )r   r   r   r   ri   WithAsyncior    s    r"   testFireAsynciozFireTest.testFireAsyncio  s/    TYYrvv11'BDEGIr&   N)A__name__
__module____qualname__r#   r%   r+   r3   r8   rC   rL   rO   rR   rT   r[   r^   ra   rd   rg   rk   rq   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r&  r,  r1  r3  r:  r=  rC  rI  rM  rS  rV  rX  r[  rb  rh  rl  ro  rr  ru  r   r&   r"   r   r      sW   =C
-
GB

EDF"CJ0 MOQK D)NHL%
%
D 

HCL(P">@2H"H"?
!4F=<C/
/1G&K,J

7Q:

9Ir&   r   __main__)__doc__r/   r   unittestr   r   r   r   r   BaseTestCaser   rv  mainr   r&   r"   <module>r~     sN    ! 	 
   & s
Iy%% s
Il z).. r&   