
    `j"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                     dS dS )	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@d?S )@FireTestc                 L   t           j                            t          ddg          5  t	          j        t          j                   t	          j        t          j                   t	          j        t          j	                   d d d            n# 1 swxY w Y   | 
                    t	          j        t          j        d          d           | 
                    t	          j        t          j        d          d           | 
                    t	          j        t          j        dd	g          d           | 
                    t	          j        t          j        d
dg          d           | 
                    t	          j        t          j        dd	g          d           d S )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    R/home/jworkman/hermes-web-chat/venv/lib/python3.11/site-packages/fire/fire_test.pytestFirezFireTest.testFire   s   			3	5	5  
i
i !!!
i              
 	TYr}jAAA2FFFTYrHHH!LLLTYr3HHH"MMMTYr6(0#8 8 89:< < <TYr6(0#8 8 89;= = = = =s   ABBBc                     |                      t          j        t          j        d          d           |                      t          j        t          j        ddg          d           d S )Nzdouble 2r   r   r   )r   r   r   r   r   r    s    r"   testFirePositionalCommandz"FireTest.testFirePositionalCommand*   sT    TYr}j991===TYr}xo>>BBBBB    c                     |                      t                    5  t          j        t          j        d           d d d            d S # 1 swxY w Y   d S )N
   r   )assertRaises
ValueErrorr   r   r   r   r    s    r"   testFireInvalidCommandArgz"FireTest.testFireInvalidCommandArg/   s    			:	&	& - -
i,,,,- - - - - - - - - - - - - - - - - -s   !A		AAc           	      ^   t           j                            t          dt          j                            ddd          g          5  |                     dd           5  t          j	        t          j                   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )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GLL);= = >
? 
?   ##+G+/ $ 1 1  	"(                               s6   B"B
>B"
B	B"B	B""B&)B&c                 p    |                      t          j        t          j        dg          d           d S )Ntenr   r(   r   r   r   r   MixedDefaultsr    s    r"   testFireNoArgszFireTest.testFireNoArgs<   s2    TYr/%AAA2FFFFFr&   c                    |                      d          5  t          j        t          j        dg           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        dg           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        ddg           d d d            n# 1 swxY w Y   |                     t                    5  t          j        t          j	        ddg           d d d            d S # 1 swxY w Y   d S )	N   nomethodr   r   deltax
reciprocalz0.0)
assertRaisesFireExitr   r   r   r   r   TypedPropertiesr)   ZeroDivisionErrorNumberDefaultsr    s    r"   testFireExceptionszFireTest.testFireExceptions?   s7   		"	"1	%	% 0 0
i:,////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0		"	"1	%	% 3 3
iz22223 3 3 3 3 3 3 3 3 3 3 3 3 3 3		"	"1	%	% < <
i"WcN;;;;< < < < < < < < < < < < < < < 
		,	-	- B B
i!L%+@AAAAB B B B B B B B B B B B B B B B B BsG   "AAA$"BBB2#C!!C%(C%#D66D:=D:c                    |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           d S Nr   --count5r   r(   r   rG   rH      r   r   r   r   r   r   r    s    r"   testFireNamedArgszFireTest.testFireNamedArgsL   s    TYr'A'A'AC C CDFH H HTYr'A'A'AC C CDFH H H	")3M3M3MNNN
   		")3M3M3MNNN
    r&   c                    |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           d S )N)r   -countrH   r   r(   )r   rN   rH   rJ   rK   r    s    r"   testFireNamedArgsSingleHyphenz&FireTest.testFireNamedArgsSingleHyphenX   s    TYr'@'@'@B B BCEG G GTYr'@'@'@B B BCEG G G	")3L3L3LMMM
   		")3L3L3LMMM
    r&   c                     |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           d S )Nr   z	--count=5r   r(   r   rJ   r   r   r   r   r   r    s    r"   testFireNamedArgsWithEqualsz$FireTest.testFireNamedArgsWithEqualsd   s    TYr(0+'>@ @ @ACE E ETYr(0+'>@ @ @ACE E E E Er&   c                     |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           d S )Nr   z-count=5r   r(   r   rJ   rQ   r    s    r"   'testFireNamedArgsWithEqualsSingleHyphenz0FireTest.testFireNamedArgsWithEqualsSingleHyphenj   s    TYr(0*'=? ? ?@BD D DTYr(0*'=? ? ?@BD D D D Dr&   c                    |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d	          d           |                      t          j        t          j        g d
          d           d S )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   TYr/9J9J9JKKKQOOOTYr/'C'C'CE E EFGI I ITYr/'B'B'BD D DEFH H HTYr/'C'C'CE E EFGI I ITYr/'B'B'BD D DEFH H H	""@@@	B 	B 	BCDF F F 		""@@@	B 	B 	BCDF F F F Fr&   c                    |                      t          j        t          j        dg          d           |                      t          j        t          j        ddg          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           d S )	NrV   r   r   rW      )rV   rY   rW   )rV   rZ   r   r   r6   r    s    r"   testFireAllNamedArgsOneMissingz'FireTest.testFireAllNamedArgsOneMissing   s    TYr/%AAA1EEETYr/%FFFJJJTYr/'>'>'>@ @ @ABD D DTYr/'='='=? ? ?@AC C C C Cr&   c                    |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d	          d           |                      t          j        t          j        g d
          d           d S )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,B,BCCCVM M M	"";;;	= 	= 	=>DF F F 		"":::	< 	< 	<=CE E E 		"";;;	= 	= 	=>DF F F 		"":::	< 	< 	<=CE E E 		???	A 	A 	ABHJ J J 		???	A 	A 	ABHJ J J J Jr&   c                    |                      d          5  t          j        t          j        dg           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                     t          j        t          j        ddg          d           |                     t          j        t          j        g d          d           d S )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	%	% & &
i #& & & && & & & & & & & & & & & & & & 
	"	"1	%	% G G
i *E*E*EFFFFG G G G G G G G G G G G G G G 		""Z,=>>>J J J	"",H,H,HIII    s#   "AAA$#BBBc                     |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           d S )Nr   rH   r   r(   r   rJ   )r   r   r   r   Annotationsr    s    r"   testFireAnnotatedArgszFireTest.testFireAnnotatedArgs   s^    TYr~#GGGLLLTYr~#GGGLLLLLr&   c                    |                      d          5  t          j        t          j        j        ddg           d d d            n# 1 swxY w Y   |                     t          j        t          j        j        g d          d           |                     t          j        t          j        j        g d          d           d S )	Nr:   r   rH   r   rF   r(   rI   rJ   )r?   r   r   r   py3KeywordOnlyr   r    s    r"   testFireKeywordOnlyArgsz FireTest.testFireKeywordOnlyArgs   s   		"	"1	%	% = =
i"XsO<<<<= = = = = = = = = = = = = = = 		"&$.H.H.HIII2O O O	"&$.H.H.HIII2O O O O Os   (A

AAc                     |                      t          j        t          j        dg          d           |                      t          j        t          j        dg          d           d S )Nalphar   Tbeta)r]   r:      r   r   r   r   r@   r    s    r"   testFirePropertieszFireTest.testFireProperties   s\    TYr1G9EEEtLLLTYr1F8DDDiPPPPPr&   c                     |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           d S )N)charlier   hellor   
hellohello)rs   r   wwwwrp   r    s    r"   testFireRecursionzFireTest.testFireRecursion   s    	"$888	: 	: 	:;GI I I 	TYr1'A'A'AC C CDIK K K K Kr&   c                     |                      t          j        t          j        g d          g d           |                      t          j        t          j        g d          g d           d S )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   s    	"*999	; 	; 	;"""$ $ $ 		"*&E&E&EFFF    r&   c                     |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           d S )N)varcharsrW   r   r}   r~   r   )r]   r:   cd)r   r   r   r}   r~   e)ro   r   cder   r    s    r"   testFireVarArgsWithNamedArgsz%FireTest.testFireVarArgsWithNamedArgs   sz    	"*&F&F&FGGG   		"*&K&K&KLLL    r&   c                    |                      t          j        t          j        g d          ddd           |                      t          j        t          j        g d          ddi           |                      t          j        t          j        g d	          ddi           |                      t          j        t          j        d
          ddi           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           d S )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   	I???	A 	A 	A $$	& & & 		I< < <	= 	= 	= 
78: : : 		I: : :	; 	; 	; 
78: : : 		II	K 	K 	K 
78	: : :
 		")BBB	D 	D 	D   		IJJJ	L 	L 	L 		    r&   c                     |                      t          j        t          j        g d          ddddif           |                      t          j        t          j        g d          dd ddif           d S )	N)runHelloWorld--cellisr   r   r   cellr   )r   r   r   okr   r   r    s    r"   ,testFireKeywordArgsWithMissingPositionalArgsz5FireTest.testFireKeywordArgsWithMissingPositionalArgs   s    	")%N%N%NOOO	'FD>*, , , 		")%E%E%EFFF	$') ) ) ) )r&   c                     |                      t          j        t          j                    g d          d           |                      t          j        t          j                    g d          d           d S rE   rQ   r    s    r"   testFireObjectzFireTest.testFireObject  s    	"/##-G-G-GHHH"N N N	"/##-G-G-GHHH"N N N N Nr&   c                     d
ddd}|                      t          j        |ddg          d           |                      t          j        |d	g          d           d S )Nr   c                     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  sr    ### I 	TYy8S/BBBBGGGTYy8*===wGGGGGr&   c                    |                      t          j        t          j        ddg          d           |                      t          j        t          j        g d          d           |                     t          j        t          j        ddg          t                     |                      t          j        t          j        g d          d	           d S )
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 G G	"$.H.H.HIII3P P P	"$w.?@@@$H H H	"$.D.D.DEEEsL L L L Lr&   c                     t          j                    }t          j        |g           }|                     t          |          d           d S Nr   ro   )r   
simple_setr   r   r   lenr!   r   results      r"   testFireSetzFireTest.testFireSet  sC    IYy"---FS[[!$$$$$r&   c                     t          j                    }t          j        |g           }|                     t          |          d           d S r   )r   simple_frozensetr   r   r   r   r   s      r"   testFireFrozensetzFireTest.testFireFrozenset"  sF    #%%IYy"---FS[[!$$$$$r&   c                    g d}|                      t          j        |dg          d           |                      t          j        |dg          d           |                      t          j        |dg          d           d S )N)zeroonetwothreer   r   r   r   r   z-1r   r   s     r"   testFireListzFireTest.testFireList'  s    ///ITYy3%888%@@@TYy3%888'BBBTYy4&9997CCCCCr&   c                     |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           d S )Nr   rc   r   alexrW   bethanyrp   r    s    r"   testFireObjectWithListzFireTest.testFireObjectWithList-  sr    TYr1FC=III  TYr1FC=III         r&   c                     |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           d S )Nfoxrc   r   carryrW   dividerp   r    s    r"   testFireObjectWithTuplez FireTest.testFireObjectWithTuple3  sr    TYr1E3<HHH  TYr1E3<HHH    r&   c                 r    |                      t          j        t          j        g d          d           d S )N)r   countr   r   r]   rp   r    s    r"   testFireObjectWithListAsObjectz'FireTest.testFireObjectWithListAsObject9  sC    	"$.J.J.JKKK	    r&   c                 r    |                      t          j        t          j        g d          d           d S )N)r   r   r   r   r]   rp   r    s    r"   testFireObjectWithTupleAsObjectz(FireTest.testFireObjectWithTupleAsObject>  sC    	"$.H.H.HIII	    r&   c                 p   |                      t          j        g d          d           d }|                      t          j        ddg          d           |                      t          j        dd	g          d
           dd}|                      t          j        ddg          h d           d S )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~   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    TY'M'M'MNNN  %%ITYY'?@@@#FFFTYY'?@@@#FFF,,,DTY}555GGGGGr&   c                     |                      t          j        t          j        dg          d           |                      t          j        t          j        dg          d           d S )Nzunderscore-exampler   zfish fingersunderscore_exampler   r   r   r   Underscoresr    s    r"   testFireUnderscoreszFireTest.testFireUnderscoresL  s    	"./0	2 	2 	23AC C C 		"./0	2 	2 	23AC C C C Cr&   c                 J   |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           d S )Nzunderscore-functionexampler   underscore_functionz--underscore-arg=scorescorez--underscore_arg=scorer   r    s    r"   testFireUnderscoresInArgz!FireTest.testFireUnderscoresInArgT  s    	".0)<	> 	> 	>?HJ J J 		".02JK	M 	M 	M   		".02JK	M 	M 	M    r&   c                    |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           |                      t          j        t          j        dd	g          d           |                      t          j        t          j        dd
g          d           d S )Nas-boolTruer   TFalseFz
--arg=Truez--arg=Falsez--argz--noarg)r   r   r   r   BoolConverterr    s    r"   testBoolParsingzFireTest.testBoolParsinga  sR   TYr/)V9LMMM  	""Y,@AAA5J J J	""Y,EFFFN N N	""Y,FGGGP P PTYr/)W9MNNN  	""Y	,BCCCUL L L L Lr&   c                    |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d	          d
           |                      t          j        t          j        g d          d           d S )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77	9 	9 	9:GI I I 		""===	? 	? 	?@KM M M 		""AAA	C 	C 	CDNP P P 		"">>>	@ 	@ 	@AKM M M 		""===	? 	? 	?@MO O O 		"",H,H,HIII    r&   c                 "   |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d	          d
           d S )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 L L 		""???	A 	A 	ABLN N N 		""<<<	> 	> 	>?IK K K 		"";;;	= 	= 	=>KM M M 		""@@@	B 	B 	BCNP P P P Pr&   c                 (   |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                     d          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      t          j        t          j        g d	          d
           |                      t          j        t          j        ddg          d           |                      t          j        t          j        d          d           d S )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  s$   	""777	9 	9 	9:CE E E 		"">>>	@ 	@ 	@   		""444	6 	6 	67AC C C
 
	"	"1	%	% M M
i *K*K*KLLLLM M M M M M M M M M M M M M M 		???	A 	A 	A 		   	TYr/(24D'EG G G$& & & 		"",JKKK    s   8#C''C+.C+c                 .   |                      t          j        t          j        ddg          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d	          d
           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                     d          5  t          j        t          j        ddg           d d d            d S # 1 swxY w Y   d S )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  s8   	""%t,	. 	. 	./:< < < 		""999	; 	; 	;<FH H H 		""222	4 	4 	45AC C C 		""888	: 	: 	:;EG G G 		"">>>	@ 	@ 	@AIK K K 		""EEE	G 	G 	G   
	"	"1	%	% @ @ i"Z,>????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s   #F

FFc                 "   |                      t          j        t          j        ddg          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d	          d
           |                      t          j        t          j        g d          d           d S )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  sU   	""%y1	3 	3 	34?A A A 		"";;;	= 	= 	=>EG G G 		"";;;	= 	= 	=>IK K K 		"";;;	= 	= 	=>FH H H 		"";;;	= 	= 	=>FH H H H Hr&   c                 "   |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d           |                      t          j        t          j        ddg          d	           |                      t          j        t          j        g d
          d           d S )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  sI   	"$&-	/ 	/ 	/0<> > > 		"$&0	2 	2 	23=? ? ? 		"$&.	0 	0 	01=? ? ? 		"$&1	3 	3 	34@B B B 		"$777	9 	9 	9:FH H H H Hr&   c                 r    |                      t          j        t          j        g d          d           d S )N)rV   z-DrH   z-Gr   r   rJ   )r   r   r   r   CapitalizedArgNamesr    s    r"   &testSingleCharFlagParsingCapitalLetterz/FireTest.testSingleCharFlagParsingCapitalLetter  sI    	"(888	: 	: 	:;=? ? ? ? ?r&   c                    d }|                      t          j        |ddg          d           |                      t          j        |ddg          d           |                     d          5  t          j        |ddg           d d d            n# 1 swxY w Y   d	 }|                      t          j        |dg          d
i f           |                      t          j        |dg          di f           |                     d          5  t          j        |dg           d d d            n# 1 swxY w Y   |                      t          j        |ddg          ddd
if           d }|                      t          j        |ddg          ddd
if           |                      t          j        |ddg          dddif           |                      t          j        |ddg          dddif           d S )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      	TYsY,DEEE!# # #TYsY,FGGG"$ $ $ 
	"	"1	%	% ; ; ik=9::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;  TYsYK8884*EEETYs[M:::UBKHHH		"	"1	%	% 1 1
i./00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 	TYs[:J,KLLLi./1 1 1  TYs]I,FGGG/1 1 1TYs]K,HIII/02 2 2TYs]M,JKKK	5124 4 4 4 4s$   1BBBD77D;>D;c                    |                      dd          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      dd          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      dd          5  t          j        t          j        ddg           d d d            d S # 1 swxY w Y   d S )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	6 P P
i *N*N*NOOOOP P P P P P P P P P P P P P P		"	"1o	6	6 K K
i *I*I*IJJJJK K K K K K K K K K K K K K K		"	"1o	6	6 = =
i 4*;<<<<= = = = = = = = = = = = = = = = = =5   #AA
A
'#BBB7#C''C+.C+c                    |                      d          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        ddg           d d d            d S # 1 swxY w Y   d S )Nr   )r   r   r(  --helpr   )r   r   r(  -hr(  r/  r+  r    s    r"   testHelpFlagzFireTest.testHelpFlag  s   		"	"1	%	% O O
i *M*M*MNNNNO O O O O O O O O O O O O O O		"	"1	%	% K K
i *I*I*IJJJJK K K K K K K K K K K K K K K		"	"1	%	% < <
i 4*:;;;;< < < < < < < < < < < < < < < < < <s5   #AA	A	%#BBB4#C$$C(+C(c                    |                      dd          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      dd          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      dd          5  t          j        t          j        g d           d d d            d S # 1 swxY w Y   d S )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 H
i FFFH H H HH H H H H H H H H H H H H H H 
	"	"1&?	@	@ Q Q
i *O*O*OPPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q		"	"1&?	@	@ C C
i *A*A*ABBBBC C C C C C C C C C C C C C C C C Cr-  c                     t          j        t          j        ddg          }|                     d|           |                     d|           d S )Nr(  --completionr   r   r   r   r   r   r   assertInr!   completion_scripts     r"   testTabCompletionNoNamez FireTest.testTabCompletionNoName/  sN    	"-$9OPPPMM(-...MM(-.....r&   c                     t          j        t          j        ddgd          }|                     d|           |                     d|           d S )Nr(  r5  r}   r   r   r   r   r6  r8  s     r"   testTabCompletionzFireTest.testTabCompletion4  sZ    	
n5CA A AMM(-...MM(-.....r&   c                     dd i}t          j        |ddgd          }|                     d|           |                     d|           d S )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:  sf    --.G	$/h@ @ @MM(-...MM*/00000r&   c                    |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                     d          5  t          j        t          j        g d	           d d d            d S # 1 swxY w Y   d S )
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  sp   	""000	2 	2 	23=? ? ? 		""555	7 	7 	78BD D D
 		""JJJ	L 	L 	L   
	"	"1	%	% G G
i *E*E*EFFFFG G G G G G G G G G G G G G G G G Gs   8#C((C,/C,c                 ~   |                      t          j        t          j        d          t          j                   |                      t          j        t          j        g           t          j                   |                      t          j        t          j        ddg          t          j                   dS )z8Fire should work with classes that disallow comparisons. r   r   N)r   r   r   r   NonComparabler    s    r"   testNonComparablezFireTest.testNonComparableT  s     		""B///1AC C C	""B///1AC C C
 		""S#J7779IK K K K Kr&   c                     |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           d S )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  s    	MLLL	N 	N 	N 		  
 		M  	 	 	 	    r&   c                    |                      t          j        t          j        g d          t          j                   |                     t          j        t          j        g d          d           |                     t          j        t          j        g d          d           |                     t          j        t          j        g d          d           d S )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HH	J 	J 	J
  
 		MGGG	I 	I 	IJNP P P 		"-5 5 5	6 	6 	6 		  
 		"-0 0 0	1 	1 	1 		    r&   c                 r    |                      t          j        t          j        g d          d           d S )N)rV   rY   z-3rZ   z-4r   ir6   r    s    r"   testNegativeNumberszFireTest.testNegativeNumbers  sQ    	""BBB	D 	D 	DEHJ J J J Jr&   c                 J   |                      t          j        t          j        g d          d           |                      t          j        t          j        g d          d           |                      t          j        t          j        ddg          d           d S )	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DD	F 	F 	FGJL L L 		>>>	@ 	@ 	@ADF F F 		"#.BE-JKKK    r&   c                 &   |                      t          j        t          j        ddg          t          j                   |                     d          5  t          j        t          j        ddg           d d d            d S # 1 swxY w Y   d S )N	--arg1=a1	--arg2=a2r   r:   a1a2)r   r   r   r   InstanceVarsr?   r    s    r"   testClassInstantiationzFireTest.testClassInstantiation  s    $)BO-8+,FH H H/+ + + 
	"	"1	%	% 7 7
i$66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   #BB
B
c                    |                      d          5  t          j        t          j        dg           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        dg           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        g d           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        g d	           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        g d
           d d d            d S # 1 swxY w Y   d S )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 1
i$00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1		"	"1	%	% 8 8
i+77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
	"	"1	%	% I I
i)G)G)GHHHHI I I I I I I I I I I I I I I		"	"1	%	% C C
iAAAC C C CC C C C C C C C C C C C C C C
 
	"	"1	%	% D D
iBBBD D D DD D D D D D D D D D D D D D D 
	"	"1	%	% L L
i
/JJJL L L LL L L L L L L L L L L L L L L 
	"	"1	%	% C C
i)A)A)ABBBBC C C C C C C C C C C C C C C		"	"1	%	% Q Q
i)O)O)OPPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs   "AAA$"BBB2#C!!C%(C%#D00D47D4#E??FF#GGG.#HH!$H!=#I--I14I1c                 r    |                      t          j        t          j        ddg          d           d S Nr   r   r   r   )r   r   r   r   DefaultMethodr    s    r"   testClassWithDefaultMethodz#FireTest.testClassWithDefaultMethod  s@    	""Xt,<===r    r&   c                 r    |                      t          j        t          j        ddg          d           d S rj  )r   r   r   r   InvalidPropertyr    s    r"   testClassWithInvalidPropertyz%FireTest.testClassWithInvalidProperty  s@    	"$x.>???    r&   c                 @   |                      d          5  t          j        t          j        dg           d d d            n# 1 swxY w Y   |                      d          5  t          j        t          j        dg           d d d            d S # 1 swxY w Y   d S )Nr   r0  r   r/  )r?   r   r   r   decorated_methodr    s    r"   testHelpKwargsDecoratorz FireTest.testHelpKwargsDecorator  s   		"	"1	%	% 5 5
i#dV44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5		"	"1	%	% 9 9
i#hZ88889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s#   "AAA$"BBBc                 |    |                      t          j        t          j        j        g d          d           d S )N)r   rG   r   r   r   )r   r   r   r   ri   WithAsyncior    s    r"   testFireAsynciozFireTest.testFireAsyncio  sR    TYrv1'B'B'BD D DEGI I I I 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      s       = = =C C C
- - -
  G G GB B B
 
 

 
 
E E ED D DF F F"C C CJ J J0   M M MO O OQ Q QK K K         D) ) )N N NH H HL L L% % %
% % %
D D D         
  
H H HC C C  L L L  (P P P"  >@ @ @2H H H"H H H"? ? ?
!4 !4 !4F= = =< < <C C C/ / /
/ / /1 1 1G G G&K K K    ,J J J

 
 
7 7 7Q Q Q:  
  
9 9 9I I I I Ir&   r   __main__)__doc__r/   r   unittestr   r   r   r   r   BaseTestCaser   rv  mainr   r&   r"   <module>r~     s    !   				 



        & & & & & &      s
I s
I s
I s
I s
Iy% s
I s
I s
Il z). r&   