Ë
    CØïiU-  ã                   ó°  — d dl Z d dlZd dlZd dlmZmZmZmZmZm	Z	m
Z
mZ d dlZd dlmZ d dlmZ ddlmZmZmZmZmZmZmZmZ 	 d dlZeeeef   gee   f   Zeegee   f   Zeegee   f   Zd„ Z d„ Z!ejD                  d	„ «       Z#ejD                  d
„ «       Z$ejJ                  d„ «       Z&ejJ                  dd„«       Z'd„ Z(d„ Z)d„ Z*ejD                  d„ «       Z+ejD                  d„ «       Z,ejD                  deg e-f   deg e-f   fd„«       ZejD                  deg e-f   fd„«       Z.ejD                  de j^                  dee   fd„«       Z0ejD                  d„ «       Z1ejD                  de j^                  dee   fd„«       Z2ejD                  d„ «       Z3ejD                  de j^                  dee   fd„«       Z4ejD                  d„ «       Z5y# e$ r dZY �ŒŠw xY w)é    N)ÚAnyÚ	AwaitableÚCallableÚDictÚIteratorÚOptionalÚTypeÚUnion)Úisasyncgenfunction)ÚApplicationé   )ÚBaseTestServerÚRawTestServerÚ
TestClientÚ
TestServerÚloop_contextÚsetup_test_loopÚteardown_test_loopÚunused_portc                 ó‚   — | j                  dddd¬«       | j                  dddd	¬«       | j                  d
ddd¬«       y )Nú--aiohttp-fastÚ
store_trueFz*run tests faster by disabling extra checks)ÚactionÚdefaultÚhelpz--aiohttp-loopÚstoreÚpyloopz3run tests with specific loop: pyloop, uvloop or allú--aiohttp-enable-loop-debugzenable event loop debug mode)Ú	addoption)Úparsers    úO/var/www/html/aiagents/fe/lib/python3.12/site-packages/aiohttp/pytest_plugin.pyÚpytest_addoptionr"       sc   € Ø
×ÑØØØØ9ð	 ô ð ×ÑØØØØBð	 ô ð ×ÑØ%ØØØ+ð	 õ ó    c                 óÚ   ‡‡‡— | j                   Št        ‰«      rdŠnt        j                  ‰«      rdŠnydŠd| j                  vr| xj                  dz  c_        dŠˆˆˆfd„}|| _         y)zjSet up pytest fixture.

    Allow fixtures to be coroutines. Run coroutine fixtures in an event loop.
    TFNÚrequest©r%   c                  ó  •‡‡— |d   }‰r|d= d|j                   vrt        d«      ‚|j                  d«      Š‰r> ‰| i |¤ŽŠˆˆfd„}|j                  |«       ‰j	                  ‰j                  «       «      S ‰j	                   ‰| i |¤Ž«      S )Nr%   Úloopz^Asynchronous fixtures must depend on the 'loop' fixture or be used in tests depending from it.c                  ób   •— 	 ‰ j                  ‰j                  «       «      S # t        $ r Y y w xY w©N)Úrun_until_completeÚ	__anext__ÚStopAsyncIteration)Ú_loopÚgens   €€r!   Ú	finalizerz8pytest_fixture_setup.<locals>.wrapper.<locals>.finalizer`   s1   ø€ ðØ ×3Ñ3°C·M±M³OÓDÐDøÜ)ò Ùðús   ƒ" ¢	.­.)ÚfixturenamesÚ	ExceptionÚgetfixturevalueÚaddfinalizerr+   r,   )	ÚargsÚkwargsr%   r0   r.   r/   ÚfuncÚis_async_genÚstrip_requests	       @@€€€r!   Úwrapperz%pytest_fixture_setup.<locals>.wrapperK   s§   ú€ Ø˜Ñ#ˆÙØ�yÐ!ð
 ˜×-Ñ-Ñ-Üð6óð ð
 ×'Ñ'¨Ó/ˆáñ ˜Ð' Ñ'ˆCõð × Ñ  Ô+Ø×+Ñ+¨C¯M©M«OÓ<Ð<à×+Ñ+©D°$Ð,A¸&Ñ,AÓBÐBr#   )r7   r   ÚasyncioÚiscoroutinefunctionÚargnames)Ú
fixturedefr:   r7   r8   r9   s     @@@r!   Úpytest_fixture_setupr?   5   sl   ú€ ð
 �?‰?€Dä˜$Ôà‰Ü	×	$Ñ	$ TÔ	*à‰ð 	à€MØ˜
×+Ñ+Ñ+Ø×Ò˜|Ñ+ÕØˆöCð@ €J…Or#   c                 ó8   — | j                   j                  d«      S )z--fast config optionr   ©ÚconfigÚ	getoptionr&   s    r!   ÚfastrD   n   s   € ð �>‰>×#Ñ#Ð$4Ó5Ð5r#   c                 ó8   — | j                   j                  d«      S )z!--enable-loop-debug config optionr   rA   r&   s    r!   Ú
loop_debugrF   t   s   € ð �>‰>×#Ñ#Ð$AÓBÐBr#   c            
   #   óf  K  — t        j                  d¬«      5 } d–— | D �cg c]'  }|j                  t        k(  rdj	                  |¬«      ‘Œ) }}|rDt        dj	                  t        |«      t        |«      dk(  rdnd	d
j                  |«      «      «      ‚	 ddd«       yc c}w # 1 sw Y   yxY w­w)záContext manager which checks for RuntimeWarnings.

    This exists specifically to
    avoid "coroutine 'X' was never awaited" warnings being missed.

    If RuntimeWarnings occur in the context a RuntimeError is raised.
    T)ÚrecordNz#{w.filename}:{w.lineno}:{w.message})Úwz{} Runtime Warning{},
{}r   Ú Úsú
)ÚwarningsÚcatch_warningsÚcategoryÚRuntimeWarningÚformatÚRuntimeErrorÚlenÚjoin)Ú	_warningsrI   Úrws      r!   Ú_runtime_warning_contextrW   z   s¶   è ø€ ô 
×	 Ñ	 ¨Ô	-ð °Ûð ö
àØ�z‰zœ^Ò+ð 2×8Ñ8¸1Ð8Õ=ð
ˆð 
ñ
 ÜØ+×2Ñ2Ü˜“G¤3 r£7¨a¢<™R°S¸$¿)¹)ÀB»-óóð ð ÷ð ùò
÷ð üs.   ‚B1™	B%¢,B ÁAB%Â	B1Â B%Â%B.Â*B1c              #   óP   K  — | r| –— yt        «       } | –— t        | |¬«       y­w)z–Passthrough loop context.

    Sets up and tears down a loop unless one is passed in via the loop
    argument when it's passed straight through.
    ©rD   N)r   r   )r(   rD   s     r!   Ú_passthrough_loop_contextrZ   ’   s)   è ø€ ñ à‹
ô Ó ˆØŠ
Ü˜4 dÖ+ùs   ‚$&c                 óˆ   — | j                  |«      r1t        j                  |«      rt        | j	                  ||«      «      S yy)z%Fix pytest collecting for coroutines.N)Úfuncnamefilterr;   r<   ÚlistÚ_genfunctions)Ú	collectorÚnameÚobjs      r!   Úpytest_pycollect_makeitemrb   £   s>   € à×Ñ Ô%¬'×*EÑ*EÀcÔ*JÜ�I×+Ñ+¨D°#Ó6Ó7Ð7ð +KÐ%r#   c           	      ó  — | j                   j                  d«      }t        j                  | j                  «      rµ| j
                  j                  d«      xs | j
                  j                  dd«      }t        «       5  t        ||¬«      5 }| j                  j                  D �ci c]  }|| j
                  |   “Œ }}|j                   | j                  di |¤Ž«       ddd«       ddd«       yyc c}w # 1 sw Y   ŒxY w# 1 sw Y   yxY w)zBRun coroutines in an event loop instead of a normal function call.r   Úproactor_loopr(   NrY   T© )rB   rC   r;   r<   ÚfunctionÚfuncargsÚgetrW   rZ   Ú_fixtureinfor=   r+   ra   )Ú
pyfuncitemrD   Úexisting_loopr.   ÚargÚtestargss         r!   Úpytest_pyfunc_callrn   ©   s  € à×Ñ×&Ñ&Ð'7Ó8€DÜ×"Ñ" :×#6Ñ#6Ô7Ø"×+Ñ+×/Ñ/Øó
ò 3à× Ñ ×$Ñ$ V¨TÓ2ð 	ô &Ó'ñ 	EÜ*¨=¸tÔDð EÈð  *×6Ñ6×?Ñ?öàð ˜×,Ñ,¨SÑ1Ñ1ð�ð ð ×(Ñ(¨¨¯©Ñ)C¸(Ñ)CÔD÷E÷	Eð ð 8ùò÷Eð Eú÷	Eð ús6   Á>DÂC6Â%C1Â<#C6ÃDÃ1C6Ã6C?	Ã;DÄDc           
      ó.  — d| j                   vry | j                  j                  j                  }dt        j
                  i}t        �t        j                  |d<   |dk(  rd}i }|j                  d«      D ]\  }|j                  d«       }|j                  d«      }||vr+|r(t        d	|›d
t        |j                  «       «      ›�«      ‚ŒU||   ||<   Œ^ | j                  dt        |j                  «       «      t        |j                  «       «      ¬«       y )NÚloop_factoryr   ÚuvloopÚallzpyloop,uvloop?ú,ú?z ?zUnknown loop 'z', available loops: )Úids)r1   rB   ÚoptionÚaiohttp_loopr;   ÚDefaultEventLoopPolicyrq   ÚEventLoopPolicyÚsplitÚendswithÚstripÚ
ValueErrorr]   ÚkeysÚparametrizeÚvalues)ÚmetafuncÚloopsÚavail_factoriesÚ	factoriesr`   Úrequireds         r!   Úpytest_generate_testsr†   »   s  € Ø˜X×2Ñ2Ñ2Øà�O‰O×"Ñ"×/Ñ/€Eà¤×!?Ñ!?Ð@€OäÐÜ$*×$:Ñ$:ˆ˜Ñ!à�‚~Ø ˆà€IØ—‘˜CÓ ò 0ˆØ—}‘} SÓ)Ð)ˆØ�z‰z˜$ÓˆØ�Ñ&ÙÝ âœT )§.¡.Ó"2Ô3ð5óð ð
 Ø)¨$Ñ/ˆ	�$Šð0ð ×ÑØœ˜Y×-Ñ-Ó/Ó0´d¸9¿>¹>Ó;KÓ6Lð õ r#   c              #   óÞ   K  —  | «       }t        j                  |«       t        |¬«      5 }|r|j                  d«       t        j                  |«       |–— ddd«       y# 1 sw Y   yxY w­w)z%Return an instance of the event loop.rY   TN)r;   Úset_event_loop_policyr   Ú	set_debugÚset_event_loop)rp   rD   rF   Úpolicyr.   s        r!   r(   r(   Û   s]   è ø€ ñ ‹^€FÜ×!Ñ! &Ô)Ü	˜4Ô	 ð  EÙØ�O‰O˜DÔ!Ü×Ñ˜uÔ%ØŠ÷	÷ ñ üs   ‚)A-«-A!Á	A-Á!A*Á&A-c               #   óä   K  — t        j                  «       } t        j                  | «       t        | j                  «      5 }t        j
                  |«       |–— d d d «       y # 1 sw Y   y xY w­wr*   )r;   ÚWindowsProactorEventLoopPolicyrˆ   r   Únew_event_looprŠ   )r‹   r.   s     r!   rd   rd   ç   sY   è ø€ ä×3Ñ3Ó5€FÜ×!Ñ! &Ô)ä	�f×+Ñ+Ó	,ð °Ü×Ñ˜uÔ%ØŠ÷÷ ñ üs   ‚?A0ÁA$Á	A0Á$A-Á)A0Úaiohttp_unused_portÚreturnc                 ó>   — t        j                  dt        d¬«       | S )Nz3Deprecated, use aiohttp_unused_port fixture insteadé   ©Ú
stacklevel©rM   ÚwarnÚDeprecationWarning)r�   s    r!   r   r   ñ   s   € ä‡M�MØ=ÜØõð
 Ðr#   c                  ó   — t         S )z1Return a port that is unused on the current host.)Ú_unused_portre   r#   r!   r�   r�   û   s
   € ô Ðr#   r(   c              #   óf   ‡ ‡K  — g Šddœˆ ˆfd„
}|–— dˆfd„}‰ j                   |«       «       y­w)z^Factory to create a TestServer instance, given an app.

    aiohttp_server(app, **kwargs)
    N©Úportc             ›   óˆ   •K  — t        | |¬«      } |j                  dd‰i|¤Žƒ d {  –—†  ‰j                  |«       |S 7 Œ­w©Nr›   r(   re   )r   Ústart_serverÚappend)Úapprœ   r6   Úserverr(   Úserverss       €€r!   Úgozaiohttp_server.<locals>.go	  sG   øè ø€ Ü˜C dÔ+ˆØ!ˆf×!Ñ!Ñ6 tÐ6¨vÑ6×6Ð6Ø�‰�vÔØˆð 	7úó   ƒ%A¨A ©Ac               “   ój   •K  — ‰ r*‰ j                  «       j                  «       ƒ d {  –—†  ‰ rŒ)y y 7 Œ	­wr*   ©ÚpopÚclose©r£   s   €r!   Úfinalizez aiohttp_server.<locals>.finalize  ó*   øè ø€ ÙØ—+‘+“-×%Ñ%Ó'×'Ð'ô Ø'úó   ƒ$3§1¨3¯3©r�   N©r+   ©r(   r¤   r«   r£   s   `  @r!   Úaiohttp_serverr±     s4   ùè ø€ ð €Gà"÷ ð ‚Hõ(ð 	×Ñ™H›JÕ'ùó   „-1c                 ó>   — t        j                  dt        d¬«       | S )Nz.Deprecated, use aiohttp_server fixture insteadr’   r“   r•   )r±   s    r!   Útest_serverr´     ó   € ä‡M�MØ8ÜØõð
 Ðr#   c              #   óf   ‡ ‡K  — g Šddœˆ ˆfd„
}|–— dˆfd„}‰ j                   |«       «       y­w)zpFactory to create a RawTestServer instance, given a web handler.

    aiohttp_raw_server(handler, **kwargs)
    Nr›   c             ›   óˆ   •K  — t        | |¬«      } |j                  dd‰i|¤Žƒ d {  –—†  ‰j                  |«       |S 7 Œ­wrž   )r   rŸ   r    )Úhandlerrœ   r6   r¢   r(   r£   s       €€r!   r¤   zaiohttp_raw_server.<locals>.go*  sG   øè ø€ Ü˜w¨TÔ2ˆØ!ˆf×!Ñ!Ñ6 tÐ6¨vÑ6×6Ð6Ø�‰�vÔØˆð 	7úr¥   c               “   ój   •K  — ‰ r*‰ j                  «       j                  «       ƒ d {  –—†  ‰ rŒ)y y 7 Œ	­wr*   r§   rª   s   €r!   r«   z$aiohttp_raw_server.<locals>.finalize2  r¬   r­   r®   r¯   r°   s   `  @r!   Úaiohttp_raw_serverrº   "  s4   ùè ø€ ð €Gà"&÷ ð ‚Hõ(ð 	×Ñ™H›JÕ'ùr²   c                 ó>   — t        j                  dt        d¬«       | S )Nz2Deprecated, use aiohttp_raw_server fixture insteadr’   r“   r•   )rº   s    r!   Úraw_test_serverr¼   9  s!   € ô ‡M�MØ<ÜØõð
 Ðr#   c              #   óæ   ‡ ‡K  — g Šddœdt         t        t        f   dt        dt        t
        t        t        f      dt        dt        f
ˆˆ fd„}|–— d
ˆfd	„}‰ j                   |«       «       y­w)zžFactory to create a TestClient instance.

    aiohttp_client(app, **kwargs)
    aiohttp_client(server, **kwargs)
    aiohttp_client(raw_server, **kwargs)
    N)Úserver_kwargsÚ__paramr5   r¾   r6   r�   c             Ÿ   ó´  •K  — t        | t        «      r%t        | t        t        f«      s | ‰g|¢­i |¤Ž} i }n	|rJ d«       ‚t        | t        «      r#|xs i }t	        | fd‰i|¤Ž}t        |fd‰i|¤Ž}n6t        | t        «      rt        | fd‰i|¤Ž}nt        dt        | «      z  «      ‚|j                  «       ƒ d {  –—†  ‰j                  |«       |S 7 Œ­w)Nzargs should be emptyr(   zUnknown argument type: %r)
Ú
isinstancer   r   r   r   r   r}   ÚtyperŸ   r    )r¿   r¾   r5   r6   r¢   ÚclientÚclientsr(   s         €€r!   r¤   zaiohttp_client.<locals>.goQ  sä   øè ø€ ô �gœxÔ(´Ø”k¤>Ð2ô2
ñ ˜dÐ4 TÒ4¨VÑ4ˆGØ‰FáÐ3Ð3Ó3�8ä�gœ{Ô+Ø)Ò/¨RˆMÜ ÑD¨dÐD°mÑDˆFÜ Ñ<¨TÐ<°VÑ<‰FÜ˜¤Ô0Ü Ñ=¨dÐ=°fÑ=‰FäÐ8¼4À»=ÑHÓIÐIà×!Ñ!Ó#×#Ð#Ø�‰�vÔØˆð 	$ús   ƒB;CÂ>CÂ?Cc               “   ój   •K  — ‰ r*‰ j                  «       j                  «       ƒ d {  –—†  ‰ rŒ)y y 7 Œ	­wr*   r§   )rÄ   s   €r!   r«   z aiohttp_client.<locals>.finalizeo  r¬   r­   r®   )	r
   r   r   r   r   r   Ústrr   r+   )r(   r¤   r«   rÄ   s   `  @r!   Úaiohttp_clientrÇ   E  s{   ùè ø€ ð €Gð
 37òÜ”{¤NÐ2Ñ3ðäðô  ¤¤S¬# X¡Ñ/ðô ð	ô
 
öð8 ‚Hõ(ð 	×Ñ™H›JÕ'ùs   „A-A1c                 ó>   — t        j                  dt        d¬«       | S )Nz.Deprecated, use aiohttp_client fixture insteadr’   r“   r•   )rÇ   s    r!   Útest_clientrÉ   v  rµ   r#   )F)6r;   Ú
contextlibrM   Útypingr   r   r   r   r   r   r	   r
   ÚpytestÚaiohttp.helpersr   Úaiohttp.webr   Ú
test_utilsr   r   r   r   r   r   r   r   r™   rq   ÚImportErrorÚAiohttpClientÚAiohttpRawServerÚAiohttpServerr"   r?   ÚfixturerD   rF   ÚcontextmanagerrW   rZ   rb   rn   r†   r(   rd   Úintr�   ÚAbstractEventLoopr±   r´   rº   r¼   rÇ   rÉ   re   r#   r!   ú<module>rØ      sŽ  ðÛ Û Û ß R× RÓ Rã å .Ý #÷	÷ 	ó 	ðÛð ˜% ¨^Ð ;Ñ<Ð=¸yÈÑ?TÐTÑU€Ø˜[˜M¨9°]Ñ+CÐCÑDÐ Ø˜+˜¨	°*Ñ(=Ð=Ñ>€òò*6ðr ‡�ñ6ó ð6ð
 ‡�ñCó ðCð
 ×Ññó ðð. ×Ñò,ó ð,ò 8òò$ð@ ‡�ñó ðð ‡�ñó ðð ‡�ð X¨b°#¨gÑ%6ð ¸8ÀBÈÀGÑ;Lò ó ðð ‡�ð˜X b¨# gÑ.ò ó ðð
 ‡�ð(˜×2Ñ2ð (°xÀÑ7Nò (ó ð(ð, ‡�ñó ðð ‡�ð(˜W×6Ñ6ð (¸8ÐDTÑ;Uò (ó ð(ð, ‡�ñó ðð ‡�ð-(Ø
×
#Ñ
#ð-(àˆmÑò-(ó ð-(ð` ‡�ñó ñøð
 ò ØƒFðús   ÁG
 Ç
GÇG