
    h%                         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                          y
y
)zTests for the core module.    )mock)core)test_components)	testutils)tracec                   b   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!y) CoreTestc                 0   | j                  t        j                  d      d       | j                  t        j                  d      d       | j                  t        j                  i       d       | j                  t        j                  ddi      d       y )N   1hello{}xyz
{"x": "y"})assertEqualr   _OneLineResultselfs    H/var/www/html/engine/venv/lib/python3.12/site-packages/fire/core_test.pytestOneLineResultzCoreTest.testOneLineResult   sr    T((+S1T((17;T((,d3T((#s4lC    c                     t        j                         }| j                  t        j                  |j                               d       y )Nz{'y': {...}})tcCircularReferencer   r   r   create)r   circular_references     r   testOneLineResultCircularRefz%CoreTest.testOneLineResultCircularRef!   s9    --/T(();)B)B)DE#%r   zfire.interact.Embedc                 
   t        j                  t        j                  dg       | j	                  |j
                         t        j                  t        j                  g d       | j                  |j
                         y )Nalphacommand)r   ---i)r   Firer   TypedPropertiesassertFalsecalled
assertTruer   
mock_embeds     r   testInteractiveModezCoreTest.testInteractiveMode&   sS    IIb  7)4Z&&'IIb  *?@OOJ%%&r   c                     t        j                  t        j                  g d       | j	                  |j
                         y )N)r   r"   z--interactiver    )r   r$   r   r%   r(   r'   r)   s     r   testInteractiveModeFullArgumentz(CoreTest.testInteractiveModeFullArgument-   s)    IIb  *JKOOJ%%&r   c                    t        j                  t        j                  g d       | j	                  |j
                         |j                  \  \  }}}| j                  |       | j                  |d   d       | j                  |d   t        j                         | j                  |d   t        j                         y )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    IIboo'BCOOJ%%&*4*>*>'Y-WYx(!,)F+R__=)G,eoo>r   c                    t        j                  t        j                  g dd       | j	                  |j
                         |j                  \  \  }}}| j	                  |       | j                  |d   d       | j                  |d   t        j                         | j                  |d   t        j                         | j                  |d   t        j                         y )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    IIboo7cCOOJ%%&*4*>*>'Y-OOGYx(!,)F+R__=Ys^R__5)G,eoo>r   c                    | j                  dd      5  t        j                  t        j                  ddg       d d d        | j                  dd      5  t        j                  t        j                  dg       d d d        | j                  dd      5  t        j                  t        j                  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   zSYNOPSIS.*ARG1r"   --helpr    zINFO:.*SYNOPSIS.*ARG1-h)assertRaisesFireExitr   r$   r   InstanceVarsr   s    r   testHelpWithClasszCoreTest.testHelpWithClassI   s    		"	"1&6	7 ;
ii$)9:;		"	"1&=	> 5
ii(45		"	"1&=	> 1
ii$01 1	; ;5 51 1s#   (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                  ddg       d d d        | j                  dd      5  t        j                  t        j                  ddg       d d d        | j                  dd	      5  t        j                  t        j                  d
dg       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   xY w# 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   y xY w)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   sN   		"	"1&<	= G
ii"",EFG		"	"1&C	D A
ii""Wh,?@A		"	"1&C	D =
ii""WdO<=		"	"1&>	? A
ii""Wh,?@A		"	"1&=	> @
ii""VX,>?@ @G GA A= =A A@ @s;   (E(E(E%(E1(E=EE"%E.1E:=Fc                 :   | j                  dd      5  t        j                  t        j                  ddg       d d d        | j                  dd      5  t        j                  t        j                  dg       d d d        y # 1 sw Y   KxY w# 1 sw Y   y xY w)Nr   zSYNOPSIS.*VALUEr"   rA   r    zINFO:.*SYNOPSIS.*VALUE)rC   r   r$   r   ErrorInConstructorr   s    r   testHelpOnErrorInConstructorz%CoreTest.testHelpOnErrorInConstructor]   s    		"	"1&7	8 A
ii%%h/?@A		"	"1&>	? ;
ii%%z:; ;A A; ;s   (B'BBBc                 z   | j                  dd       5  t        j                  t        j                  ddg       d d d        | j                  dd       5  t        j                  t        j                  ddg       d d d        | j                  d	d       5  t        j                  t        j                  ddg       d d d        | j                  dd       5  t        j                  t        j
                  dg       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   dxY w# 1 sw Y   y xY w)
NzDESCRIPTION.*stdoutstderrrA   Falser    zhelp in a dict
dictionary__helpr   )assertOutputMatchesr   r$   r   WithHelpArgfunction_with_helpr   s    r   testHelpWithNamespaceCollisionz'CoreTest.testHelpWithNamespaceCollisionc   s   		!	!	!	F =
ii7(;<=		!	!)9$	!	G B
iix(@AB		!	!d	!	; B
iix(@AB		!	!	!	> :
ii%%y9: := =B BB B: :s/   (D(D(D%'D1DD"%D.1D:c                     | j                  dd      5  t        j                  t        j                  g d       d d d        y # 1 sw Y   y xY w)N   runmisspelled)propsz--a=1z--b=2r[   r    )rC   r   r$   r   Kwargsr   s    r   "testInvalidParameterRaisesFireExitz+CoreTest.testInvalidParameterRaisesFireExitn   s>    		"	"1o	6 Q
ii		#OPQ Q Qs   (AAc                     | j                  t              5  t        j                  t        j
                  dg       d d d        y # 1 sw Y   y xY w)Nfailr    )assertRaises
ValueErrorr   r$   r   ErrorRaiserr   s    r   testErrorRaisingzCoreTest.testErrorRaisingr   s;     
		:	& 2
ii12 2 2s   'AAc                 P    t        j                  d      }| j                  |       y )NExample errorr   	FireErrorassertIsNotNoner   errors     r   testFireErrorzCoreTest.testFireErrorx   s    NN?+Er   c                 R    t        j                  dd      }| j                  |       y )Nrf   valuerg   rj   s     r   testFireErrorMultipleValuesz$CoreTest.testFireErrorMultipleValues|   s     NN?G4Er   c                 <   | j                  dd       5  t        j                  t        j                  dg       d d d        | j                  dd       5  t        j                  t        j                  dg       d d d        y # 1 sw Y   LxY w# 1 sw Y   y xY w)Nr   rO   totally_emptyr    nothing_printable)rU   r   r$   r   EmptyDictOutputr   s    r   testPrintEmptyDictzCoreTest.testPrintEmptyDict   s    		!	!d	!	; ?
ii""_,=>?		!	!d	!	; C
ii""-@,ABC C? ?C Cs   'B'BBBc                 :   | j                  d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   KxY w# 1 sw Y   y xY w)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 =
ii$${m<=		!	!	!	. 9
ii$$wi89 9= =9 9s   'B'BBBc                     | j                  dd       5  t        j                  t        j                  ddg       d d d        y # 1 sw Y   y xY w)N11rO   pointr   r    rU   r   r$   r   
NamedTupler   s    r   testPrintNamedTupleFieldz!CoreTest.testPrintNamedTupleField   @    		!	!d	!	; 7
ii~67 7 7   (AAc                     | j                  dd       5  t        j                  t        j                  ddg       d d d        y # 1 sw Y   y xY w)Nr   rO   matching_namesr    r}   r   s    r   'testPrintNamedTupleFieldNameEqualsValuez0CoreTest.testPrintNamedTupleFieldNameEqualsValue   sF    		!	!T	!	: @
ii(8#'>?@ @ @r   c                     | j                  dd       5  t        j                  t        j                  ddg       d d d        y # 1 sw Y   y xY w)N22rO   r|   r   r    r}   r   s    r   testPrintNamedTupleIndexz!CoreTest.testPrintNamedTupleIndex   r   r   c                     | j                  dd       5  t        j                  t        j                         g        d d d        y # 1 sw Y   y xY wNz	.*three.*rO   r    )rU   r   r$   r   
simple_setr   s    r   testPrintSetzCoreTest.testPrintSet   s>    		!	!T	!	B -
ii,- - -   *AAc                     | j                  dd       5  t        j                  t        j                         g        d d d        y # 1 sw Y   y xY wr   )rU   r   r$   r   simple_frozensetr   s    r   testPrintFrozenSetzCoreTest.testPrintFrozenSet   sA    		!	!T	!	B 3
ii##%r23 3 3r   c                     | j                  dd       5  t        j                  t        j                  ddg       d d d        y # 1 sw Y   y xY w)Nr{   rO   r|   z-2r    r}   r   s    r    testPrintNamedTupleNegativeIndexz)CoreTest.testPrintNamedTupleNegativeIndex   s@    		!	!d	!	; 8
ii78 8 8r   c                    | j                  dd       5  t        j                  t        j                         dg       d d d        | j                  dd       5  t        j                  t        j                         ddg       d d d        | j                  dd       5  t        j                  t        j                         g        d d d        y # 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   y xY w)	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 I
ii..0;-HI		!	!4	!	@ P
ii..0;:NOP		!	!T	!	: >
ii..0"=> >	I IP P> >s#   +C,C !*C,C C),C5c                     | j                  dd      5  t        j                  t        j                         ddg       d d d        y # 1 sw Y   y xY w)NrZ   r   34r    )rC   r   r$   r   CallableWithPositionalArgsr   s    r   testCallableWithPositionalArgsz'CoreTest.testCallableWithPositionalArgs   sH    		"	"1b	) E ii--/#sDE E Es   ,AAc                 r    | j                  t        j                  t        j                  ddg      d       y )N	static_fnr   r    r   r   r$   r   HasStaticAndClassMethodsr   s    r   testStaticMethodzCoreTest.testStaticMethod   s/    		"--&0	2r   c                 r    | j                  t        j                  t        j                  ddg      d       y )Nclass_fn6r       r   r   s    r   testClassMethodzCoreTest.testClassMethod   s/    		"--%s+	-	r   c                    d }d }| j                  dd       5  t        j                  |dg|      }d d d        | j                  dd       5  t        j                  |dg|      }d d d        | j                  d	d       5  t        j                  |d	g|      }d d d        | j                  d
d       5  t        j                  |dg|      }d d d        | j                  t        j                        5  t        j                  |d	gd       d d d        y # 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   oxY w# 1 sw Y   y xY w)Nc                     t        | t              rdj                  d | D              S t        | t              r/dj                  d t	        | j                               D              S | dk(  rddgS | S )Nz, c              3   2   K   | ]  }t        |        y wN)str).0xis     r   	<genexpr>zBCoreTest.testCustomSerialize.<locals>.serialize.<locals>.<genexpr>   s     -RR-s   c              3   F   K   | ]  \  }}d j                  ||        yw)z{}={!r}N)format)r   kvs      r   r   zBCoreTest.testCustomSerialize.<locals>.serialize.<locals>.<genexpr>   s!     NDAq))!Q/Ns   !specialz
SURPRISE!!zI'm a list!)
isinstancelistjoindictsorteditemsr   s    r   	serializez/CoreTest.testCustomSerialize.<locals>.serialize   sb    	At	yy-1---	At	yyNF1779<M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   sS    E		!	!	!	= C
))EG9	
BaC		!	!D	!	A G
))EK=I
FaG		!	!	!	= B
))EF8y
AaB		!	!*4 
" 
9 E
))EI;)
DaE 
		4>>	* 7
iix267 7C CG GB BE E7 7s;   DD)D59E:ED&)D25D>E
Ec                     | j                  t        j                  t        j                  j
                  ddg      d       y )Nlru_cache_in_classr   r    )r   r   r$   r   py3LruCacheDecoratedMethodr   s    r   testLruCacheDecoratorBoundArgz&CoreTest.testLruCacheDecoratorBoundArg   s4    		"&&00/7	9:?Ar   c                     | j                  t        j                  t        j                  j
                  dg      d       y )Nr   r    )r   r   r$   r   r   lru_cache_decoratedr   s    r   testLruCacheDecoratorzCoreTest.testLruCacheDecorator   s0    		"&&,, '	#$)+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	      s   D%
 4::#$' %' 4::#$' %' 4::#$? %? 4::#$	? %	?1
@;	:Q2  C97@7-38>E70A
+r   r	   __main__N)__doc__unittestr   firer   r   r   r   r   BaseTestCaser	   r   mainr   r   r   <module>r      sI    !   &  G+y%% G+T z).. r   