
    |h                         d Z ddlZddlZddlmZ ddlmZ  G d dej                        Z G d dej                        Ze	d	k(  r ej                          yy)
z%Test using Fire via `python -m fire`.    N)__main__)	testutilsc                       e Zd ZdZd Zd Zy)MainModuleTestz:Tests to verify the behavior of __main__ (python -m fire).c                 ~    | j                  d      5  t        j                  ddg       d d d        y # 1 sw Y   y xY w)N
gettempdir__main__.pytempfile)assertOutputMatchesr   mainselfs    M/var/www/html/test/engine/venv/lib/python3.12/site-packages/fire/main_test.pytestNameSettingzMainModuleTest.testNameSetting   s6    		!	!,	/ 1mm]J/01 1 1s   3<c                 F   t         j                  j                  ddd      }| j                  d|z        5  t	        j
                  g d       d d d        | j                  d|z        5  t	        j
                  g d       d d d        y # 1 sw Y   >xY w# 1 sw Y   y xY w)Npart1part2part3z%s
)r	   zos.pathjoinr   r   r   )r	   ospath-r   r   r   r   )r   r   r   r   r   r   )r   expecteds     r   testArgPassingzMainModuleTest.testArgPassing    s    ww||GWg6H		!	!&8"3	4 Imm
GII 
	!	!&8"3	4 Qmm
OQQ QI IQ Qs   B*BBB N)__name__
__module____qualname____doc__r   r        r   r   r      s    B1
Qr    r   c                   :     e Zd ZdZ fdZd Zd Zd Zd Z xZ	S )MainModuleFileTestz=Tests to verify correct import behavior for file executables.c                     t         |           t        j                  d      | _        | j                  j                  d       | j                  j                          t        j                         | _        y )Nz.py)suffixs3   class Foo:
  def double(self, n):
    return 2 * n
)supersetUpr
   NamedTemporaryFilefilewriteflushfile2)r   	__class__s    r   r&   zMainModuleFileTest.setUp-   sM    	GMO++59DIIIOOMNIIOO,,.DJr    c           	          | j                  d      5  t        j                  d| j                  j                  ddddg       d d d        y # 1 sw Y   y xY w)N4r	   Foodouble--n2)r   r   r   r(   namer   s    r   testFileNameFirez#MainModuleFileTest.testFileNameFire5   sN    		!	!#	& Hmm$))..%5#
FHH H Hs   0AAc           	          | j                  t              5  t        j                  d| j                  j
                  ddddg       d d d        y # 1 sw Y   y xY w)Nr	   r/   r0   r1   r2   )assertRaises
ValueErrorr   r   r+   r3   r   s    r   testFileNameFailurez&MainModuleFileTest.testFileNameFailure;   sN    			:	& Imm$**//5(E3
GII I Is   0AAc                    | j                  d      5  t        j                  j                  | j                  j
                        }t        j                  |      5  t        dd      5  t        j                  ddg       d d d        t        j                  d       d d d        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)Nr   r
   wr	   )r   r   r   dirnamer(   r3   r   ChangeDirectoryopenr   r   remover   r;   s     r   testFileNameModuleDuplicationz0MainModuleFileTest.testFileNameModuleDuplicationA   s    		!	!,	/ 			/g$$W- *c" 	
-- 	 			*	 		 	 	 	s<   A	CB:(B. B:C.B73B::C	?CCc                    | j                  t        d      5  t        j                  j	                  | j
                  j                        }t        j                  |      5  t        dd      5  t        j                  ddg       d d d        t        j                  d       d d d        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'Fire can only be called on \.py files\.foobarr:   r	   )assertRaisesRegexr7   r   r   r;   r(   r3   r   r<   r=   r   r   r>   r?   s     r   testFileNameModuleFileFailurez0MainModuleFileTest.testFileNameModuleFileFailureN   s    			
 J
L 
		/g$$W- (C  	
-- 	 			(
 
	 	 
 
s<   A	C B?-B3B?"C3B<8B??C	CC)
r   r   r   r   r&   r4   r8   r@   rD   __classcell__)r,   s   @r   r"   r"   *   s!    E/HIr    r"   r   )r   r   r
   firer   r   BaseTestCaser   r"   r   r   r   r    r   <module>rH      sX    , 	   QY++ Q$0// 0f z).. r    