+
    PV-j<`  ã                   ó”  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
HtHt ^ RIHtHt ^ RIHt ^ RIHtHtHtHtHtHtHt ^ RIHtHt ^ RIHt ^ RIH t H!t! ^ R	I"H#t# ^ RI$t$^ R
I%H&t&H't'H(t(H)t) ^RI*H+t+H,t, ^RI
H-t- ^RI.H/t/ ^RI0H1t1 ^RI2H3t3 ^RI4H5t5H6t6 ^RI7H8t8H9t9 ^RI:H;t; ^RI<H=t=H>t>H?t?H@t@HAtAHBtBHCtCHDtDHEtE ^RIFHGtG ]'       d   ^ RIHHItI M]tI]P”                  RJ8¼  d   ]'       d   ^ RIHKtK ]P”                  RJ8¼  d   ^ RIHLtL M]tL]! R]=R4      tM]! R]?R7      tN]Pž                  R8H  ;'       d    ]P                   R8g  tQ]P¤                  3R R lltSR R  ltTR! R" ltU ! R# R$]4      tV ! R% R&]V4      tW ! R' R(]V4      tX ! R) R*]]N]M3,          4      tY ! R+ R,]4      tZR- R. lt[]. ]P¸                  3,          t]]P¼                  ]P¾                  R/3R0 R1 ll4       t`]P¾                  3R2 R3 lltaRKR4 R5 lltbR6 R7 ltcRLR8 R9 lltdRLR:]3R;]5! ^^4      R<R/R=RR>]3R?]3R@]3RA]8RBRRCRMRDRE/RF RG lllte]3]33RH RI lltfR# )NzUtilities shared by tests.N)ÚABCÚabstractmethod)ÚCallableÚIterator)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚGenericÚLiteralÚTypeVarÚcastÚoverload)ÚIsolatedAsyncioTestCaseÚmock)ÚSignal)ÚCIMultiDictÚCIMultiDictProxy)ÚURL)Ú_BaseRequestContextManagerÚ_RequestContextManagerÚ_RequestOptionsÚ_WSRequestContextManager)ÚClientSessionÚhdrs)ÚAbstractCookieJar)ÚClientResponse)ÚClientWebSocketResponse)Úsentinel)ÚHttpVersionÚRawRequestMessage)ÚEMPTY_PAYLOADÚStreamReader)ÚStrOrURL)	ÚApplicationÚ	AppRunnerÚBaseRequestÚ
BaseRunnerÚRequestÚServerÚServerRunnerÚSockSiteÚUrlMappingMatchInfo)Ú_RequestHandler)Ú
SSLContext)ÚUnpack©ÚSelfÚ_ApplicationNoneÚ_Request)ÚboundÚposixÚcygwinc                ód   € V ^8„  d   QhR\         R\        P                  R\        P                  /# )é   ÚhostÚfamilyÚreturn)ÚstrÚsocketÚAddressFamily)Úformats   "Úc/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/aiohttp/test_utils.pyÚ__annotate__r@   F   s.   € ÷ ,ñ ,Ü
ð,Ü×+Ñ+ð,ä‡]�]ñ,ó    c                 ó   € \        V ^ V4      # )é    )Úget_port_socket)r8   r9   s   &&r?   Úget_unused_port_socketrE   F   s   € ô ˜4  FÓ+Ð+rA   c                óp   € V ^8„  d   QhR\         R\        R\        P                  R\        P                  /# )r7   r8   Úportr9   r:   )r;   Úintr<   r=   )r>   s   "r?   r@   r@   L   s6   € ÷ 
ñ 
Ü
ð
Üð
Ü"(×"6Ñ"6ð
ä‡]�]ñ
rA   c                 óê   € \         P                   ! V\         P                  4      p\        '       d0   VP                  \         P                  \         P
                  ^4       VP                  W34       V# )é   )r<   ÚSOCK_STREAMÚREUSE_ADDRESSÚ
setsockoptÚ
SOL_SOCKETÚSO_REUSEADDRÚbind)r8   rG   r9   Úss   &&& r?   rD   rD   L   sP   € ô 	�Š�fœf×0Ñ0Ó1€Aßƒ}ð 	
�‰”V×&Ñ&¬×(;Ñ(;¸QÔ?Ø‡F�FˆDˆ<ÔØ€HrA   c                ó$   € V ^8„  d   QhR\         /# ©r7   r:   ©rH   )r>   s   "r?   r@   r@   Y   s   € ÷ -ñ -”Sñ -rA   c                 ó"  € \         P                   ! \         P                  \         P                  4      ;_uu_ 4       p V P                  R4       \	        \
        V P                  4       ^,          4      uuRRR4       #   + '       g   i     R# ; i)z1Return a port that is unused on the current host.N)ú	127.0.0.1rC   )r<   ÚAF_INETrK   rP   r   rH   Úgetsockname)rQ   s    r?   Úunused_portrY   Y   sP   € ä	�Š”v—~‘~¤v×'9Ñ'9×	:Ô	:¸aØ	�‰ÐÔ Ü”C˜Ÿ™›¨Õ+Ó,÷ 
;×	:×	:Ó	:ús   ¼6A=Á=B	c                   óD  a € ] tR t^`t o RtRRRRRRRRR	RR
]/V 3R lR lltR$V 3R lR llt]V 3R lR l4       t	V 3R lR lt
]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR  ltV 3R! lR" ltR#tV tR# )%ÚBaseTestServerFÚschemeÚ ÚloopNr8   rV   rG   Úskip_url_assertsÚsocket_factoryc                óÀ   <€ V ^8„  d   QhRS[ RS[P                  R,          RS[ RS[R,          RS[RS[S[ S[S[P                  .S[P                  3,          RS[R	R/# )
r7   r\   r^   Nr8   rG   r_   r`   Úkwargsr:   )	r;   ÚasyncioÚAbstractEventLooprH   Úboolr   r<   r=   r   )r>   Ú__classdict__s   "€r?   r@   ÚBaseTestServer.__annotate__c   sŠ   ø€ ÷ -ñ -ñ ð-ñ ×'Ñ'¨$Õ.ð	-ñ
 ð-ñ �D�jð-ñ ð-ñ !Ù‘#‘v×+Ñ+Ð,©f¯m©mÐ;õ
ð-ñ ð-ð 
ñ-rA   c               óx   € W n         R V n        R V n        W0n        W@n        RV n        Wn        WPn        W`n        R # )NF)	Ú_loopÚrunnerÚ_rootr8   rG   Ú_closedr\   r_   r`   )Úselfr\   r^   r8   rG   r_   r`   rb   s   &$$$$$$,r?   Ú__init__ÚBaseTestServer.__init__c   s9   € ð Œ
Ø)-ˆŒØ!%ˆŒ
ØŒ	ØŒ	ØˆŒØŒØ 0ÔØ,ÖrA   c                óL   <€ V ^8„  d   QhRS[ P                  R,          RS[RR/# )r7   r^   Nrb   r:   )rc   rd   r   )r>   rf   s   "€r?   r@   rg   z   s5   ø€ ÷ Iñ IÙ×-Ñ-°Õ4ðIÙGJðIà	ñIrA   c              ‹  ó’  "  € V P                   '       d   R # Wn        VP                  RR 4      V n        V P                  ! RRR/VB G R j  x€L
 V n         V P                   P                  4       G R j  x€L
  V P                  '       g   ^ V n        V P                  p \        P                  ! V P                  4      P                  pV^8X  d   RV P                   R2pV^8X  d   \        P                  M\        P                  pV P                  V P                  V P                  V4      pVP!                  4       R,          w  V n        V n        \#        V P                   W`P                  R7      pVP%                  4       G R j  x€L
  VP&                  pVf   Q hVP(                  p	V	f   Q hV	^ ,          P!                  4       ^,          V n        V P*                  '       g   V P                  '       d   RMR	V n        \-        V P*                   R
V RV P                   24      V n        R #  ELà EL¼  \         d    ^p ELzi ; i LÀ5i)NÚsslÚhandler_cancellationTÚ[Ú]:Nr7   N)ÚsockÚssl_contextÚhttpsÚhttpz://Ú:© )rj   ri   ÚpopÚ_sslÚ_make_runnerÚsetuprG   r8   Ú	ipaddressÚ
ip_addressÚversionÚ
ValueErrorr<   ÚAF_INET6rW   r`   rX   r*   ÚstartÚ_serverÚsocketsr\   r   rk   )
rm   r^   rb   Úabsolute_hostr‚   r9   Ú_sockÚsiteÚserverr‡   s
   &&,       r?   Ústart_serverÚBaseTestServer.start_serverz   sÆ  é € ð �;�;ˆ;ÙØŒ
Ø—J‘J˜u dÓ+ˆŒ	Ø ×-Ò-ÑRÀ4ÐRÈ6ÑR×RˆŒØ�k‰k×ÑÓ!×!Ð!Ø�y�yˆyØˆDŒIØŸ	™	ˆð	Ü×*Ò*¨4¯9©9Ó5×=Ñ=ˆGð �aŒ<Ø §	¡	˜{¨!Ð,ˆMØ$+¨q¤L”—’´f·n±nˆØ×#Ñ# D§I¡I¨t¯y©y¸&ÓAˆØ$×0Ñ0Ó2°2Õ6ÑˆŒ	�4”9Ü˜Ÿ™¨%¿Y¹YÔGˆØ�j‰j‹l×ÐØ—‘ˆØÒ!Ð!Ð!Ø—.‘.ˆØÒ"Ð"Ð"Ø˜A•J×*Ñ*Ó,¨QÕ/ˆŒ	Ø�{�{ˆ{Ø%)§Y§Y Y™'°FˆDŒKÜ˜DŸK™K˜=¨¨M¨?¸!¸D¿I¹I¸;ÐGÓHˆŽ
ò/ SÚ!øô ô 	Ø‹Gð	úñ 	ùsh   ‚A	IÁH+Á&IÁ2H.Á3IÂ	IÂ*H1 ÃB=IÆIÆAIÇ"IÇ48IÈ.IÈ1IÈ>IÉIÉIc                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r7   rb   r:   ©r   r&   )r>   rf   s   "€r?   r@   rg   ›   s   ø€ ÷ ñ ©3ð ±:ñ rA   c              ‹  ó   "  € R # 5i©Nr{   ©rm   rb   s   &,r?   r~   ÚBaseTestServer._make_runnerš   s   é € áùó   ‚c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r7   Úpathr:   ©r"   r   )r>   rf   s   "€r?   r@   rg   ž   s   ø€ ÷ 4ñ 4™Xð 4©#ñ 4rA   c                ó  € V P                   f   Q h\        V4      pV P                  '       g0   VP                  '       d   Q hV P                   P	                  V4      # \        \        V P                   4      \        V4      ,           4      # r’   )rk   r   r_   ÚabsoluteÚjoinr;   )rm   r˜   Úurls   && r?   Úmake_urlÚBaseTestServer.make_urlž   se   € Ø�z‰zÒ%Ð%Ð%Ü�$‹iˆØ×$×$Ð$Ø—|—|�|Ð#Ð#Ø—:‘:—?‘? 3Ó'Ð'ä”s˜4Ÿ:™:“¬¨T«Õ2Ó3Ð3rA   c                ó    <€ V ^8„  d   QhRS[ /# rS   ©re   )r>   rf   s   "€r?   r@   rg   ¨   s   ø€ ÷ 'ñ '™ñ 'rA   c                ó   € V P                   R J# r’   )rj   ©rm   s   &r?   ÚstartedÚBaseTestServer.started§   s   € à�{‰{ $Ð&Ð&rA   c                ó    <€ V ^8„  d   QhRS[ /# rS   r¡   )r>   rf   s   "€r?   r@   rg   ¬   s   ø€ ÷ ñ ™ñ rA   c                ó   € V P                   # r’   )rl   r£   s   &r?   ÚclosedÚBaseTestServer.closed«   ó   € à�|‰|ÐrA   c                ó    <€ V ^8„  d   QhRS[ /# rS   )r(   )r>   rf   s   "€r?   r@   rg   °   s   ø€ ÷ ñ ™ñ rA   c                ó^   € V P                   pVf   Q hVP                  f   Q hVP                  # r’   )rj   r‹   )rm   rj   s   & r?   ÚhandlerÚBaseTestServer.handler¯   s3   € ð —‘ˆØÒ!Ð!Ð!Ø�}‰}Ò(Ð(Ð(Ø�}‰}ÐrA   c                ó   <€ V ^8„  d   QhRR/# ©r7   r:   Nr{   )r>   rf   s   "€r?   r@   rg   ¸   s   ø€ ÷  ñ  ˜Tñ  rA   c              ƒ  óð   "  € V P                   '       d^   V P                  '       gJ   V P                  f   Q hV P                  P                  4       G Rj  x€L
  RV n        RV n        RV n        R# R# R#  L5i)a0  Close all fixtures created by the test client.

After that point, the TestClient is no longer usable.

This is an idempotent function: running close multiple times
will not have any additional effects.

close is also run when the object is garbage collected, and on
exit when used as a context manager.

NT)r¤   r¨   rj   Úcleanuprk   rG   rl   r£   s   &r?   ÚcloseÚBaseTestServer.close¸   s]   é € ð �<�<ˆ< §§ Ø—;‘;Ò*Ð*Ð*Ø—+‘+×%Ñ%Ó'×'Ð'ØˆDŒJØˆDŒIØˆDŽLñ !,‰<á'ùs   ‚$A6§-A6ÁA4Á A6c                ó   <€ V ^8„  d   QhRR/# r°   r{   )r>   rf   s   "€r?   r@   rg   Ë   ó   ø€ ÷ 2ñ 2˜4ñ 2rA   c                ó   € \        R 4      h©zUse async with instead©Ú	TypeErrorr£   s   &r?   Ú	__enter__ÚBaseTestServer.__enter__Ë   ó   € ÜÐ0Ó1Ð1rA   c                ój   <€ V ^8„  d   QhRS[ S[,          R,          RS[R,          RS[R,          RR/# ©r7   Úexc_typeNÚ	exc_valueÚ	tracebackr:   ©ÚtypeÚBaseExceptionr   )r>   rf   s   "€r?   r@   rg   Î   sG   ø€ ÷ ñ á‘}Õ%¨Õ,ðñ ! 4Õ'ðñ ! 4Õ'ð	ð
 
ñrA   c                ó   € R # r’   r{   ©rm   rÀ   rÁ   rÂ   s   &&&&r?   Ú__exit__ÚBaseTestServer.__exit__Î   ó   € ñ 	rA   c                ó   <€ V ^8„  d   QhRR/# )r7   r:   r[   r{   )r>   rf   s   "€r?   r@   rg   ×   s   ø€ ÷ ñ Ð"2ñ rA   c              ƒ  óZ   "  € V P                  V P                  R 7      G Rj  x€L
  V #  L5i©©r^   N)rŒ   ri   r£   s   &r?   Ú
__aenter__ÚBaseTestServer.__aenter__×   s*   é € Ø×Ñ T§Z¡ZÐÓ0×0Ð0Øˆñ 	1ùs   ‚ +¢)£+c                ój   <€ V ^8„  d   QhRS[ S[,          R,          RS[R,          RS[R,          RR/# r¿   rÃ   )r>   rf   s   "€r?   r@   rg   Û   sG   ø€ ÷ ñ á‘}Õ%¨Õ,ðñ ! 4Õ'ðñ ! 4Õ'ð	ð
 
ñrA   c              ƒ  óB   "  € V P                  4       G R j  x€L
  R #  L5ir’   ©r³   rÇ   s   &&&&r?   Ú	__aexit__ÚBaseTestServer.__aexit__Û   ó   é € ð �j‰j‹l×Ôùó   ‚–—)
rl   ri   rk   r}   r8   rG   rj   r\   r_   r`   r’   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__test__rD   rn   rŒ   r   r~   rž   Úpropertyr¤   r¨   r­   r³   r»   rÈ   rÏ   rÔ   Ú__static_attributes__Ú__classdictcell__©rf   s   @r?   r[   r[   `   sé   ø‡ € Ø€Hð-ð ð-ð 26ð	-ð
  ð-ð  ð-ð "'ð-ð ÷-ò -÷.Iò Ið@ ÷ó ð÷4ð 4ð ÷'ó ð'ð ÷ó ðð ÷ó ð÷ ð  ÷&2ð 2÷ð ÷ð ÷ö rA   r[   c                   ó`   a a€ ] tR t^ät oRRRRRR/V3R lV 3R llltV3R	 lR
 ltRtVtV ;t# )Ú
TestServerr\   r]   r8   rV   rG   Nc          
      óF   <€ V ^8„  d   QhRS[ RS[RS[RS[R,          RS[/# )r7   Úappr\   r8   rG   Nrb   )r#   r;   rH   r   )r>   rf   s   "€r?   r@   ÚTestServer.__annotate__å   sH   ø€ ÷ 
Hñ 
Háð
Hñ ð	
Hñ
 ð
Hñ �D�jð
Hñ ñ
HrA   c          	     ó@   <€ Wn         \        SV `  ! RR VRVRV/VB  R# ©r\   r8   rG   Nr{   )rä   Úsuperrn   )rm   rä   r\   r8   rG   rb   Ú	__class__s   &&$$$,€r?   rn   ÚTestServer.__init__å   s)   ø€ ð ŒÜ‰ÒÑG ÐG¨TÐG¸ÐGÀÔGrA   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r�   r�   )r>   rf   s   "€r?   r@   rå   ñ   s   ø€ ÷ -ñ -©3ð -±:ñ -rA   c              ‹  ó6   "  € \        V P                  3/ VB # 5ir’   )r$   rä   r“   s   &,r?   r~   ÚTestServer._make_runnerñ   s   é € Ü˜Ÿ™Ñ, VÑ,Ð,ùó   ‚)rä   ©	rØ   rÙ   rÚ   rÛ   rn   r~   rÞ   rß   Ú__classcell__©ré   rf   s   @@r?   râ   râ   ä   sA   ù‡ € ð
Hð ð	
Hð
  ð
Hð  ÷
Hõ 
H÷-÷ -ð -rA   râ   c                   ód   a a€ ] tR t^õt oRRRRRR/V3R lV 3R llltRV3R	 lR
 lltRtVtV ;t# )ÚRawTestServerr\   r]   r8   rV   rG   Nc                óJ   <€ V ^8„  d   QhRS[ RS[RS[RS[R,          RS[RR/# )r7   r­   r\   r8   rG   Nrb   r:   )r,   r;   rH   r   )r>   rf   s   "€r?   r@   ÚRawTestServer.__annotate__ö   sS   ø€ ÷ 
Hñ 
Há ð
Hñ ð	
Hñ
 ð
Hñ �D�jð
Hñ ð
Hð 
ñ
HrA   c          	     ó@   <€ Wn         \        SV `  ! RR VRVRV/VB  R# rç   )Ú_handlerrè   rn   )rm   r­   r\   r8   rG   rb   ré   s   &&$$$,€r?   rn   ÚRawTestServer.__init__ö   s)   ø€ ð  ŒÜ‰ÒÑG ÐG¨TÐG¸ÐGÀÔGrA   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r7   Údebugrb   r:   )re   r   r)   )r>   rf   s   "€r?   r@   rõ     s"   ø€ ÷ 8ñ 8©ð 8¹sð 8Á|ñ 8rA   c              ‹  ón   "  € \        V P                  3R V P                  RV/VB p\        V3RV/VB # 5i)r^   rú   )r(   r÷   ri   r)   )rm   rú   rb   Úsrvs   &&, r?   r~   ÚRawTestServer._make_runner  s;   é € Ü�T—]‘]ÑK¨¯©ÐK¸5ÐKÀFÑKˆÜ˜CÑ7 uÐ7°Ñ7Ð7ùs   ‚35)r÷   )Trï   rñ   s   @@r?   ró   ró   õ   sA   ù‡ € ð
Hð ð	
Hð
  ð
Hð  ÷
Hõ 
H÷8÷ 8ò 8rA   ró   c                   óú  a € ] tR tRt o RtRt]RR/V 3R lR ll4       t]RR/V 3R lR	 ll4       tRRR
R/V 3R lR lltV 3R lR lt]	V 3R lR l4       t
]	V 3R lR l4       t]	V 3R lR l4       t]	V 3R lR l4       t]	V 3R lR l4       tV 3R lR ltV 3R lR lt]P$                  R[8¼  dR   ]'       dJ   V 3R lR ltV 3R lR  ltV 3R! lR" ltV 3R# lR$ ltV 3R% lR& ltV 3R' lR( ltV 3R) lR* ltV 3R+ lR, ltMHV 3R- lR. ltV 3R/ lR0 ltV 3R1 lR2 ltV 3R3 lR4 ltV 3R5 lR6 ltV 3R7 lR8 ltV 3R9 lR: ltV 3R; lR< lt]R=R>/V 3R? lR@ ll4       t]V 3RA lRB l4       t]R=R>/V 3RC lRD ll4       tR=RE/V 3RF lRG llt]R=R>/V 3RH lRI ll4       t]V 3RJ lRK l4       t]R=R>/V 3RL lRM ll4       tR=RE/V 3RN lRO lltV 3RP lRQ ltV 3RR lRS ltV 3RT lRU lt V 3RV lRW lt!V 3RX lRY lt"RZt#V t$R# )\Ú
TestClienti  zV
A test client implementation.

To write functional tests for aiohttp based servers.

FÚ
cookie_jarNc          
      óB   <€ V ^8„  d   QhRRRS[ RS[R,          RS[RR/# )r7   rm   z TestClient[Request, Application]r‹   r   Nrb   r:   )râ   r   r   )r>   rf   s   "€r?   r@   ÚTestClient.__annotate__  s@   ø€ ÷ ñ Ø0ðáðñ &¨Õ,ð	ñ
 ðð 
ñrA   c               ó   € R # r’   r{   ©rm   r‹   r   rb   s   &&$,r?   rn   ÚTestClient.__init__  ó   € ñ rA   c          
      óB   <€ V ^8„  d   QhRRRS[ RS[R,          RS[RR/# )r7   rm   zTestClient[_Request, None]r‹   r   Nrb   r:   )r[   r   r   )r>   rf   s   "€r?   r@   r    s@   ø€ ÷ ñ Ø*ðáðñ &¨Õ,ð	ñ
 ðð 
ñrA   c               ó   € R # r’   r{   r  s   &&$,r?   rn   r    r  rA   r^   c          
      óf   <€ V ^8„  d   QhRS[ RS[R,          RS[P                  R,          RS[RR/# )r7   r‹   r   Nr^   rb   r:   )r[   r   rc   rd   r   )r>   rf   s   "€r?   r@   r  !  sT   ø€ ÷ Cñ CáðCñ &¨Õ,ð	Cñ
 ×'Ñ'¨$Õ.ðCñ ðCð 
ñCrA   c               ó,  € \        V\        4      '       g   \        R \        V4      ,          4      hWn        W0n        Vf   \        P                  ! RVR7      p\        RRVRV/VB V n	        RV P                  n
        RV n        . V n        . V n        R# )z2server must be TestServer instance, found type: %rNT)Úunsafer^   r^   r   Fr{   )Ú
isinstancer[   rº   rÄ   r†   ri   ÚaiohttpÚ	CookieJarr   Ú_sessionÚ_retry_connectionrl   Ú
_responsesÚ_websockets)rm   r‹   r   r^   rb   s   &&$$,r?   rn   r  !  s‰   € ô ˜&¤.×1Ò1ÜØDÄtÈFÃ|ÕSóð ð ŒØŒ
ØÒÜ ×*Ò*°$¸TÔBˆJÜ%ÑQ¨4ÐQ¸JÐQÈ&ÑQˆŒØ*/ˆ�‰Ô'ØˆŒØ02ˆŒØ@BˆÖrA   c                ó   <€ V ^8„  d   QhRR/# r°   r{   )r>   rf   s   "€r?   r@   r  7  s   ø€ ÷ 9ñ 9 Dñ 9rA   c              ƒ  ón   "  € V P                   P                  V P                  R 7      G Rj  x€L
  R#  L5irÍ   )r†   rŒ   ri   r£   s   &r?   rŒ   ÚTestClient.start_server7  s$   é € Ø�l‰l×'Ñ'¨T¯Z©ZÐ'Ó8×8Ô8ùs   ‚*5¬3­5c                ó    <€ V ^8„  d   QhRS[ /# rS   )r;   )r>   rf   s   "€r?   r@   r  ;  s   ø€ ÷ !ñ !‘cñ !rA   c                ó.   € V P                   P                  # r’   )r†   r8   r£   s   &r?   r8   ÚTestClient.host:  ó   € à�|‰|× Ñ Ð rA   c                ó.   <€ V ^8„  d   QhRS[ R,          /# r°   rT   )r>   rf   s   "€r?   r@   r  ?  s   ø€ ÷ !ñ !‘c˜D•jñ !rA   c                ó.   € V P                   P                  # r’   )r†   rG   r£   s   &r?   rG   ÚTestClient.port>  r  rA   c                ó    <€ V ^8„  d   QhRS[ /# rS   )r[   )r>   rf   s   "€r?   r@   r  C  s   ø€ ÷ ñ ™ñ rA   c                ó   € V P                   # r’   )r†   r£   s   &r?   r‹   ÚTestClient.serverB  rª   rA   c                ó    <€ V ^8„  d   QhRS[ /# rS   )r1   )r>   rf   s   "€r?   r@   r  G  s   ø€ ÷ 2ñ 2Ñ%ñ 2rA   c                ó0   € \        V P                  R R4      # )rä   N)Úgetattrr†   r£   s   &r?   rä   ÚTestClient.appF  s   € ä�t—|‘| U¨DÓ1Ð1rA   c                ó    <€ V ^8„  d   QhRS[ /# rS   )r   )r>   rf   s   "€r?   r@   r  K  s   ø€ ÷ ñ ™ñ rA   c                ó   € V P                   # )zÐAn internal aiohttp.ClientSession.

Unlike the methods on the TestClient, client session requests
do not automatically include the host in the url queried, and
will require an absolute path to the resource.

)r  r£   s   &r?   ÚsessionÚTestClient.sessionJ  s   € ð �}‰}ÐrA   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r—   r™   )r>   rf   s   "€r?   r@   r  U  s   ø€ ÷ +ñ +™Xð +©#ñ +rA   c                ó8   € V P                   P                  V4      # r’   )r†   rž   )rm   r˜   s   &&r?   rž   ÚTestClient.make_urlU  s   € Ø�|‰|×$Ñ$ TÓ*Ð*rA   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# ©r7   Úmethodr˜   rb   r:   )r;   r"   r   r   )r>   rf   s   "€r?   r@   r  X  s-   ø€ ÷ ñ ÙðÙ!)ðÙ58ðá	ñrA   c              ‹  ó°   "  € V P                   P                  ! WP                  V4      3/ VB G R j  x€L
 pV P                  P	                  V4       V#  L!5ir’   )r  Úrequestrž   r  Úappend)rm   r-  r˜   rb   Úresps   &&&, r?   Ú_requestÚTestClient._requestX  sI   é € ð —]‘]×*Ò*¨6·=±=ÀÓ3FÑQÈ&ÑQ×Qˆà�‰×Ñ˜tÔ$Øˆñ Rùs   ‚0A²A³"Ac                óB   <€ V ^8„  d   QhRS[ RS[RS[S[,          RS[/# r,  )r;   r"   r.   r   r   )r>   rf   s   "€r?   r@   r  b  s2   ø€ ÷ 	)ñ 	)Ùð	)Ù%-ð	)Ù9?ÁÕ9Pð	)á#ñ	)rA   c                ó   € R # r’   r{   ©rm   r-  r˜   rb   s   &&&,r?   r/  ÚTestClient.requestb  s   € á%(rA   c                ó<   <€ V ^8„  d   QhRS[ RS[S[,          RS[/# ©r7   r˜   rb   r:   ©r"   r.   r   r   )r>   rf   s   "€r?   r@   r  f  ó.   ø€ ÷ 	)ñ 	)áð	)ñ ™_Õ-ð	)ñ $ñ		)rA   c                ó   € R # r’   r{   ©rm   r˜   rb   s   &&,r?   ÚgetÚTestClient.getf  ó   € ñ &)rA   c                ó<   <€ V ^8„  d   QhRS[ RS[S[,          RS[/# r9  r:  )r>   rf   s   "€r?   r@   r  l  r;  rA   c                ó   € R # r’   r{   r=  s   &&,r?   ÚoptionsÚTestClient.optionsl  r@  rA   c                ó<   <€ V ^8„  d   QhRS[ RS[S[,          RS[/# r9  r:  )r>   rf   s   "€r?   r@   r  r  r;  rA   c                ó   € R # r’   r{   r=  s   &&,r?   ÚheadÚTestClient.headr  r@  rA   c                ó<   <€ V ^8„  d   QhRS[ RS[S[,          RS[/# r9  r:  )r>   rf   s   "€r?   r@   r  x  r;  rA   c                ó   € R # r’   r{   r=  s   &&,r?   ÚpostÚTestClient.postx  r@  rA   c                ó<   <€ V ^8„  d   QhRS[ RS[S[,          RS[/# r9  r:  )r>   rf   s   "€r?   r@   r  ~  r;  rA   c                ó   € R # r’   r{   r=  s   &&,r?   ÚputÚTestClient.put~  r@  rA   c                ó<   <€ V ^8„  d   QhRS[ RS[S[,          RS[/# r9  r:  )r>   rf   s   "€r?   r@   r  „  r;  rA   c                ó   € R # r’   r{   r=  s   &&,r?   ÚpatchÚTestClient.patch„  r@  rA   c                ó<   <€ V ^8„  d   QhRS[ RS[S[,          RS[/# r9  r:  )r>   rf   s   "€r?   r@   r  Š  r;  rA   c                ó   € R # r’   r{   r=  s   &&,r?   ÚdeleteÚTestClient.deleteŠ  r@  rA   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# r,  )r;   r"   r   r   )r>   rf   s   "€r?   r@   r  ’  s3   ø€ ÷ 
	Qñ 
	QÙð
	QÙ%-ð
	QÙ9<ð
	Qá#ñ
	QrA   c                ó:   € \        V P                  ! W3/ VB 4      # )z´Routes a request to tested http server.

The interface is identical to aiohttp.ClientSession.request,
except the loop kwarg is overridden by the instance used by the
test server.

)r   r2  r6  s   &&&,r?   r/  r7  ’  s   € ô *¨$¯-ª-¸Ñ*OÈÑ*OÓPÐPrA   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# r9  ©r"   r   r   )r>   rf   s   "€r?   r@   r  ž  ó(   ø€ ÷ 	Xñ 	X™Hð 	X±ð 	XÑ8Nñ 	XrA   c                óX   € \        V P                  ! \        P                  V3/ VB 4      # )zPerform an HTTP GET request.)r   r2  r   ÚMETH_GETr=  s   &&,r?   r>  r?  ž  ó!   € ä)¨$¯-ª-¼¿¹ÀtÑ*VÈvÑ*VÓWÐWrA   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# r9  r\  )r>   rf   s   "€r?   r@   r  ¢  ó(   ø€ ÷ 	Yñ 	Y™Xð 	Y±ð 	YÑ9Oñ 	YrA   c                óX   € \        V P                  ! \        P                  V3/ VB 4      # )zPerform an HTTP POST request.)r   r2  r   Ú	METH_POSTr=  s   &&,r?   rK  rL  ¢  ó"   € ä)¨$¯-ª-¼¿¹ÈÑ*WÐPVÑ*WÓXÐXrA   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# r9  r\  )r>   rf   s   "€r?   r@   r  ¦  s#   ø€ ÷ 	ñ 	¡ð 	±Cð 	Ñ<Rñ 	rA   c                óX   € \        V P                  ! \        P                  V3/ VB 4      # )z Perform an HTTP OPTIONS request.)r   r2  r   ÚMETH_OPTIONSr=  s   &&,r?   rC  rD  ¦  s(   € ä)Ø—’œd×/Ñ/°Ñ@¸Ñ@óð rA   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# r9  r\  )r>   rf   s   "€r?   r@   r  ¬  rb  rA   c                óX   € \        V P                  ! \        P                  V3/ VB 4      # )zPerform an HTTP HEAD request.)r   r2  r   Ú	METH_HEADr=  s   &&,r?   rG  rH  ¬  re  rA   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# r9  r\  )r>   rf   s   "€r?   r@   r  °  r]  rA   c                óX   € \        V P                  ! \        P                  V3/ VB 4      # )zPerform an HTTP PUT request.)r   r2  r   ÚMETH_PUTr=  s   &&,r?   rO  rP  °  r`  rA   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# r9  r\  )r>   rf   s   "€r?   r@   r  ´  s#   ø€ ÷ 	ñ 	™hð 	±#ð 	Ñ:Pñ 	rA   c                óX   € \        V P                  ! \        P                  V3/ VB 4      # ©zPerform an HTTP PATCH request.)r   r2  r   Ú
METH_PATCHr=  s   &&,r?   rS  rT  ´  s&   € ä)Ø—’œdŸo™o¨tÑ>°vÑ>óð rA   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# r9  r\  )r>   rf   s   "€r?   r@   r  º  s#   ø€ ÷ 	ñ 	™xð 	±3ð 	Ñ;Qñ 	rA   c                óX   € \        V P                  ! \        P                  V3/ VB 4      # rq  )r   r2  r   ÚMETH_DELETEr=  s   &&,r?   rW  rX  º  s(   € ä)Ø—’œd×.Ñ.°Ñ?¸Ñ?óð rA   Údecode_text.c                ó>   <€ V ^8„  d   QhRS[ RS[R,          RS[RR/# )r7   r˜   rv  Trb   r:   zB_BaseRequestContextManager[ClientWebSocketResponse[Literal[True]]]©r"   r
   r   )r>   rf   s   "€r?   r@   r  Á  s7   ø€ ÷ Sñ SÙðSÙ.5°d­mðSÙMPðSà	MñSrA   c               ó   € R # r’   r{   ©rm   r˜   rv  rb   s   &&$,r?   Ú
ws_connectÚTestClient.ws_connectÀ  s	   € ñ PSrA   c                ó>   <€ V ^8„  d   QhRS[ RS[R,          RS[RR/# )r7   r˜   rv  Frb   r:   zC_BaseRequestContextManager[ClientWebSocketResponse[Literal[False]]]rx  )r>   rf   s   "€r?   r@   r  Æ  s7   ø€ ÷ Tñ TÙðTÙ.5°e­nðTÙHKðTà	NñTrA   c               ó   € R # r’   r{   rz  s   &&$,r?   r{  r|  Å  s	   € ñ QTrA   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# ©r7   r˜   rv  rb   r:   z9_BaseRequestContextManager[ClientWebSocketResponse[bool]]©r"   re   r   )r>   rf   s   "€r?   r@   r  Ë  s3   ø€ ÷ Jñ JÙðJÙ.2ðJÙDGðJà	DñJrA   c               ó   € R # r’   r{   rz  s   &&$,r?   r{  r|  Ê  s	   € ñ GJrA   Tc                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# r€  r�  )r>   rf   s   "€r?   r@   r  Ï  s-   ø€ ÷ 

ñ 

Ùð

Ù.2ð

ÙEHð

à	Dñ

rA   c               ó>   € \        V P                  ! V3RV/VB 4      # )zZInitiate websocket connection.

The api corresponds to aiohttp.ClientSession.ws_connect.

rv  )r   Ú_ws_connectrz  s   &&$,r?   r{  r|  Ï  s)   € ô (Ø×Ò˜TÑE¨{ÐE¸fÑEó
ð 	
rA   c                ó>   <€ V ^8„  d   QhRS[ RS[R,          RS[RR/# )r7   r˜   rv  Trb   r:   z&ClientWebSocketResponse[Literal[True]]rx  )r>   rf   s   "€r?   r@   r  Ü  s1   ø€ ÷ 7ñ 7Ùð7Ù.5°d­mð7ÙMPð7à	1ñ7rA   c             ‹  ó   "  € R # 5ir’   r{   rz  s   &&$,r?   r…  ÚTestClient._ws_connectÛ  s
   é € ñ 47ùr•   c                ó>   <€ V ^8„  d   QhRS[ RS[R,          RS[RR/# )r7   r˜   rv  Frb   r:   z'ClientWebSocketResponse[Literal[False]]rx  )r>   rf   s   "€r?   r@   r  á  s1   ø€ ÷ 8ñ 8Ùð8Ù.5°e­nð8ÙHKð8à	2ñ8rA   c             ‹  ó   "  € R # 5ir’   r{   rz  s   &&$,r?   r…  rˆ  à  s
   é € ñ 58ùr•   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# ©r7   r˜   rv  rb   r:   zClientWebSocketResponse[bool]r�  )r>   rf   s   "€r?   r@   r  æ  s-   ø€ ÷ .ñ .Ùð.Ù.2ð.ÙDGð.à	(ñ.rA   c             ‹  ó   "  € R # 5ir’   r{   rz  s   &&$,r?   r…  rˆ  å  s
   é € ñ +.ùr•   c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# rŒ  r�  )r>   rf   s   "€r?   r@   r  ê  s-   ø€ ÷ ñ ÙðÙ.2ðÙEHðà	(ñrA   c             ‹  ó´   "  € V P                   P                  ! V P                  V4      3R V/VB G Rj  x€L
 pV P                  P	                  V4       V#  L!5i)rv  N)r  r{  rž   r  r0  )rm   r˜   rv  rb   Úwss   &&$, r?   r…  rˆ  ê  s\   é € ð —=‘=×+Ò+Ø�M‰M˜$Óñ
Ø-8ð
Ø<Bñ
÷ 
ˆð 	×Ñ×Ñ Ô#Øˆ	ñ	
ùs   ‚2A´Aµ"Ac                ó   <€ V ^8„  d   QhRR/# r°   r{   )r>   rf   s   "€r?   r@   r  ó  s   ø€ ÷  ñ  ˜Tñ  rA   c              ƒ  ót  "  € V P                   '       gœ   V P                   F  pVP                  4        K  	  V P                   F  pVP                  4       G Rj  x€L
  K  	  V P                  P                  4       G Rj  x€L
  V P
                  P                  4       G Rj  x€L
  RV n         R# R#  LW L3 L5i)a  Close all fixtures created by the test client.

After that point, the TestClient is no longer usable.

This is an idempotent function: running close multiple times
will not have any additional effects.

close is also run on exit when used as a(n) (asynchronous)
context manager.

NT)rl   r  r³   r  r  r†   )rm   r1  r�  s   &  r?   r³   ÚTestClient.closeó  s‰   é € ð �|�|ˆ|ØŸœ�Ø—
‘
–ñ (à×&Ô&�Ø—h‘h“j× Ò ñ 'à—-‘-×%Ñ%Ó'×'Ð'Ø—,‘,×$Ñ$Ó&×&Ð&ØˆDŽLñ ñ !Ù'Ù&ùs6   ‚AB8ÁB2Á%B8Â B4Â!B8Â"B6Â#B8Â4B8Â6B8c                ó   <€ V ^8„  d   QhRR/# r°   r{   )r>   rf   s   "€r?   r@   r    r¶   rA   c                ó   € \        R 4      hr¸   r¹   r£   s   &r?   r»   ÚTestClient.__enter__  r½   rA   c                ój   <€ V ^8„  d   QhRS[ S[,          R,          RS[R,          RS[R,          RR/# ©r7   rÀ   NÚexcÚtbr:   rÃ   )r>   rf   s   "€r?   r@   r    sG   ø€ ÷ ñ á‘}Õ%¨Õ,ðñ ˜TÕ!ðñ ˜DÕ ð	ð
 
ñrA   c                ó   € R # r’   r{   ©rm   rÀ   r™  rš  s   &&&&r?   rÈ   ÚTestClient.__exit__  rÊ   rA   c                ó    <€ V ^8„  d   QhRS[ /# rS   r/   )r>   rf   s   "€r?   r@   r    s   ø€ ÷ ñ ¡$ñ rA   c              ƒ  óB   "  € V P                  4       G R j  x€L
  V #  L5ir’   )rŒ   r£   s   &r?   rÏ   ÚTestClient.__aenter__  s!   é € Ø×ÑÓ!×!Ð!Øˆñ 	"ùr×   c                ój   <€ V ^8„  d   QhRS[ S[,          R,          RS[R,          RS[R,          RR/# r˜  rÃ   )r>   rf   s   "€r?   r@   r    sG   ø€ ÷ ñ á‘}Õ%¨Õ,ðñ ˜TÕ!ðñ ˜DÕ ð	ð
 
ñrA   c              ƒ  óB   "  € V P                  4       G R j  x€L
  R #  L5ir’   rÓ   rœ  s   &&&&r?   rÔ   ÚTestClient.__aexit__  rÖ   r×   )rl   ri   r  r†   r  r  ©é   é   )%rØ   rÙ   rÚ   rÛ   Ú__doc__rÜ   r   rn   rŒ   rÝ   r8   rG   r‹   rä   r&  rž   r2  ÚsysÚversion_infor   r/  r>  rC  rG  rK  rO  rS  rW  r{  r…  r³   r»   rÈ   rÏ   rÔ   rÞ   rß   rà   s   @r?   rÿ   rÿ     sÁ  ø‡ € ñð €Hàðð 04÷	ñ ó ðð ðð 04÷	ñ ó ððCð 04ð	Cð
 26÷Cò C÷,9ð 9ð ÷!ó ð!ð ÷!ó ð!ð ÷ó ðð ÷2ó ð2ð ÷ó ð÷+ð +÷ð ð ×Ñ˜7Ô"§}÷	)ð 	)÷	)ð 	)÷	)ð 	)÷	)ð 	)÷	)ð 	)÷	)ð 	)÷	)ð 	)÷	)ñ 	)÷
	Qð 
	Q÷	Xð 	X÷	Yð 	Y÷	ð 	÷	Yð 	Y÷	Xð 	X÷	ð 	÷	ð 	ð ðSØ>A÷Sñ Só ðSð ÷Tó ðTð ðJØ58÷Jñ Jó ðJð

Ø59÷

ò 

ð ð7Ø>A÷7ñ 7ó ð7ð ÷8ó ð8ð ð.Ø58÷.ñ .ó ð.ðØ59÷ò ÷ ð  ÷*2ð 2÷ð ÷ð ÷ö rA   rÿ   c                   ó´   a € ] tR tRt o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R	 lR
 ltV 3R lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltRtV tR# )ÚAioHTTPTestCasei!  aì  A base class to allow for unittest web applications using aiohttp.

Provides the following:

* self.client (aiohttp.test_utils.TestClient): an aiohttp test client.
* self.loop (asyncio.BaseEventLoop): the event loop in which the
    application and server are running.
* self.app (aiohttp.web.Application): the application returned by
    self.get_application()

Note that the TestClient's methods are asynchronous: you have to
execute function on the test client using asynchronous methods.
c                ó    <€ V ^8„  d   QhRS[ /# rS   ©r#   )r>   rf   s   "€r?   r@   ÚAioHTTPTestCase.__annotate__0  s   ø€ ÷ ñ ¡{ñ rA   c              ƒ  ó*   "  € V P                  4       # 5i)ziGet application.

This method should be overridden
to return the aiohttp.web.Application
object to test.
)Úget_appr£   s   &r?   Úget_applicationÚAioHTTPTestCase.get_application0  s   é € ð �|‰|‹~Ðùs   ‚c                ó    <€ V ^8„  d   QhRS[ /# rS   r­  )r>   rf   s   "€r?   r@   r®  9  s   ø€ ÷ Jñ J™ñ JrA   c                ó   € \        R4      h)zaObsolete method used to constructing web application.

Use .get_application() coroutine instead.
z+Did you forget to define get_application()?)ÚRuntimeErrorr£   s   &r?   r°  ÚAioHTTPTestCase.get_app9  s   € ô
 ÐHÓIÐIrA   c                ó   <€ V ^8„  d   QhRR/# r°   r{   )r>   rf   s   "€r?   r@   r®  @  s   ø€ ÷ 'ñ ' $ñ 'rA   c              ƒ  ór   "  € \         P                  ! 4       V n        V P                  4       G R j  x€L
 #  L5ir’   )rc   Úget_running_loopr^   Ú
setUpAsyncr£   s   &r?   Ú
asyncSetUpÚAioHTTPTestCase.asyncSetUp@  s(   é € Ü×,Ò,Ó.ˆŒ	Ø—_‘_Ó&×&Ð&Ñ&ùs   ‚.7°5±7c                ó   <€ V ^8„  d   QhRR/# r°   r{   )r>   rf   s   "€r?   r@   r®  D  s   ø€ ÷ )ñ ) $ñ )rA   c              ƒ  ó<  "  € V P                  4       G R j  x€L
 V n        V P                  V P                  4      G R j  x€L
 V n        V P	                  V P                  4      G R j  x€L
 V n        V P
                  P                  4       G R j  x€L
  R #  L} LW L1 L5ir’   )r±  rä   Ú
get_serverr‹   Ú
get_clientÚclientrŒ   r£   s   &r?   rº  ÚAioHTTPTestCase.setUpAsyncD  sj   é € Ø×-Ñ-Ó/×/ˆŒØ ŸO™O¨D¯H©HÓ5×5ˆŒØ ŸO™O¨D¯K©KÓ8×8ˆŒà�k‰k×&Ñ&Ó(×(Ò(ñ	 0Ù5Ù8á(ùsC   ‚B–B—'B¾B¿'BÁ&BÁ'&BÂBÂBÂBÂBÂBc                ó   <€ V ^8„  d   QhRR/# r°   r{   )r>   rf   s   "€r?   r@   r®  K  s   ø€ ÷ *ñ * Tñ *rA   c              ƒ  ó>   "  € V P                  4       G R j  x€L
 #  L5ir’   )ÚtearDownAsyncr£   s   &r?   ÚasyncTearDownÚAioHTTPTestCase.asyncTearDownK  s   é € Ø×'Ñ'Ó)×)Ð)Ñ)ùs   ‚–—c                ó   <€ V ^8„  d   QhRR/# r°   r{   )r>   rf   s   "€r?   r@   r®  N  s   ø€ ÷ "ñ " Tñ "rA   c              ƒ  óV   "  € V P                   P                  4       G R j  x€L
  R #  L5ir’   )rÁ  r³   r£   s   &r?   rÅ  ÚAioHTTPTestCase.tearDownAsyncN  s   é € Ø�k‰k×ÑÓ!×!Ô!ùs   ‚) '¡)c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r7   rä   r:   )r#   râ   )r>   rf   s   "€r?   r@   r®  Q  s   ø€ ÷ /ñ /¡Kð /±Jñ /rA   c              ƒ  ó6   "  € \        WP                  R7      # 5i)zReturn a TestServer instance.rÎ   )râ   r^   )rm   rä   s   &&r?   r¿  ÚAioHTTPTestCase.get_serverQ  s   é € ä˜#§I¡IÔ.Ð.ùrî   c                ó<   <€ V ^8„  d   QhRS[ RS[S[S[3,          /# )r7   r‹   r:   )râ   rÿ   r'   r#   )r>   rf   s   "€r?   r@   r®  U  s%   ø€ ÷ 2ñ 2¡zð 2±jÁÉ+ÐAUÕ6Vñ 2rA   c              ƒ  ó6   "  € \        WP                  R7      # 5i)zReturn a TestClient instance.rÎ   )rÿ   r^   )rm   r‹   s   &&r?   rÀ  ÚAioHTTPTestCase.get_clientU  s   é € ä˜&§y¡yÔ1Ð1ùrî   )rä   rÁ  r^   r‹   N)rØ   rÙ   rÚ   rÛ   r§  r±  r°  r»  rº  rÆ  rÅ  r¿  rÀ  rÞ   rß   rà   s   @r?   r«  r«  !  s\   ø‡ € ñ÷ð ÷Jð J÷'ð '÷)ð )÷*ð *÷"ð "÷/ð /÷2ö 2rA   r«  c                óH   € V ^8„  d   QhR\         R\         R\         R\         /# )r7   ÚfuncÚargsrb   r:   ©r   )r>   s   "r?   r@   r@   Z  s(   € ÷ ñ œCð ¬ð ´sð ¼sñ rA   c                ó@   € \         P                  ! R\        ^R7       V # )zk
A decorator dedicated to use with asynchronous AioHTTPTestCase test methods.

In 3.8+, this does nothing.
zBDecorator `@unittest_run_loop` is no longer needed in aiohttp 3.8+)Ú
stacklevel)ÚwarningsÚwarnÚDeprecationWarning)rÒ  rÓ  rb   s   &*,r?   Úunittest_run_looprÚ  Z  s    € ô ‡M‚MØLÜØõð
 €KrA   Fc                óf   € V ^8„  d   QhR\         R\        R\        \        P                  ,          /# )r7   Úloop_factoryÚfastr:   )Ú_LOOP_FACTORYre   r   rc   rd   )r>   s   "r?   r@   r@   l  s/   € ÷ 	(ñ 	(Üð	(Ü@Dð	(äŒg×'Ñ'Õ(ñ	(rA   c              #  óD   "  € \        V 4      pVx € \        W!R7       R# 5i)zrA contextmanager that creates an event_loop, for test purposes.

Handles the creation and cleanup of a test loop.
)rÝ  N)Úsetup_test_loopÚteardown_test_loop)rÜ  rÝ  r^   s   && r?   Úloop_contextrâ  k  s   é € ô ˜<Ó(€DØ
‚JÜ�t×'ùs   ‚ c                óD   € V ^8„  d   QhR\         R\        P                  /# )r7   rÜ  r:   )rÞ  rc   rd   )r>   s   "r?   r@   r@   x  s"   € ÷ 
ñ 
Üð
ä×Ññ
rA   c                ó@   € V ! 4       p\         P                  ! V4       V# )zˆCreate and return an asyncio.BaseEventLoop instance.

The caller should also call teardown_test_loop,
once they are done with the loop.
)rc   Úset_event_loop)rÜ  r^   s   & r?   rà  rà  x  s   € ñ ‹>€DÜ×Ò˜4Ô Ø€KrA   c                óH   € V ^8„  d   QhR\         P                  R\        RR/# )r7   r^   rÝ  r:   N)rc   rd   re   )r>   s   "r?   r@   r@   …  s'   € ÷ !ñ !œW×6Ñ6ð !¼dð !Ètñ !rA   c                ó  € V P                  4       pV'       g<   V P                  V P                  4       V P                  4        V P	                  4        V'       g   \
        P                  ! 4        \        P                  ! R4       R# )z>Teardown and cleanup an event_loop created by setup_test_loop.N)	Ú	is_closedÚ	call_soonÚstopÚrun_foreverr³   ÚgcÚcollectrc   rå  )r^   rÝ  r¨   s   && r?   rá  rá  …  sP   € à�^‰^Ó€FßØ�‰�t—y‘yÔ!Ø×ÑÔØ�
‰
ŒçÜ
�
Š
Œä×Ò˜4Ö rA   c                ó8   € V ^8„  d   QhR\         P                  /# rS   )r   Ú	MagicMock)r>   s   "r?   r@   r@   “  s   € ÷ ñ œ$Ÿ.™.ñ rA   c                  óÜ   € R  R lp R R lp\         P                  ! \        R7      p/ Vn        Wn        Wn        RVn        \        V4      Vn        VP                  P                  4        V# )c                ó<   € V ^8„  d   QhR\         R\        R\         /# )r7   rä   Úkeyr:   ©r   r;   )r>   s   "r?   r@   Ú&_create_app_mock.<locals>.__annotate__”  s!   € ÷ #ñ #”cð #¤ð #¬ñ #rA   c                 ó(   € V P                   V,          # r’   ©Ú
__app_dict)rä   rò  s   &&r?   Úget_dictÚ"_create_app_mock.<locals>.get_dict”  s   € Ø�~‰~˜cÕ"Ð"rA   c                ó@   € V ^8„  d   QhR\         R\        R\         RR/# )r7   rä   rò  Úvaluer:   Nró  )r>   s   "r?   r@   rô  —  s(   € ÷ $ñ $”cð $¤ð $¬Cð $°Dñ $rA   c                 ó"   € W P                   V&   R # r’   rö  )rä   rò  rû  s   &&&r?   Úset_dictÚ"_create_app_mock.<locals>.set_dict—  s   € Ø#�‰�sÓrA   )ÚspecF)
r   rï  r#   r÷  Ú__getitem__Ú__setitem__Ú_debugr   Úon_response_prepareÚfreeze)rø  rý  rä   s      r?   Ú_create_app_mockr  “  sW   € õ#õ$ô �.Š.œkÔ
*€CØ€C„NØ„OØ„Oà€C„JÜ$ S›k€CÔØ×Ñ×"Ñ"Ô$Ø€JrA   c                óR   € V ^8„  d   QhR\         R,          R\        P                  /# )r7   Ú
sslcontextNr:   )r-   r   ÚMock)r>   s   "r?   r@   r@   ¥  s#   € ÷ 	ñ 	¤*¨tÕ"3ð 	¼t¿y¹yñ 	rA   c                 ód   a € \         P                  ! 4       pR  V 3R llpW!P                  n        V# )c                óv   € V ^8„  d   QhR\         R\        \        \         \        3,          ,          R,          /# )r7   rò  r:   N)r;   r-   ÚtuplerH   )r>   s   "r?   r@   Ú'_create_transport.<locals>.__annotate__¨  s0   € ÷ @ñ @œCð @¤J´´s¼C°xµÕ$@À4Õ$Gñ @rA   c                 ó,   <€ V R 8X  d   S# V R8X  d   R# R# )r  ÚsocknameN)rV   éP   r{   )rò  r  s   &€r?   Úget_extra_infoÚ)_create_transport.<locals>.get_extra_info¨  s$   ø€ Ø�,ÔØÐØ$'¨:Ô$5Ð Ð?¸4Ð?rA   )r   r  r  Úside_effect)r  Ú	transportr  s   f  r?   Ú_create_transportr  ¥  s.   ø€ Ü—	’	“€I÷@ð @ð
 ,:×ÑÔ(ØÐrA   Ú
match_infor‚   Úclosingrä   ÚwriterÚprotocolr  Úpayloadr  Úclient_max_sizer^   .c                óÚ   € V ^8„  d   QhR\         R\         R\        R\        R\        R\        R\        R\        R	\        R
\        R\        R\
        R,          R\        R\        R\        /# )r7   r-  r˜   Úheadersr  r‚   r  rä   r  r  r  r  r  Nr  r^   r:   )r;   r   r   re   r!   r-   rH   r'   )r>   s   "r?   r@   r@   ±  s´   € ÷ hñ hÜðhä
ðhô ðhô
 ðhô ðhô ðhô 
ðhô ðhô ðhô ðhô ðhô ˜TÕ!ðhô ðhô ðhô  ñ!hrA   c               óª  € \         P                  ! 4       pVRJ d    \        P                  ! 4       pV\        ^^4      8  d   RpV'       d^   \        \        V4      4      p\        ;QJ d"    . R VP                  4        4       F  NK  	  5M! R VP                  4        4       4      pM\        \        4       4      pRpRVP                  \        P                  R4      P                  4       9   pVP                  \        P                   R4      P                  4       R8H  ;'       d)    \#        VP                  \        P$                  4      4      p\'        V VVVVVRVV\)        V4      4
      pVf   \+        4       pV	\,        J d   \/        V4      p	V\,        J d¾   \         P                  ! 4       pRVn        RVn        ^€Vn        W˜n        \         P8                  ! V	P;                  R	4      R
7      \=        V4      n        \         P8                  ! V	P;                  R4      R
7      \=        V4      n         \         P8                  ! VR
7      \=        V4      n!        V\,        J d\   \         P                  ! 4       p\E        R4      Vn#        \E        R4      Vn$        \E        R4      Vn%        \E        R4      Vn&        W—n        W˜n        Wxn'        \Q        VW¨W~WÜR7      p\S        V\,        J d   / MT\         P                  ! 4       4      pVPU                  V4       VVn+        V#   \         d+    \         P                  ! 4       pRTP
                  n         ELi ; i)z¥Creates mocked web.Request testing purposes.

Useful in unit tests, when spinning full web server is overkill or
specific conditions and errors are hard to trigger.
.Tc              3   ój   "  € T F)  w  rVP                  R 4      VP                  R 4      3x € K+  	  R# 5i)zutf-8N)Úencode)Ú.0ÚkÚvs   &  r?   Ú	<genexpr>Ú&make_mocked_request.<locals>.<genexpr>Ø  s,   é € ð 
Ù?N±t°qˆQ�X‰X�gÓ §¡¨Ó 1Õ2»ùs   ‚13Úchunkedr]   ÚupgradeNiþ  Úpeername)Úreturn_valuer  )r  r{   ),r   r  rc   r¹  rµ  Úcreate_futurer(  r   r   r   r  Úitemsr>  r   ÚTRANSFER_ENCODINGÚlowerÚ
CONNECTIONre   ÚUPGRADEr   r   r  r   r  Úmax_field_sizeÚmax_line_lengthÚmax_headersr  ÚPropertyMockr  rÄ   r'  r  rw   Úmake_mocked_coroÚwrite_headersÚwriteÚ	write_eofÚdrainr  r'   r+   Úadd_appÚ_match_info)r-  r˜   r  r  r‚   r  rä   r  r  r  r  r  r  r^   ÚtaskÚraw_hdrsr%  r&  ÚmessageÚreqs   &&&$$$$$$$$$$$      r?   Úmake_mocked_requestr>  ±  s·  € ô, �9Š9‹;€DØˆsƒ{ð
	1Ü×+Ò+Ó-ˆDð
 ”˜Q Ó"Ô"ØˆçÜ"¤;¨wÓ#7Ó8ˆß”5ñ 
Ø?F¿}¹}¼ó
—5‘5ñ 
Ø?F¿}¹}¼ó
ó 
‰ô #¤;£=Ó1ˆØˆà˜7Ÿ;™;¤t×'=Ñ'=¸rÓB×HÑHÓJÑJ€GØ�k‰kœ$Ÿ/™/¨2Ó.×4Ñ4Ó6¸)ÑC÷ ð ÌØ�‰”D—L‘LÓ!óI€Gô  ØØØØØØØØØÜˆD‹	ó€Gð ‚{ÜÓ ˆà”HÓÜ% jÓ1ˆ	à”8ÓÜ—9’9“;ˆØ"&ˆÔØ#'ˆÔ Ø"ˆÔØ&ÔÜ"&×"3Ò"3Ø"×1Ñ1°*Ó=ô#
ŒˆX‹Ôô #'×"3Ò"3Ø"×1Ñ1°*Ó=ô#
ŒˆX‹Ôô &*×%6Ò%6ÀJÔ%OŒˆX‹Ô"à”ÓÜ—’“ˆÜ/°Ó5ˆÔÜ'¨Ó-ˆŒÜ+¨DÓ1ˆÔÜ'¨Ó-ˆŒØ$Ôà"ÔØ„Oä
Ø� F°$ô€Cô %ØœHÓ$‰¨*´d·i²i³kó€Jð ×Ñ�sÔØ €C„Oà€JøôU ô 	1Ü—9’9“;ˆDØ.0ˆD×Ñ×+ð	1ús   �L Ì1MÍMc                ó<   € V ^8„  d   QhR\         R\         R\         /# )r7   r(  Úraise_exceptionr:   rÔ  )r>   s   "r?   r@   r@     s$   € ÷ &ñ &Üð&Ü36ð&äñ&rA   c                óH   a a€ R VV 3R llp\         P                  ! VR7      # )zCreates a coroutine mock.c                ó<   € V ^8„  d   QhR\         R\         R\         /# )r7   rÓ  rb   r:   rÔ  )r>   s   "r?   r@   Ú&make_mocked_coro.<locals>.__annotate__!  s!   € ÷ ñ œsð ¬cð ´cñ rA   c               Ÿ   ó|   <"  € S\         Jd   Sh\        P                  ! S4      '       g   S# SG R j  x€L
  R #  L5ir’   )r   ÚinspectÚisawaitable)rÓ  rb   r@  r(  s   *,€€r?   Ú	mock_coroÚ#make_mocked_coro.<locals>.mock_coro!  s4   øé € Ø¤(Ó*Ø!Ð!Ü×"Ò" <×0Ò0ØÐØ×Ôùs   ƒ(<¬<³:´<)Úwraps)r   r  )r(  r@  rG  s   ff r?   r3  r3    s   ù€ ÷
ñ ô �9Š9˜9Ô%Ð%rA   r¤  )Fr’   i   )gr§  rc   Ú
contextlibrì  rE  r€   Úosr<   r¨  r×  Úabcr   r   Úcollections.abcr   r   Útypesr   Útypingr   r   r	   r
   r   r   r   Úunittestr   r   Ú	aiosignalr   Ú	multidictr   r   Úyarlr   r  Úaiohttp.clientr   r   r   r   r]   r   r   r   Úclient_reqrepr   Ú	client_wsr   Úhelpersr   ry   r   r   Ústreamsr    r!   Útypedefsr"   Úwebr#   r$   r%   r&   r'   r(   r)   r*   r+   Úweb_protocolr,   rr   r-   r©  r.   r0   r1   r2   ÚnameÚplatformrL   rW   rE   rD   rY   r[   râ   ró   rÿ   r«  rÚ  rd   rÞ  ÚcontextmanagerÚnew_event_looprâ  rà  rá  r  r  r>  r3  r{   rA   r?   Ú<module>r`     sP  ðÙ  ã Û Û 	Û Û Û 	Û Û 
Û ß #ß .Ý ß P× PÑ Pß 2å ß 3Ý ã ÷ó ÷ "Ý "Ý )Ý .Ý ß 0ß 0Ý ÷
÷ 
õ 
õ *çÞà€Jà×Ñ�wÔ§=Ýà×Ñ�wÔÞà€DáÐ-¨{¸DÓAÐ Ù�: [Ô1€à—‘˜7Ñ"×?Ð? s§|¡|°xÑ'?€ð /5¯n©n÷,õ
õ-ôA�Sô AôH-�ô -ô"8�Nô 8ô$W�˜Ð#3Ð3Õ4ô Wôt62Ð-ô 62õrð ˜˜W×6Ñ6Ð6Õ7€ð ×Ñà")×"8Ñ"8Àuö	(ó ð	(ð #*×"8Ñ"8÷
÷!õ÷$	ñhð
 ðhñ ' q¨!Ó,ðhð ðhð ðhð ðhð ðhð ðhð *ðhð %)ðhð #ðhð ÷hð hðX !¸÷&ñ &rA   