
    [Fi              
       j   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 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 d dlZde
ddfdZ ej$                  d      dee   dededeef   fd       Zdee   deddfdZdee   dededdfdZ ej$                  d      dedeeeef      fd       Zy)    )	Generator)Optional)Union)saferepr)Config)ExitCode)Parser)
FixtureDef)
SubRequest)ScopeNparserreturnc                 z    | j                  d      }|j                  dddd       |j                  dddd	       y )
Ndebugconfigz--setuponlyz--setup-only
store_truez)Only setup fixtures, do not execute tests)actionhelpz--setupshowz--setup-showz,Show setup of fixtures while executing tests)getgroup	addoption)r   groups     c/var/www/html/BankruptcyAI-uat/bankruptcy-ai/venv/lib/python3.12/site-packages/_pytest/setuponly.pypytest_addoptionr      sL    OOM*E	OO8	   
OO;	      T)wrapper
fixturedefrequestc              #     K   	 d |j                   j                  j                  rt        |d      rj| j                  rKt        | j                        r| j	                  |j                        }n&| j                  |j                     }n|j                  }|| _        t        | |j                   d       S S # |j                   j                  j                  rt        |d      rj| j                  rKt        | j                        r| j	                  |j                        }n&| j                  |j                     }n|j                  }|| _        t        | |j                   d       w w xY ww)NparamSETUP)
configoption	setupshowhasattridscallabler   param_indexcached_param_show_fixture_action)r   r   r   s      r   pytest_fixture_setupr)      s    F>>  **w( >>
/ *w}} = *w/B/B C#MME*/
' W^^WE +7>>  **w( >>
/ *w}} = *w/B/B C#MME*/
' W^^WE +s   E)B6 B/E)6B0E&&E)c                     | j                   J|j                  }|j                  j                  r't	        | |j                  d       t        | d      r| `y y y y )NTEARDOWNr'   )cached_resultr    r!   r"   r(   r#   r'   )r   r   r    s      r   pytest_fixture_post_finalizerr-   5   sU     +=="" W^^ZHz>2+ 3 # ,r   r    msgc                 ,   |j                   j                  d      }|r|j                          |j                         }|j	                          t        t        t                    j                  | j                        }|j                  d|z         |j                  dj                  |j                  d      | j                  d   j                         | j                               |dk(  rMt!        d | j"                  D              }|r/|j                  d	j                  d
j%                  |                   t'        | d      r*|j                  dt)        | j*                  d       d       |j-                          |r|j/                          y y )Ncapturemanagerz  z{step} {scope} {fixture}   r   )stepscopefixturer   c              3   ,   K   | ]  }|d k7  s	|  yw)r   N ).0args     r   	<genexpr>z'_show_fixture_action.<locals>.<genexpr>U   s     McC9<LcMs   
z (fixtures used: {})z, r'   [*   )maxsize])pluginmanager	getpluginsuspend_global_captureget_terminal_writerlinelistreversedr   index_scopewriteformatljustr3   upperargnamesortedargnamesjoinr#   r   r'   flushresume_global_capture)r   r    r.   capmantwscope_indentdepss          r   r(   r(   @   sG    !!++,<=F%%'		#	#	%BGGI(..z/@/@ALHHW|#$HH"))1""1%++-&& 	* 	
 g~MZ%8%8MMHH+22499T?CDz>*
1Xj55rBC1EFHHJ$$& r   )tryfirstc                 R    | j                   j                  rd| j                   _        y )NT)r!   	setuponlyr"   )r    s    r   pytest_cmdline_mainrX   b   s    }}"&r   )typingr   r   r   _pytest._io.safereprr   _pytest.configr   r   _pytest.config.argparsingr	   _pytest.fixturesr
   r   _pytest.scoper   pytestr   hookimplobjectr)   r-   strr(   intrX   r6   r   r   <module>rd      s      ) ! # , ' '  V    F6"F-7FtVV#$F F*,6",-7,	,'6"',2'9<'	'D $ 8E#x-4H+I   r   