Ë
    ³¸‘ie2  ã            
       ó$  — d dl Z 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m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mZmZmZ ddlmZ 	 d dlZ G d„ de«      Z! G d	„ d
e«      Z" G d„ de«      Z#d„ Z$d„ Z%ejL                  d„ «       Z'ejL                  d„ «       Z(ejR                  d„ «       Z*ejR                  d&d„«       Z+d„ Z,d„ Z-d„ Z.ejL                  deg e j^                  f   de0de0de	e j^                     fd„«       Z1ejL                  de	e j^                     fd„«       Z2ejL                  deg e3f   deg e3f   fd„«       ZejL                  deg e3f   fd„«       Z4ejL                  de j^                  de	e"   fd „«       Z5ejL                  d!„ «       Z6ejL                  de j^                  de	e#   fd"„«       Z7ejL                  d#„ «       Z8ejL                  de j^                  de	e!   fd$„«       Z9ejL                  d%„ «       Z:y# e $ r dZY �Œºw xY w)'é    N)	ÚAnyÚ	AwaitableÚCallableÚDictÚIteratorÚOptionalÚProtocolÚUnionÚoverloadé   )ÚBaseTestServerÚRawTestServerÚ
TestClientÚ
TestServerÚloop_contextÚsetup_test_loopÚteardown_test_loopÚunused_port)ÚApplicationÚBaseRequestÚRequest)Ú_RequestHandlerc                   ó�   — e Zd Zeddœdedeeeef      dede	e
ef   fd„«       Zeddœdedeeeef      dede	edf   fd„«       Zy)	ÚAiohttpClientN©Úserver_kwargsÚ_AiohttpClient__paramr   ÚkwargsÚreturnc             ‹   ó   K  — y ­w©N© ©Úselfr   r   r   s       úO/var/www/telegram/bot_env/lib/python3.12/site-packages/aiohttp/pytest_plugin.pyÚ__call__zAiohttpClient.__call__'   s   è ø€ ð ,/ùó   ‚c             ‹   ó   K  — y ­wr!   r"   r#   s       r%   r&   zAiohttpClient.__call__/   s   è ø€ ð ),ùr'   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r   Ústrr   r   r   r&   r   r   r"   ó    r%   r   r   &   s¬   „ Øð
 37ò	/àð/ð    S¨# X¡Ñ/ð	/ð
 ð/ð 
�G˜[Ð(Ñ	)ò/ó ð/ð ð
 37ò	,àð,ð    S¨# X¡Ñ/ð	,ð
 ð,ð 
�K Ð%Ñ	&ò,ó ñ,r-   r   c            
       ó6   — e Zd Zddœdedee   dedee   fd„Z	y)ÚAiohttpServerN©ÚportÚappr1   r   r   c                 ó   — y r!   r"   )r$   r2   r1   r   s       r%   r&   zAiohttpServer.__call__:   s   € à #r-   )
r)   r*   r+   r   r   Úintr   r   r   r&   r"   r-   r%   r/   r/   9   s3   „ à9=ò$Øð$Ø)1°#©ð$ØILð$à	�:Ñ	ô$r-   r/   c            
       ó6   — e Zd Zddœdedee   dedee   fd„Z	y)ÚAiohttpRawServerNr0   Úhandlerr1   r   r   c                 ó   — y r!   r"   )r$   r7   r1   r   s       r%   r&   zAiohttpRawServer.__call__@   s   € à#&r-   )
r)   r*   r+   r   r   r4   r   r   r   r&   r"   r-   r%   r6   r6   ?   s3   „ àAEò'Ø&ð'Ø19¸#±ð'ØQTð'à	�=Ñ	!ô'r-   r6   c                 ó‚   — | 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    r%   Úpytest_addoptionrD   E   sc   € Ø
×ÑØØØØ9ð	 ô ð ×ÑØØØØBð	 ô ð ×ÑØ%ØØØ+ð	 õ r-   c                 óî   ‡‡‡— | j                   Št        j                  ‰«      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©rF   c                  ó  •‡‡— |d   }‰r|d= d|j                   vrt        d«      ‚|j                  d«      Š‰r> ‰| i |¤ŽŠˆˆfd„}|j                  |«       ‰j	                  ‰j                  «       «      S ‰j	                   ‰| i |¤Ž«      S )NrF   Ú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r!   )Ú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ÚaddfinalizerrK   rL   )	Úargsr   rF   rP   rN   rO   ÚfuncÚis_async_genÚstrip_requests	       @@€€€r%   Úwrapperz%pytest_fixture_setup.<locals>.wrapperp   s§   ú€ Ø˜Ñ#ˆÙØ�yÐ!ð
 ˜×-Ñ-Ñ-Üð6óð ð
 ×'Ñ'¨Ó/ˆáñ ˜Ð' Ñ'ˆCõð × Ñ  Ô+Ø×+Ñ+¨C¯M©M«OÓ<Ð<à×+Ñ+©D°$Ð,A¸&Ñ,AÓBÐBr-   )rV   ÚinspectÚisasyncgenfunctionÚiscoroutinefunctionÚargnames)Ú
fixturedefrY   rV   rW   rX   s     @@@r%   Úpytest_fixture_setupr_   Z   sr   ú€ ð
 �?‰?€Dä×!Ñ! $Ô'à‰Ü	×	$Ñ	$ TÔ	*à‰ð 	à€MØ˜
×+Ñ+Ñ+Ø×Ò˜|Ñ+ÕØˆöCð@ €J…Or-   c                 ó8   — | j                   j                  d«      S )z--fast config optionr:   ©ÚconfigÚ	getoptionrG   s    r%   Úfastrd   “   s   € ð �>‰>×#Ñ#Ð$4Ó5Ð5r-   c                 ó8   — | j                   j                  d«      S )z!--enable-loop-debug config optionrA   ra   rG   s    r%   Ú
loop_debugrf   ™   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   Ÿ   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   )rI   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)ÚfuncnamefilterrZ   r\   ÚlistÚ_genfunctions)Ú	collectorÚnameÚobjs      r%   Úpytest_pycollect_makeitemr‚   È   s>   € à×Ñ Ô%¬'×*EÑ*EÀcÔ*JÜ�I×+Ñ+¨D°#Ó6Ó7Ð7ð +KÐ%r-   c           	      ó�  — | j                   j                  d«      }t        j                  | j                  «      rï| j
                  j                  d«      xsV | j
                  j                  d«      xs9 | 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_loopÚselector_loopÚuvloop_looprI   Nry   Tr"   )rb   rc   rZ   r\   ÚfunctionÚfuncargsÚgetrw   rz   Ú_fixtureinfor]   rK   r�   )Ú
pyfuncitemrd   Úexisting_looprN   ÚargÚtestargss         r%   Úpytest_pyfunc_callr�   Î   sB  € à×Ñ×&Ñ&Ð'7Ó8€DÜ×"Ñ" :×#6Ñ#6Ô7à×Ñ×#Ñ# OÓ4ò 5Ø×"Ñ"×&Ñ& Ó7ò5à×"Ñ"×&Ñ& }Ó5ò5ð ×"Ñ"×&Ñ& v¨tÓ4ð	 	ô &Ó'ñ 	EÜ*¨=¸tÔDð EÈð  *×6Ñ6×?Ñ?öàð ˜×,Ñ,¨SÑ1Ñ1ð�ð ð ×(Ñ(¨¨¯©Ñ)C¸(Ñ)CÔD÷E÷	Eð ð! 8ùò÷Eð Eú÷	Eð ús6   Â8D<ÃD0ÃD+Ã6#D0ÄD<Ä+D0Ä0D9	Ä5D<Ä<E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)rQ   rb   ÚoptionÚaiohttp_loopÚasyncioÚnew_event_loopr’   Ú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à¤×!7Ñ!7Ð8€OäÐÜ$*×$9Ñ$9ˆ˜Ñ!à�‚~Ø ˆà€IØ—‘˜CÓ ò 0ˆØ—}‘} SÓ)Ð)ˆØ�z‰z˜$ÓˆØ�Ñ&ÙÝ âœT )§.¡.Ó"2Ô3ð5óð ð
 Ø)¨$Ñ/ˆ	�$Šð0ð ×ÑØœ˜Y×-Ñ-Ó/Ó0´d¸9¿>¹>Ó;KÓ6Lð õ r-   r‘   rd   rf   r   c              #   ó¨   K  — 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_debugr™   Úset_event_loop)r‘   rd   rf   rN   s       r%   rI   rI     sJ   è ø€ ô 
�l¨Ô	.ð °%ÙØ�O‰O˜DÔ!Ü×Ñ˜uÔ%ØŠ÷	÷ ñ üs   ‚A�-A½	AÁAÁAc               #   óž   K  — t         j                  } t        | «      5 }t        j                  |«       |–— d d d «       y # 1 sw Y   y xY w­wr!   )r™   ÚProactorEventLoopr   rª   )ÚfactoryrN   s     r%   r„   r„     sB   è ø€ ä×'Ñ'€Gä	�gÓ	ð  %Ü×Ñ˜uÔ%ØŠ÷÷ ñ üs   ‚AžA¸	AÁA
ÁAÚaiohttp_unused_portc                 ó>   — 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_portr"   r-   r%   r®   r®   %  s
   € ô Ðr-   rI   c              #   ó´   ‡ ‡K  — g Šdddœdt         dt        dt        t           dt        dt
        f
ˆ ˆfd	„}|–— dˆfd
„}‰ j                   |«       «       y­w)z^Factory to create a TestServer instance, given an app.

    aiohttp_server(app, **kwargs)
    z	127.0.0.1N©Úhostr1   r2   rº   r1   r   r   c             ›   óŠ   •K  — t        | ||¬«      } |j                  dd‰i|¤Žƒ d {  –—†  ‰j                  |«       |S 7 Œ­w)Nr¹   rI   r"   )r   Ústart_serverÚappend)r2   rº   r1   r   ÚserverrI   Úserverss        €€r%   Úgozaiohttp_server.<locals>.go3  sK   øè ø€ ô ˜C d°Ô6ˆØ!ˆf×!Ñ!Ñ6 tÐ6¨vÑ6×6Ð6Ø�‰�vÔØˆð 	7ús   ƒ&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>.finalizeA  ó*   øè ø€ ÙØ—+‘+“-×%Ñ%Ó'×'Ð'ô Ø'úó   ƒ$3§1¨3¯3©r   N)r   r,   r   r4   r   r   rK   ©rI   rÀ   rÆ   r¿   s   `  @r%   Úaiohttp_serverrË   +  sm   ùè ø€ ð €Gð
  Ø"ò	
Üð
ô ð
ô ”s‰mð	
ô
 ð
ô 
ö
ð ‚Hõ(ð 	×Ñ™H›JÕ'ùs   „AAc                 ó>   — t        j                  dt        d¬«       | S )Nz.Deprecated, use aiohttp_server fixture insteadr°   r±   r³   )rË   s    r%   Útest_serverrÍ   H  ó   € ä‡M�MØ8ÜØõð
 Ðr-   c           	   #   ó¦   ‡ ‡K  — g Šddœdt         dt        t           dt        dt        fˆ ˆfd„}|–— d	ˆfd„}‰ j                   |«       «       y­w)
zpFactory to create a RawTestServer instance, given a web handler.

    aiohttp_raw_server(handler, **kwargs)
    Nr0   r7   r1   r   r   c             ›   óˆ   •K  — t        | |¬«      } |j                  dd‰i|¤Žƒ d {  –—†  ‰j                  |«       |S 7 Œ­w)Nr0   rI   r"   )r   r¼   r½   )r7   r1   r   r¾   rI   r¿   s       €€r%   rÀ   zaiohttp_raw_server.<locals>.goZ  sI   øè ø€ ô ˜w¨TÔ2ˆØ!ˆf×!Ñ!Ñ6 tÐ6¨vÑ6×6Ð6Ø�‰�vÔØˆð 	7ús   ƒ%A¨A ©Ac               “   ój   •K  — ‰ r*‰ j                  «       j                  «       ƒ d {  –—†  ‰ rŒ)y y 7 Œ	­wr!   rÂ   rÅ   s   €r%   rÆ   z$aiohttp_raw_server.<locals>.finalized  rÇ   rÈ   rÉ   )r   r   r4   r   r   rK   rÊ   s   `  @r%   Úaiohttp_raw_serverrÒ   R  s[   ùè ø€ ð €Gð <@òÜ ðÜ+3´C©=ðÜKNðä	öð ‚Hõ(ð 	×Ñ™H›JÕ'ùs   „AAc                 ó>   — t        j                  dt        d¬«       | S )Nz2Deprecated, use aiohttp_raw_server fixture insteadr°   r±   r³   )rÒ   s    r%   Úraw_test_serverrÔ   k  s!   € ô ‡M�MØ<ÜØõð
 Ðr-   c              #   ó  ‡ ‡K  — g Št         ddœdt        dt        t        t        t
        f      dt
        dt        t        t        f   fd„«       }t         ddœdt        dt        t        t        t
        f      dt
        dt        t        df   fd„«       }ddœdt        t        t        f   d	t
        dt        t        t        t
        f      dt
        dt        t
        t
        f   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)
    Nr   Ú__paramr   r   r   c             ›   ó   K  — y ­wr!   r"   ©rÖ   r   r   s      r%   rÀ   zaiohttp_client.<locals>.go�  s   è ø€ ð ,/ùr'   c             ›   ó   K  — y ­wr!   r"   rØ   s      r%   rÀ   zaiohttp_client.<locals>.go‰  s   è ø€ ð ),ùr'   rU   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 emptyrI   zUnknown argument type: %r)
Ú
isinstancer   r   r   r   r   rž   Útyper¼   r½   )rÖ   r   rU   r   r¾   ÚclientÚclientsrI   s         €€r%   rÀ   zaiohttp_client.<locals>.go‘  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>.finalize®  rÇ   rÈ   rÉ   )r   r   r   r   r,   r   r   r   r   r   r
   rK   )rI   rÀ   rÆ   rÞ   s   `  @r%   Úaiohttp_clientrà   w  s.  ùè ø€ ð €Gäð 37ò/Üð/ô  ¤¤S¬# X¡Ñ/ð/ô ð	/ô
 
”Gœ[Ð(Ñ	)ò/ó ð/ô ð 37ò,Üð,ô  ¤¤S¬# X¡Ñ/ð,ô ð	,ô
 
”K Ð%Ñ	&ò,ó ð,ð 37òÜ”{¤NÐ2Ñ3ðäðô  ¤¤S¬# X¡Ñ/ðô ð	ô
 
”Cœ�HÑ	öð6 ‚Hõ(ð 	×Ñ™H›JÕ'ùs   „DDc                 ó>   — t        j                  dt        d¬«       | S )Nz.Deprecated, use aiohttp_client fixture insteadr°   r±   r³   )rà   s    r%   Útest_clientrâ   µ  rÎ   r-   )F);r™   Ú
contextlibrZ   rm   Útypingr   r   r   r   r   r   r	   r
   r   ÚpytestÚ
test_utilsr   r   r   r   r   r   r   r   r·   Úwebr   r   r   Úweb_protocolr   r’   ÚImportErrorr   r/   r6   rD   r_   Úfixturerd   rf   Úcontextmanagerrw   rz   r‚   r�   r§   ÚAbstractEventLoopÚboolrI   r„   r4   r®   rË   rÍ   rÒ   rÔ   rà   râ   r"   r-   r%   ú<module>rî      sÁ  ðÛ Û Û Û ÷
÷ 
õ 
ó ÷	÷ 	ó 	÷ 3Ñ 2Ý )ðÛô
,�Hô ,ô&$�Hô $ô'�xô 'òò*6ðr ‡�ñ6ó ð6ð
 ‡�ñCó ðCð
 ×Ññó ðð. ×Ñò,ó ð,ò 8òò,ð@ ‡�ð
Ø˜2˜w×8Ñ8Ð8Ñ9ð
à
ð
ð ð
ð ˆg×'Ñ'Ñ(ò	
ó ð
ð ‡�ð�x × 9Ñ 9Ñ:ò ó ðð ‡�ð X¨b°#¨gÑ%6ð ¸8ÀBÈÀGÑ;Lò ó ðð ‡�ð˜X b¨# gÑ.ò ó ðð
 ‡�ð(˜×2Ñ2ð (°xÀÑ7Nò (ó ð(ð8 ‡�ñó ðð ‡�ð(˜W×6Ñ6ð (¸8ÐDTÑ;Uò (ó ð(ð0 ‡�ñó ðð ‡�ð:(˜×2Ñ2ð :(°xÀÑ7Nò :(ó ð:(ðz ‡�ñó ñøði ò ØƒFðús   ÁH ÈHÈH