
    iz                         S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	  SSKJ
r
   " S S\R                  5      r\R                  S 5       r\R                  r\R                   r\R"                  rg)	z"Utilities for Python Fire's tests.    N)mock)core)tracec                   h    \ rS rSrSr\R                  SS j5       r\R                  SS j5       rSr	g)	BaseTestCase   z'Shared test case for Python Fire tests.c              #     #    [         R                  " 5       n[         R                  " 5       n [        R                  R	                  [
        SU5         [        R                  R	                  [
        SU5         Sv   SSS5        SSS5        U(       dZ  [
        R                  R                  UR                  5       5        [
        R                  R                  UR                  5       5        SX4SX%44 H  u  pgnUR                  5       n	Uc  U	(       a  [        U< SU	< 35      eM4  [        R                  " Xy[        R                  [        R                  -  5      (       a  Mq  [        U< SU	< SU< 35      e   g! , (       d  f       GN
= f! , (       d  f       GN= f! U(       d[  [
        R                  R                  UR                  5       5        [
        R                  R                  UR                  5       5        f f = f7f)a  Asserts that the context generates stdout and stderr matching regexps.

Note: If wrapped code raises an exception, stdout and stderr will not be
  checked.

Args:
  stdout: (str) regexp to match against stdout (None will check no stdout)
  stderr: (str) regexp to match against stderr (None will check no stderr)
  capture: (bool, default True) do not bubble up stdout or stderr

Yields:
  Yields to the wrapped context.
stdoutstderrNz: Expected no output. Got: z: Expected z
 to match )ioStringIOr   patchobjectsysr
   writegetvaluer   AssertionErrorresearchDOTALL	MULTILINE)
selfr
   r   capture	stdout_fp	stderr_fpnameregexpfpvalues
             N/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/fire/testutils.pyassertOutputMatches BaseTestCase.assertOutputMatches    sq     II/::S(I6ZZsHi8
 9 7 

++-.

++-.&:&:<bkkme	 $e - . .  yy		BLL(@AA $eV 5 6 6< 98 76 

++-.

++-. sT   +H%F% &F9F>FF% CH(H
F	F
F"F% %A$H		Hc           	   #     #    U R                  US9   U R                  [        R                  5          Sv    SSS5        SSS5        g! [        R                   a]  nUR                  U:w  a  [        SUR                  < SU< 35      eU R                  UR                  [        R                  5        e SnAff = f! , (       d  f       N= f! , (       d  f       g= f7f)a>  Asserts that a FireExit error is raised in the context.

Allows tests to check that Fire's wrapper around SystemExit is raised
and that a regexp is matched in the output.

Args:
  code: The status code that the FireExit should contain.
  regexp: stdout must match this regex.

Yields:
  Yields to the wrapped context.
)r   NzIncorrect exit code: z != )	r!   assertRaisesr   FireExitcoder   assertIsInstancer   	FireTrace)r   r&   r   excs       r    assertRaisesFireExit!BaseTestCase.assertRaisesFireExitF   s      
	!	!	!	0T]]+	
 , 
1	0 }} 	XX "%((D"2 3 3


		5??
;
	 ,+ 
1	0sP   C  CB>A
C	C 
B;AB66B;;B>>
C	C
CC  N).*r-   T)r-   )
__name__
__module____qualname____firstlineno____doc__
contextlibcontextmanagerr!   r*   __static_attributes__r,       r    r   r      s8    /#6 #6J  r6   r   c              #      #    [         R                  " 5       n[         R                  " U 5         U v   [         R                  " U5        g! [         R                  " U5        f = f7f)z>Context manager to mock a directory change and revert on exit.N)osgetcwdchdir)	directorycwdirs     r    ChangeDirectoryr=   `   s>      ))+%((9
OHHUOBHHUOs   ,A%A
 A%
A""A%)r2   r3   r   r8   r   r   unittestr   firer   r   TestCaser   r4   r=   mainskipskipIfr,   r6   r    <module>rD      sq    )  	 	 	 
    @8$$ @F   }}}}	r6   