
    9Cg                       U d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZmZ d dlZd dlZd dlmZ dd	lmZmZ dd
lmZ ddlmZ ej        dk     rd dlmZ daded<   daded<   d ad3dZ ed4d            Z!d5d Z"d6d#Z# ej$        d$%          d7d)            Z% ej$        d$%          d8d,            Z& ej'        d- e            .          d9d/            Z(ej'        d:d1            Z)ej'        d;d2            Z*dS )<    )annotationsN)Iterator)	ExitStackcontextmanager)isasyncgenfunctioniscoroutinefunction)Anycast)Exit   )get_all_backendsget_async_backend)iterate_exceptions)
TestRunner)      )ExceptionGroupzTestRunner | None_current_runnerzExitStack | None_runner_stackbackendobjectreturntuple[str, dict[str, Any]]c                   t          | t                    r| i fS t          | t                    rt          |           dk    rot          | d         t                    rTt          | d         t                    r9t          t          t          t          t          t          f         f         |           S t          d          )N   r   r   z@anyio_backend must be either a string or tuple of (string, dict))
isinstancestrtuplelendictr
   r	   	TypeError)r   s    E/var/www/api/venv/lib/python3.11/site-packages/anyio/pytest_plugin.pyextract_backend_and_optionsr#      s    '3 ={	GU	#	# =G(9(9gaj#&& 	=:gaj$+G+G 	=c4S>12G<<<
V
W
WW    backend_namer   backend_optionsdict[str, Any]Iterator[TestRunner]c              #    K   t           t          |           }t                      at          j                            d           It          j                            |           }t                              t          j        j	        |           |pi }t          
                    |                    |                    a t          dz  a	 t           V  t          dz  at          s(t          J t                                           d xaa d S d S # t          dz  at          s&t          J t                                           d xaa w xY wNr   )r   r   r   r   sniffiocurrent_async_library_cvargetsetcallbackresetenter_contextcreate_test_runner_runner_leasesclose)r%   r&   asynclibtokens       r"   
get_runnerr7   #   sM     
 $\22!-11$77? 6::<HHE""7#E#KUSSS)/R'55''88
 
 aN3! 	3 ,,,!!!.22MOOO	3 	3 	! 	3 ,,,!!!.22MO2222s   	D 9Econfigr	   Nonec                2    |                      dd           d S )NmarkerszManyio: mark the (coroutine function) test to be run asynchronously via anyio.)addinivalue_line)r8   s    r"   pytest_configurer=   A   s,    
	$    r$   
fixturedefrequestc                    fd}| j         t                    st                    r/d|j        v r$d| j        v || _         s| xj        dz  c_        d S d S d S d S )Nc              ?    K   t          |           \  }}r| |d<   t          ||          5 }t                    r|                    |          E d {V  n|                    |          V  d d d            d S # 1 swxY w Y   d S )Nanyio_backend)r#   r7   r   run_asyncgen_fixturerun_fixture)rB   argskwargsr%   r&   runnerfunchas_backend_args         r"   wrapperz%pytest_fixture_setup.<locals>.wrapperJ   s      (CM(R(R%o 	4&3F?#o66 	7&!$'' 7!66tVDDDDDDDDDD((v66666		7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   AA??BBrB   rB   )rH   r   r   fixturenamesargnames)r>   r?   rJ   rH   rI   s      @@r"   pytest_fixture_setuprN   I   s    	7 	7 	7 	7 	7 	7 ?D$ :#6t#<#< :g222-1DDO%JO" :##'99####	 32: :: :r$   T)tryfirst	collectornameobjc                h   |                      ||          rt          |d          r|j        j        n|}t	          |          rl|                     d          }t          |dd          }|st          d |D                       r-t          j	        
                    d          |           d S d S d S d S )N
hypothesisanyio
pytestmark c              3  ,   K   | ]}|j         d k    V  dS )rU   N)rQ   ).0markers     r"   	<genexpr>z,pytest_pycollect_makeitem.<locals>.<genexpr>g   s)      NNV[G3NNNNNNr$   rB   )istestfunctionhasattrrT   
inner_testr   get_closest_markergetattranypytestmarkusefixtures)rP   rQ   rR   
inner_funcrZ   own_markerss         r"   pytest_pycollect_makeitemrg   `   s    T** >29#|2L2LUS^..RU
z** 	>11'::F!#|R88K >NN+NNNNN >''88=====> >	> 	>> >r$   
pyfuncitembool | Nonec           	       	
 d

fd}| j                             d          }|r/t          |          \  t          | j        d          rC| j        j        j        

j        |j        k    r t          
          r|| j        j        _        d S t          | j                  r| j         		fd| j	        j
        D             }t                    5 }	 |                    | j        |           nJ# t          $ r=}t          |          D ]'}t          |t           t"          t$          f          r||( d }~ww xY w	 d d d            n# 1 swxY w Y   d	S d S )NrF   r	   r   r9   c                     t                    5 }|                    |            d d d            d S # 1 swxY w Y   d S N)r7   run_test)rF   rG   r%   r&   original_funcs     r"   run_with_hypothesisz/pytest_pyfunc_call.<locals>.run_with_hypothesism   s    o66 	3&OOM6222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   6::rB   rT   c                "    i | ]}||         S rW   rW   )rY   argfuncargss     r"   
<dictcomp>z&pytest_pyfunc_call.<locals>.<dictcomp>   s    WWWsXc]WWWr$   T)rF   r	   r   r9   )rr   r-   r#   r]   rR   rT   r^   __qualname__r   _fixtureinforM   r7   rm   r   r   r   r   KeyboardInterrupt
SystemExit)rh   ro   r   testargsrG   excgrpexcr%   r&   rr   rn   s          @@@@r"   pytest_pyfunc_callr{   k   s   3 3 3 3 3 3 3 3 !%%o66G (CG(L(L%o:><00 	&N5@M)-@-MMM&}55 O;NJN-84z~.. 	!*HWWWWj6M6VWWWHL/:: fOOJNH====%   1&99 2 2%cD2CZ+PQQ 2"%612  >               44s6   EC54E5
D<?8D77D<<EEEmodule)scopeparamsc                    | j         S rl   )param)r?   s    r"   rB   rB      s
    =r$   rB   c                @    t          | t                    r| S | d         S )Nr   r   r   rK   s    r"   anyio_backend_namer      s%    -%%  Qr$   c                @    t          | t                    ri S | d         S r*   r   rK   s    r"   anyio_backend_optionsr      s$    -%%  	Qr$   )r   r   r   r   )r%   r   r&   r'   r   r(   )r8   r	   r   r9   )r>   r	   r?   r	   r   r9   )rP   r	   rQ   r	   rR   r	   r   r9   )rh   r	   r   ri   )r?   r	   r   r	   )rB   r	   r   r   )rB   r	   r   r'   )+
__future__r   syscollections.abcr   
contextlibr   r   inspectr   r   typingr	   r
   rb   r+   _pytest.outcomesr   _core._eventloopr   r   _core._exceptionsr   abcr   version_infoexceptiongroupr   r   __annotations__r   r3   r#   r7   r=   rN   hookimplrg   r{   fixturerB   r   r   rW   r$   r"   <module>r      so   " " " " " " " 



 $ $ $ $ $ $ 0 0 0 0 0 0 0 0 ; ; ; ; ; ; ; ;           ! ! ! ! ! ! A A A A A A A A 1 1 1 1 1 1      g------%) ) ) ) )"& & & & &X X X X 3 3 3 3:   : : : :. $> > >  > $! ! !  !H h'7'7'9'9:::   ;:                    r$   