§
    "ˆtjÒ<  ã                   ób  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZ G d„ de¦  «        Z G d„ dej        ¦  «        Z G d„ de¦  «        Z G d	„ d
ej        e¬¦  «        Zd„ Zej        d„ ¦   «         Zd#d„Z G d„ d¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z!d„ Z" e"¦   «         Z" G d„ d¦  «        Z# G d„ dej$        ¦  «        Z% G d„ de%¦  «        Z& G d„ de%¦  «        Z'd„ Z(d$d!„Z)ej        d"„ ¦   «         Z*dS )%z8Test utilities. Don't use outside of the uvloop project.é    Nc                   ó   — e Zd Zd„ ZdS )ÚMockPatternc                 óv   — t          t          j        t          | ¦  «        |t          j        ¦  «        ¦  «        S ©N)ÚboolÚreÚsearchÚstrÚS)ÚselfÚothers     úN/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/uvloop/_testbase.pyÚ__eq__zMockPattern.__eq__   s&   € Ý•B”I�c $™iœi¨µ´Ñ5Ô5Ñ6Ô6Ð6ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s#   € € € € € ð7ð 7ð 7ð 7ð 7r   r   c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚTestCaseDictc                 óV   •— t          ¦   «                              ¦   «          || _        d S r   )ÚsuperÚ__init__Úname)r   r   Ú	__class__s     €r   r   zTestCaseDict.__init__   s$   ø€ Ý‰Œ×ÒÑÔÐØˆŒ	ˆ	ˆ	r   c                 ó®   •— || j         v r(t          d                     | j        |¦  «        ¦  «        ‚t	          ¦   «                              ||¦  «         d S )Nzduplicate test {}.{})ÚdataÚRuntimeErrorÚformatr   r   Ú__setitem__)r   ÚkeyÚvaluer   s      €r   r    zTestCaseDict.__setitem__#   s\   ø€ Ø�$”)ÐÐÝÐ5×<Ò<Ø”	˜3ñ  ô   ñ !ô !ð !å‰Œ×Ò˜C Ñ'Ô'Ð'Ð'Ð'r   )r   r   r   r   r    Ú__classcell__©r   s   @r   r   r      sQ   ø€ € € € € ðð ð ð ð ð(ð (ð (ð (ð (ð (ð (ð (ð (r   r   c                   ó4   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Zˆ xZS )ÚBaseTestCaseMetac                 ó    — t          |¦  «        S r   )r   )Úmclsr   Úbasess      r   Ú__prepare__zBaseTestCaseMeta.__prepare__,   s   € å˜DÑ!Ô!Ð!r   c           	      ó  •— |D ]V}|                      d¦  «        sŒ|D ];}t          ||¦  «        r)t          d                     |||j        ¦  «        ¦  «        ‚Œ<ŒWt          ¦   «                              | ||t          |¦  «        ¦  «        S )NÚtest_z6duplicate test {}.{} (also defined in {} parent class))Ú
startswithÚhasattrr   r   r   r   Ú__new__Údict)r(   r   r)   ÚdctÚ	test_nameÚbaser   s         €r   r/   zBaseTestCaseMeta.__new__0   s©   ø€ Øð 	=ð 	=ˆIØ×'Ò'¨Ñ0Ô0ð ØØð =ð =�Ý˜4 Ñ+Ô+ð =Ý&ð(ß(.ªØ  )¨T¬]ñ)<ô )<ñ=ô =ð =ð=ð=õ ‰wŒw�Š˜t T¨5µ$°s±)´)Ñ<Ô<Ð<r   )r   r   r   Úclassmethodr*   r/   r#   r$   s   @r   r&   r&   *   sQ   ø€ € € € € àð"ð "ñ „[ð"ð=ð =ð =ð =ð =ð =ð =ð =ð =r   r&   c                   ó¶   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zddœd„Zd	„ Z	d
„ Z
d„ Zd„ Zej        dddddœd„Zej        dfd„Zd„ Zd„ Zej        d„ ¦   «         Zd„ ZdS )ÚBaseTestCasec                 ó   — t           ‚r   ©ÚNotImplementedError©r   s    r   Únew_loopzBaseTestCase.new_loop@   ó   € Ý!Ð!r   c                 ó   — t           ‚r   r8   r:   s    r   Ú
new_policyzBaseTestCase.new_policyC   r<   r   c                 ó    — t          |¦  «        S r   )r   )r   r
   s     r   Úmock_patternzBaseTestCase.mock_patternF   s   € Ý˜3ÑÔÐr   c              ƒ   ó¨   K  — t          |t          j        ¦  «        sd S 	 |                     ¦   «         ƒ d {V —† d S # t          t
          f$ r Y d S w xY wr   )Ú
isinstanceÚasyncioÚStreamWriterÚwait_closedÚBrokenPipeErrorÚConnectionError)r   Úobjs     r   rE   zBaseTestCase.wait_closedI   st   è è € Ý˜#�wÔ3Ñ4Ô4ð 	ØˆFð	Ø—/’/Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#øÝ¥Ð1ð 	ð 	ð 	ØˆDˆDð	øøøs    < ¼AÁAc                 óZ   — t          | j        ¦  «        j                             d¦  «        S )Nzasyncio.)ÚtypeÚloopr   r-   r:   s    r   Úis_asyncio_loopzBaseTestCase.is_asyncio_loopQ   s!   € Ý�D”I‰ŒÔ)×4Ò4°ZÑ@Ô@Ð@r   g{®Gáz„?)Údelayc                ó^   — | j                              t          j        |¦  «        ¦  «         d S r   )rK   Úrun_until_completerC   Úsleep)r   rM   s     r   Úrun_loop_brieflyzBaseTestCase.run_loop_brieflyT   s(   € ØŒ	×$Ò$¥W¤]°5Ñ%9Ô%9Ñ:Ô:Ð:Ð:Ð:r   c                 ón   — | j                              |¦  «         | j                             |¦  «         d S r   )Ú#_BaseTestCase__unhandled_exceptionsÚappendrK   Údefault_exception_handler)r   rK   Úcontexts      r   Úloop_exception_handlerz#BaseTestCase.loop_exception_handlerW   s5   € ØÔ#×*Ò*¨7Ñ3Ô3Ð3ØŒ	×+Ò+¨GÑ4Ô4Ð4Ð4Ð4r   c                 ó  — |                       ¦   «         | _        t          j        |                      ¦   «         ¦  «         t          j        | j        ¦  «         d| _        | j                             | j        ¦  «         g | _	        d S )NT)
r;   rK   rC   Úset_event_loop_policyr>   Úset_event_loopÚ"_check_unclosed_resources_in_debugÚset_exception_handlerrW   rS   r:   s    r   ÚsetUpzBaseTestCase.setUp[   sn   € Ø—M’M‘O”OˆŒ	ÝÔ% d§o¢oÑ&7Ô&7Ñ8Ô8Ð8ÝÔ˜tœyÑ)Ô)Ð)Ø26ˆÔ/àŒ	×'Ò'¨Ô(CÑDÔDÐDØ&(ˆÔ#Ð#Ð#r   c           	      óv  — | j                              ¦   «          | j        r?t          d¦  «         t	          j        | j        ¦  «         |                      d¦  «         d S | j        sd S t          j        ¦   «          t          j        ¦   «          t          j        ¦   «          t          | j         dd¦  «        �rÑt          j        ¦   «          t          j        ¦   «          t          j        ¦   «          |  
                    | j         j        | j         j        d¦  «         |  
                    | j         j        dd¦  «         |  
                    | j         j        dd¦  «         |  
                    | j         j        dd	¦  «         | j         j                             ¦   «         D ]^\  }}|                      d
|¬¦  «        5  |  
                    |dd                     |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   Œ_| j         j                             ¦   «         D ]n\  }}|                      d|¬¦  «        5  |  
                    || j         j        |         d                     |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   Œot-          j        d ¦  «         t-          j        d ¦  «         d | _         d S )Nz2Unexpected calls to loop.call_exception_handler():z1unexpected calls to loop.call_exception_handler()Ú	_debug_ccFz&not all uv_handle_t handles were freedr   z&not all callbacks (call_soon) are GCedz-not all timer callbacks (call_later) are GCedz&not all stream write contexts are GCedzAlive handle after test)Úhandle_namezalive {} after testzTotal/closed handlesztotal != closed for {})rK   ÚcloserS   ÚprintÚpprintÚfailr[   ÚgcÚcollectÚgetattrÚassertEqualÚ_debug_uv_handles_totalÚ_debug_uv_handles_freedÚ_debug_cb_handles_countÚ_debug_cb_timer_handles_countÚ_debug_stream_write_ctx_cntÚ_debug_handles_currentÚitemsÚsubTestr   Ú_debug_handles_totalÚ_debug_handles_closedrC   rZ   rY   )r   Úh_nameÚh_cnts      r   ÚtearDownzBaseTestCase.tearDownd   sH  € ØŒ	�ŠÑÔÐàÔ&ð 	ÝÐFÑGÔGÐGÝŒM˜$Ô5Ñ6Ô6Ð6Ø�IŠIÐIÑJÔJÐJØˆFàÔ6ð 	ØˆFõ 	Œ
‰ŒˆÝ
Œ
‰ŒˆÝ
Œ
‰Œˆå�4”9˜k¨5Ñ1Ô1ñ "	AÝŒJ‰LŒLˆLÝŒJ‰LŒLˆLÝŒJ‰LŒLˆLà×ÒØ”	Ô1Ø”	Ô1Ø8ñ:ô :ð :ð
 ×ÒØ”	Ô1°1Ø8ñ:ô :ð :ð ×ÒØ”	Ô7¸Ø?ñAô Að Að ×ÒØ”	Ô5°qØ8ñ:ô :ð :ð "&¤Ô!A×!GÒ!GÑ!IÔ!Ið >ð >‘�˜Ø—\’\Ð";Ø.4ð "ñ 6ô 6ð >ð >à×$Ò$Ø˜qØ-×4Ò4°VÑ<Ô<ñ>ô >ð >ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >øð "&¤Ô!?×!EÒ!EÑ!GÔ!Gð Að A‘�˜Ø—\’\Ð"8Ø.4ð "ñ 6ô 6ð Að Aà×$Ò$Ø˜tœyÔ>¸vÔFØ0×7Ò7¸Ñ?Ô?ñAô Að AðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aøõ 	Ô˜tÑ$Ô$Ð$ÝÔ% dÑ+Ô+Ð+ØˆŒ	ˆ	ˆ	s$   Æ:+G1Ç1G5	Ç8G5	È7;I>É>J	ÊJ	c                 ó   — d| _         d S ©NF)r[   r:   s    r   Úskip_unclosed_handles_checkz(BaseTestCase.skip_unclosed_handles_check�   s   € Ø27ˆÔ/Ð/Ð/r   Né   é   é
   )ÚfamilyÚaddrÚtimeoutÚbacklogÚmax_clientsc                ó  — |€E|t           j        k    r3t          j        ¦   «         5 }|j        }d d d ¦  «         n# 1 swxY w Y   nd}t          j         |t           j        ¦  «        }|€t          d¦  «        ‚|dk    rt          d¦  «        ‚|                     |¦  «         	 |                     |¦  «         | 	                    |¦  «         n(# t          $ r}	|                     ¦   «          |	‚d }	~	ww xY wt          | ||||¦  «        S )N)z	127.0.0.1r   útimeout is requiredr   ú#only blocking sockets are supported)ÚsocketÚAF_UNIXÚtempfileÚNamedTemporaryFiler   ÚSOCK_STREAMr   Ú
settimeoutÚbindÚlistenÚOSErrorra   ÚTestThreadedServer)
r   Úserver_progr|   r}   r~   r   r€   ÚtmpÚsockÚexs
             r   Ú
tcp_serverzBaseTestCase.tcp_server    sQ  € ð ˆ<Ø�œÒ'Ð'ÝÔ0Ñ2Ô2ð $°cØœ8�Dð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $øð (�åŒ}˜V¥VÔ%7Ñ8Ô8ˆàˆ?ÝÐ4Ñ5Ô5Ð5Ø�aŠ<ˆ<ÝÐDÑEÔEÐEØ�Š˜Ñ Ô Ð ð	Ø�IŠI�d‰OŒOˆOØ�KŠK˜Ñ Ô Ð Ð øÝð 	ð 	ð 	Ø�JŠJ‰LŒLˆLØˆHøøøøð	øøøõ "Ø�$˜ W¨kñ;ô ;ð 	;s%   ¦:º>Á>Â#*C Ã
C3ÃC.Ã.C3c                 óÚ   — t          j         |t           j        ¦  «        }|€t          d¦  «        ‚|dk    rt          d¦  «        ‚|                     |¦  «         t	          | |||¦  «        S )Nr‚   r   rƒ   )r„   rˆ   r   r‰   ÚTestThreadedClient)r   Úclient_progr|   r~   r�   s        r   Ú
tcp_clientzBaseTestCase.tcp_clientÀ   sq   € õ Œ}˜V¥VÔ%7Ñ8Ô8ˆàˆ?ÝÐ4Ñ5Ô5Ð5Ø�aŠ<ˆ<ÝÐDÑEÔEÐEØ�Š˜Ñ Ô Ð å!Ø�$˜ Wñ.ô .ð 	.r   c                 ó4   —  | j         |dt          j        i|¤ŽS ©Nr|   )r’   r„   r…   ©r   ÚargsÚkwargss      r   Úunix_serverzBaseTestCase.unix_serverÏ   ó    € ØˆtŒ ÐF­V¬^ÐF¸vÐFÐFÐFr   c                 ó4   —  | j         |dt          j        i|¤ŽS r˜   )r–   r„   r…   r™   s      r   Úunix_clientzBaseTestCase.unix_clientÒ   r�   r   c              #   óL  K  — t          j        ¦   «         5 }t          j                             |d¦  «        }	 |V — 	 t          j        |¦  «         n:# t          $ r Y n.w xY w# 	 t          j        |¦  «         w # t          $ r Y w w xY wxY wd d d ¦  «         d S # 1 swxY w Y   d S )Nr�   )r†   ÚTemporaryDirectoryÚosÚpathÚjoinÚunlinkrŒ   )r   ÚtdÚfns      r   Úunix_sock_namezBaseTestCase.unix_sock_nameÕ   s  è è € åÔ(Ñ*Ô*ð 	¨bÝ”—’˜b &Ñ)Ô)ˆBðØ���ðÝ”I˜b‘M”M�M�MøÝð ð ð Ø�DðøøøøðÝ”I˜b‘M”M�M�MøÝð ð ð Ø�Dðøøøøøøð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	si   –!B¸A"½AÁBÁ
AÁBÁAÁBÁ"B	Á$A9Á8B	Á9
B	ÂB	ÂB	ÂB	Â	BÂBÂ Bc                 ó˜   — 	 | j                              ¦   «          |                      |¦  «         d S # |                      |¦  «         w xY wr   )rK   Ústoprd   ©r   r‘   s     r   Ú_abort_socket_testzBaseTestCase._abort_socket_testá   s@   € ð	ØŒI�NŠNÑÔÐà�IŠI�b‰MŒMˆMˆMˆMøˆD�IŠI�b‰MŒMˆMˆMøøøs	   ‚2 ²A	)r   r   r   r;   r>   r@   rE   rL   rQ   rW   r]   ru   rx   r„   ÚAF_INETr’   r–   rœ   rŸ   Ú
contextlibÚcontextmanagerr¨   r¬   r   r   r   r6   r6   >   sZ  € € € € € ð"ð "ð "ð"ð "ð "ð ð  ð  ðð ð ðAð Að Að )-ð ;ð ;ð ;ð ;ð ;ð5ð 5ð 5ð)ð )ð )ð7ð 7ð 7ðr8ð 8ð 8ð !œ.ØØØØ!ð;ð ;ð ;ð ;ð ;ðB !œ.Øð.ð .ð .ð .ðGð Gð GðGð Gð Gð Ôð	ð 	ñ Ôð	ðð ð ð ð r   r6   )Ú	metaclassc                 óþ   — t           j                             t           j                             t           j                             | ¦  «        d|¦  «        ¦  «        }t           j                             |¦  «        sJ ‚|S )NÚcerts)r¢   r£   Úabspathr¤   ÚdirnameÚisfile)Útest_file_nameÚcert_file_nameÚfullnames      r   Ú_cert_fullnamer¹   è   sa   € ÝŒw�Š�rœwŸ|š|Ý
Œ�Š˜Ñ'Ô'¨°.ñ Bô  Bñ Cô C€HåŒ7�>Š>˜(Ñ#Ô#Ð#Ð#Ð#Ø€Or   c               #   ó  K  —  G d„ dt           j        ¦  «        } t          j        d¦  «        } | ¦   «         }|                     |¦  «         	 d V — |                     |¦  «         d S # |                     |¦  «         w xY w)Nc                   ó   — e Zd Zd„ ZdS )ú)silence_long_exec_warning.<locals>.Filterc                 ól   — |j                              d¦  «        o|j                              d¦  «         S )NÚ	ExecutingÚseconds)Úmsgr-   Úendswith)r   Úrecords     r   Úfilterz0silence_long_exec_warning.<locals>.Filter.filteró   s7   € Øœ
×-Ò-¨kÑ:Ô:ð 7Øœ
×+Ò+¨IÑ6Ô6ð8ð 8r   N)r   r   r   rÃ   r   r   r   ÚFilterr¼   ò   s#   € € € € € ð	8ð 	8ð 	8ð 	8ð 	8r   rÄ   rC   )ÚloggingrÄ   Ú	getLoggerÚ	addFilterÚremoveFilter)rÄ   ÚloggerrÃ   s      r   Úsilence_long_exec_warningrÊ   ï   s¥   è è € ð8ð 8ð 8ð 8ð 8•”ñ 8ô 8ð 8õ
 Ô˜yÑ)Ô)€FØˆV‰XŒX€FØ
×Ò�VÑÔÐð$Øˆˆˆà×Ò˜FÑ#Ô#Ð#Ð#Ð#øˆ×Ò˜FÑ#Ô#Ð#Ð#øøøs   ÁA* Á*BéPÃ  c                 ó  — t          | | dz   ¦  «        D ]k}t          j        ¦   «         }|5  	 |                     d|f¦  «         |cd d d ¦  «         c S # t          j        $ r Y d d d ¦  «         Œ\w xY w# 1 swxY w Y   Œlt	          d¦  «        ‚)Niô  Ú zcould not find a free port)Úranger„   rŠ   Úerrorr   )Ú
start_fromÚportr�   s      r   Úfind_free_portrÒ      s  € Ý�j *¨sÑ"2Ñ3Ô3ð ð ˆÝŒ}‰ŒˆØð 	ð 	ðØ—	’	˜2˜t˜*Ñ%Ô%Ð%ð ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	øõ ”<ð ð ð Øð		ð 	ð 	ñ 	ô 	ð 	ð 	ðøøøð	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	õ Ð3Ñ
4Ô
4Ð4s4   «A4­AÁA4ÁA1Á#A4Á0A1Á1A4Á4A8	Á;A8	c                   óB   — e Zd Zdd„Zddœd„Zej        d„ ¦   «         ZdS )ÚSSLTestCaseNc                 ór  — t          t          d¦  «        rt          j        t          j        ¦  «        }nRt          t          d¦  «        rt          j        t          j        ¦  «        }nt          j        t          j        ¦  «        }|xj        t          j        z  c_        |                     ||¦  «         |S )NÚPROTOCOL_TLS_SERVERÚPROTOCOL_TLS)	r.   ÚsslÚ
SSLContextrÖ   r×   ÚPROTOCOL_SSLv23ÚoptionsÚOP_NO_SSLv2Úload_cert_chain)r   ÚcertfileÚkeyfileÚ
sslcontexts       r   Ú_create_server_ssl_contextz&SSLTestCase._create_server_ssl_context  s“   € Ý•3Ð-Ñ.Ô.ð 	=Ýœ­Ô(?Ñ@Ô@ˆJˆJÝ•S˜.Ñ)Ô)ð 	=Ýœ­Ô(8Ñ9Ô9ˆJˆJåœ­Ô(;Ñ<Ô<ˆJØÐÔ�cœoÑ-ÐÔØ×"Ò" 8¨WÑ5Ô5Ð5ØÐr   T)Údisable_verifyc                ó`   — t          j        ¦   «         }d|_        |rt           j        |_        |S rw   )rØ   Úcreate_default_contextÚcheck_hostnameÚ	CERT_NONEÚverify_mode)r   râ   rà   s      r   Ú_create_client_ssl_contextz&SSLTestCase._create_client_ssl_context  s0   € ÝÔ/Ñ1Ô1ˆ
Ø$)ˆ
Ô!Øð 	3Ý%(¤]ˆJÔ"ØÐr   c              #   óì   K  — t          j        d¦  «        }t          j        d¦  «        }|                     |¦  «         	 d V — |                     |¦  «         d S # |                     |¦  «         w xY w)NrC   zhas no effect when using ssl)rÅ   rÆ   rÄ   rÇ   rÈ   )r   rÉ   rÃ   s      r   Ú_silence_eof_received_warningz)SSLTestCase._silence_eof_received_warning!  s~   è è € õ Ô" 9Ñ-Ô-ˆÝ”Ð >Ñ?Ô?ˆØ×Ò˜Ñ Ô Ð ð	(ØˆEˆEˆEà×Ò Ñ'Ô'Ð'Ð'Ð'øˆF×Ò Ñ'Ô'Ð'Ð'øøøs   ÁA ÁA3r   )r   r   r   rá   rè   r®   r¯   rê   r   r   r   rÔ   rÔ     sf   € € € € € ð	ð 	ð 	ð 	ð <@ð ð ð ð ð ð Ôð(ð (ñ Ôð(ð (ð (r   rÔ   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú
UVTestCaseÚuvloopc                 ó(   — t          j        ¦   «         S r   )rí   Únew_event_loopr:   s    r   r;   zUVTestCase.new_loop1  s   € ÝÔ$Ñ&Ô&Ð&r   c                 ó(   — t          j        ¦   «         S r   )rí   ÚEventLoopPolicyr:   s    r   r>   zUVTestCase.new_policy4  s   € ÝÔ%Ñ'Ô'Ð'r   N)r   r   r   Úimplementationr;   r>   r   r   r   rì   rì   -  s7   € € € € € à€Nð'ð 'ð 'ð(ð (ð (ð (ð (r   rì   c                   ó8   ‡ — e Zd ZdZˆ fd„Zˆ fd„Zd„ Zd„ Zˆ xZS )ÚAIOTestCaserC   c                 óî   •— t          ¦   «                              ¦   «          t          j        dk     rCt	          j        ¦   «         }|                     | j        ¦  «         t	          j        |¦  «         d S d S ©N)é   é   )	r   r]   ÚsysÚversion_inforC   ÚSafeChildWatcherÚattach_looprK   Úset_child_watcher)r   Úwatcherr   s     €r   r]   zAIOTestCase.setUp<  se   ø€ Ý‰Œ�Š‰ŒˆåÔ˜gÒ%Ð%ÝÔ.Ñ0Ô0ˆGØ×Ò ¤	Ñ*Ô*Ð*ÝÔ% gÑ.Ô.Ð.Ð.Ð.ð &Ð%r   c                 ó�   •— t           j        dk     rt          j        d ¦  «         t	          ¦   «                              ¦   «          d S rö   )rù   rú   rC   rý   r   ru   ©r   r   s    €r   ru   zAIOTestCase.tearDownD  s>   ø€ ÝÔ˜gÒ%Ð%ÝÔ% dÑ+Ô+Ð+Ý‰Œ×ÒÑÔÐÐÐr   c                 ó(   — t          j        ¦   «         S r   )rC   rï   r:   s    r   r;   zAIOTestCase.new_loopI  s   € ÝÔ%Ñ'Ô'Ð'r   c                 ó(   — t          j        ¦   «         S r   )rC   ÚDefaultEventLoopPolicyr:   s    r   r>   zAIOTestCase.new_policyL  s   € ÝÔ-Ñ/Ô/Ð/r   )	r   r   r   rò   r]   ru   r;   r>   r#   r$   s   @r   rô   rô   8  st   ø€ € € € € à€Nð/ð /ð /ð /ð /ðð ð ð ð ð
(ð (ð (ð0ð 0ð 0ð 0ð 0ð 0ð 0r   rô   c                  óÞ   — t          j         t           j        ¦  «        } | 5  	 |                      d¦  «         	 d d d ¦  «         dS # t          $ r Y d d d ¦  «         dS w xY w# 1 swxY w Y   d S )N)z::1r   TF)r„   ÚAF_INET6rŠ   rŒ   )Úserver_socks    r   Úhas_IPv6r  P  sã   € Ý”-¥¤Ñ0Ô0€KØ	ð ð ð	Ø×Ò˜ZÑ(Ô(Ð(ð ðð ð ñ ô ð ð ð øõ ð 	ð 	ð 	Øð	ð ð ñ ô ð ð ð ð	øøøðð ð ð øøøð ð ð ð ð ð s3   ¡A"£A¸A"Á
AÁA"ÁAÁA"Á"A&Á)A&c                   ó6   — e Zd Zd„ Zd„ Zddddœd„Zd„ Zd	„ ZdS )
ÚTestSocketWrapperc                 ó   — || _         d S r   )Ú_TestSocketWrapper__sock©r   r�   s     r   r   zTestSocketWrapper.__init__e  s   € ØˆŒˆˆr   c                 óÄ   — d}t          |¦  «        |k     rJ|                      |t          |¦  «        z
  ¦  «        }|dk    rt          ‚||z  }t          |¦  «        |k     °J|S )Nr   )ÚlenÚrecvÚConnectionAbortedError)r   ÚnÚbufr   s       r   Úrecv_allzTestSocketWrapper.recv_allh  sa   € ØˆÝ�#‰hŒh˜ŠlˆlØ—9’9˜Q¥ S¡¤™\Ñ*Ô*ˆDØ�sŠ{ˆ{Ý,Ð,Ø�4‰KˆCõ	 �#‰hŒh˜Šlˆlð
 ˆ
r   FNT©Úserver_sideÚserver_hostnameÚdo_handshake_on_connectc                óæ   — t          |t          j        ¦  «        sJ ‚|                     | j        |||¬¦  «        }|r|                     ¦   «          | j                             ¦   «          || _        d S )Nr  )rB   rØ   rÙ   Úwrap_socketr  Údo_handshakera   )r   Ússl_contextr  r  r  Ússl_socks         r   ÚstarttlszTestSocketWrapper.starttlsq  s~   € õ
 ˜+¥s¤~Ñ6Ô6Ð6Ð6Ð6à×*Ò*ØŒK [Ø+Ø$;ð +ñ =ô =ˆð
 ð 	$Ø×!Ò!Ñ#Ô#Ð#àŒ×ÒÑÔÐØˆŒˆˆr   c                 ó,   — t          | j        |¦  «        S r   )rg   r  )r   r   s     r   Ú__getattr__zTestSocketWrapper.__getattr__ƒ  s   € Ý�t”{ DÑ)Ô)Ð)r   c                 ó\   — d                      t          | ¦  «        j        | j        ¦  «        S )Nz	<{} {!r}>)r   rJ   r   r  r:   s    r   Ú__repr__zTestSocketWrapper.__repr__†  s#   € Ø×!Ò!¥$ t¡*¤*Ô"5°t´{ÑCÔCÐCr   )r   r   r   r   r  r  r  r!  r   r   r   r	  r	  c  sy   € € € € € ðð ð ðð ð ð #Ø!%Ø)-ðð ð ð ð ð$*ð *ð *ðDð Dð Dð Dð Dr   r	  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚSocketThreadc                 ó<   — d| _         |                      ¦   «          d S rw   )Ú_activer¤   r:   s    r   rª   zSocketThread.stopŒ  s   € ØˆŒØ�	Š	‰Œˆˆˆr   c                 ó.   — |                       ¦   «          | S r   )Ústartr:   s    r   Ú	__enter__zSocketThread.__enter__�  s   € Ø�
Š
‰ŒˆØˆr   c                 ó.   — |                       ¦   «          d S r   )rª   )r   Úexcs     r   Ú__exit__zSocketThread.__exit__”  s   € Ø�	Š	‰Œˆˆˆr   N)r   r   r   rª   r(  r+  r   r   r   r#  r#  Š  sA   € € € € € ðð ð ðð ð ðð ð ð ð r   r#  c                   ó   — e Zd Zd„ Zd„ ZdS )r”   c                 óž   — t           j                             | d d d¦  «         d| _        || _        || _        d| _        || _        || _        d S )Nztest-clientT)	Ú	threadingÚThreadr   ÚdaemonÚ_timeoutÚ_sockr%  Ú_progÚ_test)r   Útestr�   Úprogr~   s        r   r   zTestThreadedClient.__init__š  sM   € ÝÔ×!Ò! $¨¨d°MÑBÔBÐBØˆŒàˆŒØˆŒ
ØˆŒØˆŒ
ØˆŒ
ˆ
ˆ
r   c                 óÜ   — 	 |                       t          | j        ¦  «        ¦  «         d S # t          t          f$ r ‚ t
          $ r%}| j                             |¦  «         Y d }~d S d }~ww xY wr   )r3  r	  r2  ÚKeyboardInterruptÚ
SystemExitÚBaseExceptionr4  r¬   r«   s     r   ÚrunzTestThreadedClient.run¤  s‹   € ð	.Ø�JŠJÕ(¨¬Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5øÝ!¥:Ð.ð 	ð 	ð 	ØÝð 	.ð 	.ð 	.ØŒJ×)Ò)¨"Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-øøøøð	.øøøs   ‚'+ «A+ÁA&Á&A+N)r   r   r   r   r;  r   r   r   r”   r”   ˜  s2   € € € € € ðð ð ð.ð .ð .ð .ð .r   r”   c                   óL   ‡ — e Zd Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zed„ ¦   «         Z	ˆ xZ
S )r�   c                 ó<  — t           j                             | d d d¦  «         d| _        d| _        d| _        || _        || _        || _        d| _	        || _
        t          j        ¦   «         \  | _        | _        | j                             d¦  «         || _        d S )Nztest-serverTr   F)r.  r/  r   r0  Ú_clientsÚ_finished_clientsÚ_max_clientsr1  r2  r%  r3  r„   Ú
socketpairÚ_s1Ú_s2Úsetblockingr4  )r   r5  r�   r6  r~   r€   s         r   r   zTestThreadedServer.__init__¯  s‘   € ÝÔ×!Ò! $¨¨d°MÑBÔBÐBØˆŒàˆŒØ!"ˆÔØ'ˆÔØˆŒØˆŒ
ØˆŒàˆŒ
å#Ô.Ñ0Ô0ÑˆŒ�$”(ØŒ×Ò˜UÑ#Ô#Ð#àˆŒ
ˆ
ˆ
r   c                 ó4  •— 	 | j         rI| j                              ¦   «         dk    r,	 | j                              d¦  «         n# t          $ r Y nw xY wt	          ¦   «                              ¦   «          d S # t	          ¦   «                              ¦   «          w xY w)Néÿÿÿÿs   stop)rC  ÚfilenoÚsendrŒ   r   rª   r   s    €r   rª   zTestThreadedServer.stopÁ  s‘   ø€ ð	ØŒxð ˜DœHŸOšOÑ-Ô-°Ò3Ð3ðØ”H—M’M 'Ñ*Ô*Ð*Ð*øÝð ð ð Ø�Dðøøøõ ‰GŒG�LŠL‰NŒNˆNˆNˆNø�E‰GŒG�LŠL‰NŒNˆNˆNøøøs.   ƒ$A5 ¨A ÁA5 Á
AÁA5 ÁAÁA5 Á5"Bc                 ót  — 	 | j         5  | j                              d¦  «         |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   | j                             ¦   «          | j                             ¦   «          d S # | j                             ¦   «          | j                             ¦   «          w xY w)Nr   )r2  rD  Ú_runrB  ra   rC  r:   s    r   r;  zTestThreadedServer.runË  sà   € ð	Ø”ð ð Ø”
×&Ò& qÑ)Ô)Ð)Ø—	’	‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ŒH�NŠNÑÔÐØŒH�NŠNÑÔÐÐÐøð ŒH�NŠNÑÔÐØŒH�NŠNÑÔÐÐøøøs-   ‚B ‰/A¸B ÁAÁB ÁAÁB Â4B7c                 ó¨  — | j         �rI| j        | j        k    rd S t          j        | j        | j        gg g | j        ¦  «        \  }}}| j        |v rd S | j        |v rí	 | j                             ¦   «         \  }}| xj        dz  c_        |                     | j        ¦  «         	 |5  |  	                    |¦  «         d d d ¦  «         n# 1 swxY w Y   nu# t          t          f$ r ‚ t          $ r-}d| _         	 ‚ # | j                             |¦  «         w xY wd }~ww xY w# t          $ r Y �Œ*t           j        $ r | j         sY d S ‚ w xY w| j         �°Gd S d S )Nrz   F)r%  r>  r@  Úselectr2  rB  r1  Úacceptr‰   Ú_handle_clientr8  r9  r:  r4  r¬   ÚBlockingIOErrorr„   r~   )r   ÚrÚwÚxÚconnr}   r‘   s          r   rJ  zTestThreadedServer._runÔ  sï  € ØŒlñ !	>ØŒ} Ô 1Ò1Ð1Ø�å”mØ”˜TœXÐ&¨¨B°´ñ?ô ?‰GˆAˆq�!ð Œx˜1ˆ}ˆ}Ø�àŒz˜Qˆˆð>Ø!%¤×!2Ò!2Ñ!4Ô!4‘J�D˜$ð �M”M QÑ&�M”MØ—O’O D¤MÑ2Ô2Ð2ð
>Ø!ð 6ð 6Ø ×/Ò/°Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6øøå-­zÐ:ð ð ð ØÝ(ð >ð >ð >Ø',˜œð>Ø!øà œJ×9Ò9¸"Ñ=Ô=Ð=Ð=øøøøøøøð>øøøøõ 'ð ð ð Ø‘HÝ”~ð ð ð Øœ<ð Ø˜˜àð	øøøð Œlñ !	>ð !	>ð !	>ð !	>ð !	>sf   ÁD Â#C Â%CÂ;C ÃCÃC ÃCÃC ÃDÃ.DÃ6C7Ã7DÄDÄDÄ
EÄ+EÅEc                 óJ   — |                       t          |¦  «        ¦  «         d S r   )r3  r	  r  s     r   rN  z!TestThreadedServer._handle_clientø  s#   € Ø�
Š
Õ$ TÑ*Ô*Ñ+Ô+Ð+Ð+Ð+r   c                 ó4   — | j                              ¦   «         S r   )r2  Úgetsocknamer:   s    r   r}   zTestThreadedServer.addrû  s   € àŒz×%Ò%Ñ'Ô'Ð'r   )r   r   r   r   rª   r;  rJ  rN  Úpropertyr}   r#   r$   s   @r   r�   r�   ­  s�   ø€ € € € € ðð ð ð$ð ð ð ð ðð ð ð">ð ">ð ">ðH,ð ,ð ,ð ð(ð (ñ „Xð(ð (ð (ð (ð (r   r�   c                 óÞ   — d„ } |¦   «         }|                       |¦  «        }d|_        	 |                      |¦  «         |                     ¦   «          d S # |                     ¦   «          w xY w)Nc               “   ó
   K  — d S r   r   r   r   r   Úoncezrun_briefly.<locals>.once  s   è è € Øˆr   F)Úcreate_taskÚ_log_destroy_pendingrO   ra   )rK   rZ  ÚgenÚts       r   Úrun_brieflyr_    su   € ðð ð à
ˆ$‰&Œ&€CØ×Ò˜ÑÔ€Að #€AÔðØ×Ò Ñ"Ô"Ð"à�	Š	‰Œˆˆˆøˆ�	Š	‰Œˆˆøøøs   «A ÁA,é   c                 ó:  — t          j         ¦   «         |z   } |¦   «         sz|�:|t          j         ¦   «         z
  }|dk    rt          j                             ¦   «         ‚|                      t          j                             d¦  «        ¦  «          |¦   «         ¯xd S d S )Nr   gü©ñÒMbP?)ÚtimerC   ÚfuturesÚTimeoutErrorrO   ÚtasksrP   )rK   Úpredr~   Údeadlines       r   Ú	run_untilrh    s›   € ÝŒy‰{Œ{˜WÑ$€HØˆd‰fŒfð <ØÐØ¥¤¡¤Ñ,ˆGØ˜!Š|ˆ|Ý”o×2Ò2Ñ4Ô4Ð4Ø×Ò¥¤× 3Ò 3°EÑ :Ô :Ñ;Ô;Ð;ð ˆd‰fŒfð <ð <ð <ð <ð <r   c               #   ó<  K  — t           j        j        j        } 	 t           j        j                             t
          j        dz   ¦  «         dV — t           j        j                             | ¦  «         dS # t           j        j                             | ¦  «         w xY w)zrContext manager to disable asyncio logger.

    For example, it can be used to ignore warnings in debug mode.
    rz   N)rC   ÚlogrÉ   ÚlevelÚsetLevelrÅ   ÚCRITICAL)Ú	old_levels    r   Údisable_loggerro    s‚   è è € õ ”Ô"Ô(€Ið/ÝŒÔ×#Ò#¥GÔ$4°qÑ$8Ñ9Ô9Ð9ØˆˆˆåŒÔ×#Ò# IÑ.Ô.Ð.Ð.Ð.ø�ŒÔ×#Ò# IÑ.Ô.Ð.Ð.øøøs   š5A5 Á5&B)rË   )r`  )+Ú__doc__rC   Úasyncio.eventsÚcollectionsr®   re   rÅ   r¢   rc   r   rL  r„   rØ   rù   r†   r.  rb  Úunittestrí   r
   r   ÚUserDictr   rJ   r&   ÚTestCaser6   r¹   r¯   rÊ   rÒ   rÔ   rì   rô   r  r	  r/  r#  r”   r�   r_  rh  ro  r   r   r   ú<module>rv     s]  ðØ >Ð >ð €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€ð7ð 7ð 7ð 7ð 7�#ñ 7ô 7ð 7ð

(ð 
(ð 
(ð 
(ð 
(�;Ô'ñ 
(ô 
(ð 
(ð=ð =ð =ð =ð =�tñ =ô =ð =ð(gð gð gð gð g�8Ô$Ð0@ð gñ gô gð gðTð ð ð Ôð$ð $ñ Ôð$ð 
5ð 
5ð 
5ð 
5ð(ð (ð (ð (ð (ñ (ô (ð (ð@(ð (ð (ð (ð (�ñ (ô (ð (ð0ð 0ð 0ð 0ð 0�,ñ 0ô 0ð 0ð0ð ð ð ˆ8‰:Œ:€ð$Dð $Dð $Dð $Dð $Dñ $Dô $Dð $DðNð ð ð ð �9Ô#ñ ô ð ð.ð .ð .ð .ð .˜ñ .ô .ð .ð*P(ð P(ð P(ð P(ð P(˜ñ P(ô P(ð P(ðpð ð ð<ð <ð <ð <ð Ôð
/ð 
/ñ Ôð
/ð 
/ð 
/r   