
    `j%                         d Z ddlmZ ddlmZ ddlm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 core module.    )mock)core)test_components)	testutils)tracec                   l   e Zd Zd Zd Z ej        d          d             Z ej        d          d             Z ej        d          d             Z	 ej        d          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S ) CoreTestc                 J   |                      t          j        d          d           |                      t          j        d          d           |                      t          j        i           d           |                      t          j        ddi          d           d S )N   1hello{}xyz
{"x": "y"})assertEqualr   _OneLineResultselfs    R/home/jworkman/hermes-web-chat/venv/lib/python3.11/site-packages/fire/core_test.pytestOneLineResultzCoreTest.testOneLineResult   s    T(++S111T(117;;;T(,,d333T(#s44lCCCCC    c                     t          j                    }|                     t          j        |                                          d           d S )Nz{'y': {...}})tcCircularReferencer   r   r   create)r   circular_references     r   testOneLineResultCircularRefz%CoreTest.testOneLineResultCircularRef!   sP    -//T();)B)B)D)DEE#% % % % %r   zfire.interact.Embedc                     t          j        t          j        dg           |                     |j                   t          j        t          j        g d           |                     |j                   d S )Nalphacommand)r   ---i)r   Firer   TypedPropertiesassertFalsecalled
assertTruer   
mock_embeds     r   testInteractiveModezCoreTest.testInteractiveMode&   sm    Ib 7)4444Z&'''Ib *?*?*?@@@@OOJ%&&&&&r   c                 ~    t          j        t          j        g d           |                     |j                   d S )N)r   r"   z--interactiver    )r   r$   r   r%   r(   r'   r)   s     r   testInteractiveModeFullArgumentz(CoreTest.testInteractiveModeFullArgument-   s<    Ib *J*J*JKKKKOOJ%&&&&&r   c                    t          j        t          j        g d           |                     |j                   |j        \  \  }}}|                     |           |                     |d         d           | 	                    |d         t          j                   | 	                    |d         t          j                   d S )N)double2r"   r#   r    result   r   r   )r   r$   r   WithDefaultsr(   r'   	call_argsr&   r   assertIsInstancer   	FireTracer   r*   	variablesverboseunused_kwargss        r   testInteractiveModeVariablesz%CoreTest.testInteractiveModeVariables2   s    Ibo'B'B'BCCCCOOJ%&&&*4*>'Y-WYx(!,,,)F+R_===)G,eo>>>>>r   c                    t          j        t          j        g dd           |                     |j                   |j        \  \  }}}|                     |           |                     |d         d           |                     |d         t          j                   |                     |d         t          j                   |                     |d         t          j
                   d S )N)r/   r0   r"   r#   z-vD)r!   namer1   r2   r   r   )r   r$   r   r3   r(   r'   r4   r   r5   r   r6   r7   s        r   $testInteractiveModeVariablesWithNamez-CoreTest.testInteractiveModeVariablesWithName<   s    Ibo777cC C C COOJ%&&&*4*>'Y-OOGYx(!,,,)F+R_===Ys^R_555)G,eo>>>>>r   c                    |                      dd          5  t          j        t          j        ddg           d d d            n# 1 swxY w Y   |                      dd          5  t          j        t          j        dg           d d d            n# 1 swxY w Y   |                      dd          5  t          j        t          j        dg           d d d            d S # 1 swxY w Y   d S )Nr   zSYNOPSIS.*ARG1r"   --helpr    zINFO:.*SYNOPSIS.*ARG1-h)assertRaisesFireExitr   r$   r   InstanceVarsr   s    r   testHelpWithClasszCoreTest.testHelpWithClassI   s   		"	"1&6	7	7 ; ;
i$)9::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;		"	"1&=	>	> 5 5
i(44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5		"	"1&=	>	> 1 1
i$00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s5   #AA
A
'"BBB6"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        ddg           d d d            n# 1 swxY w Y   |                      dd          5  t          j        t          j        ddg           d d d            n# 1 swxY w Y   |                      dd	          5  t          j        t          j        d
dg           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SYNOPSIS.*capitalize)gammar"   rA   r    zINFO:.*SYNOPSIS.*capitalizerG   rA   rB   zINFO:.*SYNOPSIS.*deltadeltazINFO:.*SYNOPSIS.*echoecho)rC   r   r$   r   r%   r   s    r   testHelpWithMemberzCoreTest.testHelpWithMemberQ   s   		"	"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		"	"1&C	D	D A A
i"Wh,?@@@@A A A A A A A A A A A A A A A		"	"1&C	D	D = =
i"WdO<<<<= = = = = = = = = = = = = = =		"	"1&>	?	? A A
i"Wh,?@@@@A A A A A A A A A A A A A A A		"	"1&=	>	> @ @
i"VX,>????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @sY   #AA
A
'#BBB7#C&&C*-C*#D66D:=D:#FFFc                 F   |                      dd          5  t          j        t          j        ddg           d d d            n# 1 swxY w Y   |                      dd          5  t          j        t          j        dg           d d d            d S # 1 swxY w Y   d S )Nr   zSYNOPSIS.*VALUEr"   rA   r    zINFO:.*SYNOPSIS.*VALUE)rC   r   r$   r   ErrorInConstructorr   s    r   testHelpOnErrorInConstructorz%CoreTest.testHelpOnErrorInConstructor]   s1   		"	"1&7	8	8 A A
i%h/?@@@@A A A A A A A A A A A A A A A		"	"1&>	?	? ; ;
i%z::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s#   #AA
A
'"BBBc                    |                      dd           5  t          j        t          j        ddg           d d d            n# 1 swxY w Y   |                      dd           5  t          j        t          j        ddg           d d d            n# 1 swxY w Y   |                      d	d           5  t          j        t          j        ddg           d d d            n# 1 swxY w Y   |                      dd           5  t          j        t          j        dg           d d d            d S # 1 swxY w Y   d S )
NzDESCRIPTION.*stdoutstderrrA   Falser    zhelp in a dict
dictionary__helpr   )assertOutputMatchesr   r$   r   WithHelpArgfunction_with_helpr   s    r   testHelpWithNamespaceCollisionz'CoreTest.testHelpWithNamespaceCollisionc   sZ   		!	!	!	F	F = =
i7(;<<<<= = = = = = = = = = = = = = =		!	!)9$	!	G	G B B
ix(@AAAAB B B B B B B B B B B B B B B		!	!d	!	;	; B B
ix(@AAAAB B B B B B B B B B B B B B B		!	!	!	>	> : :
i%y9999: : : : : : : : : : : : : : : : : :sG   #AAA)#BBB:#C))C-0C-"D::D>D>c                     |                      dd          5  t          j        t          j        g d           d d d            d S # 1 swxY w Y   d S )N   runmisspelled)propsz--a=1z--b=2r[   r    )rC   r   r$   r   Kwargsr   s    r   "testInvalidParameterRaisesFireExitz+CoreTest.testInvalidParameterRaisesFireExitn   s    		"	"1o	6	6 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c                     |                      t                    5  t          j        t          j        dg           d d d            d S # 1 swxY w Y   d S )Nfailr    )assertRaises
ValueErrorr   r$   r   ErrorRaiserr   s    r   testErrorRaisingzCoreTest.testErrorRaisingr   s     
		:	&	& 2 2
i11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s   "A

AAc                 X    t          j        d          }|                     |           d S )NExample errorr   	FireErrorassertIsNotNoner   errors     r   testFireErrorzCoreTest.testFireErrorx   s+    N?++Er   c                 Z    t          j        dd          }|                     |           d S )Nrf   valuerg   rj   s     r   testFireErrorMultipleValuesz$CoreTest.testFireErrorMultipleValues|   s-    N?G44Er   c                 H   |                      dd           5  t          j        t          j        dg           d d d            n# 1 swxY w Y   |                      dd           5  t          j        t          j        dg           d d d            d S # 1 swxY w Y   d S )Nr   rO   totally_emptyr    nothing_printable)rU   r   r$   r   EmptyDictOutputr   s    r   testPrintEmptyDictzCoreTest.testPrintEmptyDict   s8   		!	!d	!	;	; ? ?
i"_,=>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?		!	!d	!	;	; C C
i"-@,ABBBBC C C C C C C C C C C C C C C C C Cs#   "AA
A
("BBBc                 F   |                      d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 )NzA:\s+A\s+2:\s+2\s+rO   	non_emptyr    r   )rP   empty)rU   r   r$   r   OrderedDictionaryr   s    r   testPrintOrderedDictzCoreTest.testPrintOrderedDict   s    		!	!)>t	!	L	L = =
i${m<<<<= = = = = = = = = = = = = = =		!	!	!	.	. 9 9
i$wi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                     |                      dd           5  t          j        t          j        ddg           d d d            d S # 1 swxY w Y   d S )N11rO   pointr   r    rU   r   r$   r   
NamedTupler   s    r   testPrintNamedTupleFieldz!CoreTest.testPrintNamedTupleField       		!	!d	!	;	; 7 7
i~66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7   #AAAc                     |                      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   rO   matching_namesr    r}   r   s    r   'testPrintNamedTupleFieldNameEqualsValuez0CoreTest.testPrintNamedTupleFieldNameEqualsValue   s    		!	!T	!	:	: @ @
i(8#'>????@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @r   c                     |                      dd           5  t          j        t          j        ddg           d d d            d S # 1 swxY w Y   d S )N22rO   r|   r   r    r}   r   s    r   testPrintNamedTupleIndexz!CoreTest.testPrintNamedTupleIndex   r   r   c                     |                      dd           5  t          j        t          j                    g            d d d            d S # 1 swxY w Y   d S Nz	.*three.*rO   r    )rU   r   r$   r   
simple_setr   s    r   testPrintSetzCoreTest.testPrintSet   s    		!	!T	!	B	B - -
i,,,,- - - - - - - - - - - - - - - - - -   (AAAc                     |                      dd           5  t          j        t          j                    g            d d d            d S # 1 swxY w Y   d S r   )rU   r   r$   r   simple_frozensetr   s    r   testPrintFrozenSetzCoreTest.testPrintFrozenSet   s    		!	!T	!	B	B 3 3
i#%%r22223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3r   c                     |                      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{   rO   r|   z-2r    r}   r   s    r    testPrintNamedTupleNegativeIndexz)CoreTest.testPrintNamedTupleNegativeIndex   s    		!	!d	!	;	; 8 8
i77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8r   c                    |                      dd           5  t          j        t          j                    dg           d d d            n# 1 swxY w Y   |                      dd           5  t          j        t          j                    ddg           d d d            n# 1 swxY w Y   |                      dd           5  t          j        t          j                    g            d d d            d S # 1 swxY w Y   d S )	Nzfoo:\s+foo\s+rO   z	--foo=foor    zfoo\s+	print_msgfoo )rU   r   r$   r   CallableWithKeywordArgumentr   s    r   testCallablezCoreTest.testCallable   s   		!	!)9$	!	G	G I I
i.00;-HHHHI I I I I I I I I I I I I I I		!	!4	!	@	@ P P
i.00;:NOOOOP P P P P P P P P P P P P P P		!	!T	!	:	: > >
i.00"====> > > > > > > > > > > > > > > > > >s5   )AAA/*B%%B),B)(C<<D D c                     |                      dd          5  t          j        t          j                    ddg           d d d            d S # 1 swxY w Y   d S )NrZ   r   34r    )rC   r   r$   r   CallableWithPositionalArgsr   s    r   testCallableWithPositionalArgsz'CoreTest.testCallableWithPositionalArgs   s    		"	"1b	)	) E E i-//#sDDDDE E E E E E E E E E E E E E E E E Es   *AAAc                 r    |                      t          j        t          j        ddg          d           d S )N	static_fnr   r    r   r   r$   r   HasStaticAndClassMethodsr   s    r   testStaticMethodzCoreTest.testStaticMethod   sH    	"-&0	2 	2 	2    r   c                 r    |                      t          j        t          j        ddg          d           d S )Nclass_fn6r       r   r   s    r   testClassMethodzCoreTest.testClassMethod   sH    	"-%s+	- 	- 	-	    r   c                    d }d }|                      dd           5  t          j        |dg|          }d d d            n# 1 swxY w Y   |                      dd           5  t          j        |dg|          }d d d            n# 1 swxY w Y   |                      d	d           5  t          j        |d	g|          }d d d            n# 1 swxY w Y   |                      d
d           5  t          j        |dg|          }d d d            n# 1 swxY w Y   |                     t          j                  5  t          j        |d	gd           d d d            d S # 1 swxY w Y   d S )Nc                 (   t          | t                    rd                    d | D                       S t          | t                    r>d                    d t	          |                                           D                       S | dk    rddgS | S )Nz, c              3   4   K   | ]}t          |          V  d S N)str).0xis     r   	<genexpr>zBCoreTest.testCustomSerialize.<locals>.serialize.<locals>.<genexpr>   s(      --RR------r   c              3   H   K   | ]\  }}d                      ||          V  dS )z{}={!r}N)format)r   kvs      r   r   zBCoreTest.testCustomSerialize.<locals>.serialize.<locals>.<genexpr>   s6      NNDAq))!Q//NNNNNNr   specialz
SURPRISE!!zI'm a list!)
isinstancelistjoindictsorteditemsr   s    r   	serializez/CoreTest.testCustomSerialize.<locals>.serialize   s    	At		 .yy--1------	At		 OyyNNF17799<M<MNNNNNN	
im,,hr   c                     | S r    r   s    r   <lambda>z.CoreTest.testCustomSerialize.<locals>.<lambda>   s    a r   za, brO   z[a,b])r!   r   za=5, b=6z	{a:5,b:6}asdfzSURPRISE!!
I'm a list!
r   7   )rU   r   r$   ra   rh   )r   r   ident_s       r   testCustomSerializezCoreTest.testCustomSerialize   s      KE		!	!	!	=	= C C
)EG9	
B
B
BaC C C C C C C C C C C C C C C		!	!D	!	A	A G G
)EK=I
F
F
FaG G G G G G G G G G G G G G G		!	!	!	=	= B B
)EF8y
A
A
AaB B B B B B B B B B B B B B B		!	!*4 
" 
9 
9 E E
)EI;)
D
D
DaE E E E E E E E E E E E E E E 
		4>	*	* 7 7
ix266667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7sY   AA
A%B

BB,CCC3DDDE((E,/E,c                 |    |                      t          j        t          j        j        ddg          d           d S )Nlru_cache_in_classr   r    )r   r   r$   r   py3LruCacheDecoratedMethodr   s    r   testLruCacheDecoratorBoundArgz&CoreTest.testLruCacheDecoratorBoundArg   sO    	"&0/7	9 	9 	9:?A A A A Ar   c                 z    |                      t          j        t          j        j        dg          d           d S )Nr   r    )r   r   r$   r   r   lru_cache_decoratedr   s    r   testLruCacheDecoratorzCoreTest.testLruCacheDecorator   sG    	"&, '	# 	# 	#$)+ + + + +r   N)"__name__
__module____qualname__r   r   r   patchr+   r-   r;   r?   rE   rJ   rM   rX   r^   rd   rl   ro   rt   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r	      sD       D D D% % %
 4:#$$' ' %$' 4:#$$' ' %$' 4:#$$? ? %$? 4:#$$	? 	? %$	?1 1 1
@ 
@ 
@; ; ;	: 	: 	:Q Q Q2 2 2          C C C9 9 97 7 7@ @ @7 7 7- - -3 3 38 8 8> > >E E E    7 7 70A A A
+ + + + +r   r	   __main__N)__doc__unittestr   firer   r   r   r   r   BaseTestCaser	   r   mainr   r   r   <module>r      s    !               & & & & & &            G+ G+ G+ G+ G+y% G+ G+ G+T z). r   