+
    Bi0                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt  ^ RIt^ RIt^ RI
HtHtHtHt ^ RIHt ]P$                  tR t ! R R]4      tRR	 ltR
 t ! R R]P0                  4      t ! R R]P0                  4      t ! R R]P0                  4      t ! R R]P0                  4      t ! R R]P0                  4      t]R8X  d   ]P>                  ! 4        R# R#   ]	 d    Rt Li ; i)    N)selector_events)mock)BaseSelectorEventLoop_SelectorDatagramTransport_SelectorSocketTransport_SelectorTransport)utilsc                  D    \         P                  P                  R 4       R # N)asyncioevents_set_event_loop_policy     =/usr/lib/python3.14/test/test_asyncio/test_selector_events.pytearDownModuler      s    NN))$/r   c                   ,   a  ] tR t^t o R tR tRtV tR# )TestBaseSelectorEventLoopc                    \         P                  ! 4       V n        \         P                  ! 4       V n        V ;P                  ^,          un        R#    Nr   Mock_ssock_csock_internal_fdsselfs   &r   _make_self_pipe)TestBaseSelectorEventLoop._make_self_pipe    s-    iikiikar   c                    R # r   r   r   s   &r   _close_self_pipe*TestBaseSelectorEventLoop._close_self_pipe%   s    r   r   r   N)__name__
__module____qualname____firstlineno__r   r"   __static_attributes____classdictcell____classdict__s   @r   r   r      s      
 r   r   c                 `    \         P                  ! 4       pVP                  R  V  4       4       V# )c              3   8   "   T F  p\        V4      x  K  	  R # 5ir   )
memoryview).0is   & r   	<genexpr>!list_to_buffer.<locals>.<genexpr>+   s     ,!Q:a==!s   )collectionsdequeextend)lbuffers   & r   list_to_bufferr9   )   s'     F
MM,!,-Mr   c                 h    V P                   f   R # V P                   P                  4        R V n         R # r   )_sockclose)	transports   &r   close_transportr>   0   s(     OOIOr   c                   V  a a ] tR t^9t oV 3R ltR t]P                  ! RR4      ]P                  ! RR4      R 4       4       tR t	R t
R	 tR
 tR tR t]P                  ! R4      R 4       tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R  t!R!t"Vt#V ;t$# )"BaseSelectorEventLoopTestsc                   < \         SV `  4        \        P                  ! 4       V n        . V P                  P
                  n        \        V P                  4      V n        V P                  V P                  4       R # r   )
supersetUpr   r   selectorselectreturn_valuer   loopset_event_loopr   	__class__s   &r   rC    BaseSelectorEventLoopTests.setUp;   sM    		,.)-dmm<	DII&r   c                
   \         P                  ! 4       p\         P                  ! 4       V P                  n        \         P                  ! 4       V P                  n        V P                  P                  V\        P                  ! 4       4      pV P                  V\        4       V P                  V P                  P                  P                  ^4       V P                  P                  4        \        V4       \        V4       R# r   )r   r   rG   
add_reader_ensure_fd_no_transport_make_socket_transportr   ProtocolassertIsInstancer   assertEqual
call_countr<   reprr>   )r   mr=   s   &  r   test_make_socket_transport5BaseSelectorEventLoopTests.test_make_socket_transportB   s    IIK#yy{		,0IIK		)II44Q8H8H8JK	i)AB::EEqI 			Y	"r   zasyncio.selector_events.sslNzasyncio.sslproto.sslc                   \         P                  ! 4       p\         P                  ! 4       V P                  n        \         P                  ! 4       V P                  n        \         P                  ! 4       V P                  n        \         P                  ! 4       V P                  n        \         P                  ! 4       V P                  n        V P                  \        4      ;_uu_ 4        V P                  P                  WW4       R R R 4       V P                  V P                  P                  P                  ^4       R #   + '       g   i     LB; ir   )r   r   rG   rM   
add_writerremove_readerremove_writerrN   assertRaisesRuntimeError_make_ssl_transportrR   rS   )r   rU   s   & r   )test_make_ssl_transport_without_ssl_errorDBaseSelectorEventLoopTests.test_make_ssl_transport_without_ssl_errorP   s     IIK#yy{		#yy{		"&))+		"&))+		,0IIK		)|,,II))!5 -::EEqI -,s   'D>>E	c                r    ! R  R\         4      pV! V P                  4      V n        V P                  V P                  4       V P                  P                  p^VP
                  n        V P                  P                  p^VP
                  n        \        P                  ! 4       ;q@P                  n
        V P                  P                  P                  4        \        P                  ! 4       ;V P                  n        pV P                  V P                  P                  4       4       V P                  P                  4        V P                  V P                  P                  4       4       V P!                  V P                  P                  4       V P!                  V P                  P                  4       V P!                  V P                  P                  4       VP                  P#                  4        VP                  P#                  4        VP                  P#                  4        VP#                  ^4       V P                  P                  4        V P                  P                  4        V P                  P%                  4       pV P'                  \(        V P                  P*                  4       V P'                  \(        V P                  P,                  V4       ^ pR pV P'                  \(        V P                  P.                  Wx4       V P'                  \(        V P                  P0                  Wx4       R# )c                   &   a  ] tR t^^t o R tRtV tR# )8BaseSelectorEventLoopTests.test_close.<locals>.EventLoopc                    \         P                  ! 4       V n        \         P                  ! 4       V n        V ;P                  ^,          un        R# r   r   r   s   &r   r   HBaseSelectorEventLoopTests.test_close.<locals>.EventLoop._make_self_pipe_   s-    "iik"iik""a'"r   r$   N)r%   r&   r'   r(   r   r)   r*   r+   s   @r   	EventLooprc   ^   s     ( (r   rf   c                      R # r   r   r   r   r   callback7BaseSelectorEventLoopTests.test_close.<locals>.callback   s    r   N)r   rD   rG   rH   r   filenorF   r   r   r   _remove_reader	_selectorr<   assertFalse	is_closed
assertTrueassertIsNoneassert_called_withcreate_futurer\   r]   run_foreverrun_until_completerM   rY   )	r   rf   ssockcsockrZ   rD   ffdrh   s	   &        r   
test_close%BaseSelectorEventLoopTests.test_close]   s   	(- 	( dmm,	DII&		  $%!		  $%!3799;>		0		!!#)-4		h,,./				++-.$))--.$))**+$))**+))+&&(&&(((+ 					 II##%,		(=(=>,		(D(DaH	,		(<(<bK,		(<(<bKr   c                6   \         P                  ! 4       V P                  n        V P                  P                  P                  4        R V P                  n        V P                  P                  4        V P                  V P                  P                  4       R # r   )r   r   rG   rZ   rl   r<   rp   r   s   &r   test_close_no_selector1BaseSelectorEventLoopTests.test_close_no_selector   s\    "&))+				!!#"				$))--.r   c                    \         V P                  P                  P                  n        V P                  V P                  P                  4       4       R # r   )BlockingIOErrorrG   r   recvside_effectrp   _read_from_selfr   s   &r   test_read_from_self_tryagain7BaseSelectorEventLoopTests.test_read_from_self_tryagain   s5    ,;		)$))3356r   c                    \         V P                  P                  P                  n        V P                  \         V P                  P                  4       R # r   )OSErrorrG   r   r   r   r\   r   r   s   &r   test_read_from_self_exception8BaseSelectorEventLoopTests.test_read_from_self_exception   s4    ,3		)'499#<#<=r   c                   \         V P                  P                  P                  n        \
        P                  ! 4       ;_uu_ 4        V P                  V P                  P                  4       4       R R R 4       R #   + '       g   i     R # ; ir   )	r   rG   r   sendr   
test_utilsdisable_loggerrp   _write_to_selfr   s   &r   test_write_to_self_tryagain6BaseSelectorEventLoopTests.test_write_to_self_tryagain   sS    ,;		)&&((dii6689 )(((s   *A;;B	c                    \        4       V P                  P                  P                  n        V P                  \         V P                  P                  4       R # r   )r]   rG   r   r   r   r\   r   r   s   &r   test_write_to_self_exception7BaseSelectorEventLoopTests.test_write_to_self_exception   s6    ,8N		),		(@(@Ar   zsocket.getaddrinfoc                   Rp\         P                  \         P                  3 EF  pV P                  V4      ;_uu_ 4        \        P
                  ! VR7      pR Vn        V P                  P                  V P                  P                  WB4      4      pV P                  P                  V4       VP                  V^ ,          V^,          VP                  VP                  VP                  ^ 4       V P                  P                  V4       VP                  P                  R4       RRR4       EK  	  R#   + '       g   i     EK%  ; i)need-resolution.com)typec                      R.# )N)NNNNz	127.0.0.1r   r   )argss   *r   <lambda>ZBaseSelectorEventLoopTests.test_sock_connect_resolve_using_socket_params.<locals>.<lambda>   s    #M"Nr   N)r   i  r   )socketSOCK_STREAM
SOCK_DGRAMsubTestr   mock_nonblocking_socketr   rG   create_tasksock_connectrt   rq   familyr   protoconnect)r   m_gaiaddr	sock_typesockcons   &&    r   -test_sock_connect_resolve_using_socket_paramsHBaseSelectorEventLoopTests.test_sock_connect_resolve_using_socket_params   s    , ,,f.?.?@Ii((!99yI O ! ii++DII,B,B4,NO		,,S1((GT!Wdkk499djj!M 		,,S1//0@A )( A(((s    C'D66Ec                (   / V P                   P                  P                  n        R  pV P                   P	                  ^V4       V P                  V P                   P                  P                  P                  4       V P                   P                  P                  P                  ^ ,          w  r#w  rEV P                  ^V4       V P                  \        P                  V4       V P                  WP                  4       V P                  V4       R# )c                      R # Tr   r   r   r   r   <BaseSelectorEventLoopTests.test_add_reader.<locals>.<lambda>       Tr   N)rG   rl   get_maprF   rM   ro   registercalled	call_argsrR   	selectors
EVENT_READ	_callbackrp   r   cbrx   maskrws   &     r   test_add_reader*BaseSelectorEventLoopTests.test_add_reader   s    35		##0		Q#		++44;;<99..77AA!D&1B--t4[[)!r   c                   \         P                  ! 4       p\         P                  ! 4       p^\        P                  ! ^^\        P                  W34      /V P
                  P                  P                  n        R pV P
                  P                  ^V4       V P                  VP                  P                  4       V P                  V P
                  P                  P                  P                  4       V P                  V P
                  P                  P                  P                  4       V P
                  P                  P                  P                   ^ ,          w  rEw  rgV P#                  ^V4       V P#                  \        P                  \        P$                  ,          V4       V P#                  W6P&                  4       V P#                  W'4       R# )r   c                      R # r   r   r   r   r   r   EBaseSelectorEventLoopTests.test_add_reader_existing.<locals>.<lambda>   r   r   N)r   r   r   SelectorKeyEVENT_WRITErG   rl   r   rF   rM   ro   cancelr   rm   r   modifyr   rR   r   r   r   readerwriterr   rx   r   r   r   s   &       r   test_add_reader_existing3BaseSelectorEventLoopTests.test_add_reader_existing   sA   45y7L7Lq)''&)98; 4<		##0		Q#,,-,,55<<=		++2299:99..55??B&1B..1E1EEtL[[)#r   c                @   \         P                  ! 4       p^\        P                  ! ^^\        P                  RV34      /V P
                  P                  P                  n        R pV P
                  P                  ^V4       V P                  V P
                  P                  P                  P                  4       V P                  V P
                  P                  P                  P                  4       V P
                  P                  P                  P                  ^ ,          w  r4w  rVV P!                  ^V4       V P!                  \        P                  \        P"                  ,          V4       V P!                  W%P$                  4       V P!                  W4       R# )r   Nc                      R # r   r   r   r   r   r   LBaseSelectorEventLoopTests.test_add_reader_existing_writer.<locals>.<lambda>   r   r   )r   r   r   r   r   rG   rl   r   rF   rM   rm   r   r   ro   r   r   rR   r   r   )r   r   r   rx   r   r   r   s   &      r   test_add_reader_existing_writer:BaseSelectorEventLoopTests.test_add_reader_existing_writer   s!   45y7L7Lq)''$89 4:		##0		Q#,,55<<=		++2299:99..55??B&1B..1E1EEtL[[)#r   c                d   ^\         P                  ! ^^\         P                  R4      /V P                  P                  P
                  n        V P                  V P                  P                  ^4      4       V P                  V P                  P                  P                  P                  4       R# r   N)NN)r   r   r   rG   rl   r   rF   rm   rZ   ro   
unregisterr   r   s   &r   test_remove_reader-BaseSelectorEventLoopTests.test_remove_reader   sz    45y7L7Lq)&&86 47		##00034		++66==>r   c                   \         P                  ! 4       p\         P                  ! 4       p^\        P                  ! ^^\        P                  \        P
                  ,          W34      /V P                  P                  P                  n	        V P                  V P                  P                  ^4      4       V P                  V P                  P                  P                  P                  4       V P                  ^\        P
                  RV33V P                  P                  P                   P"                  ^ ,          4       R# r   )r   r   r   r   r   r   rG   rl   r   rF   ro   rZ   rm   r   r   rR   r   r   r   r   r   s   &  r   test_remove_reader_read_write8BaseSelectorEventLoopTests.test_remove_reader_read_write   s    45y7L7Lq)&&)>)>>8 4		##0 	II##A&	( 	,,77>>?	%%f~6II&&003	5r   c                    / V P                   P                  P                  n        V P	                  V P                   P                  ^4      4       R# r   )rG   rl   r   rF   rm   rZ   r   s   &r   test_remove_reader_unknown5BaseSelectorEventLoopTests.test_remove_reader_unknown   :    35		##0II##A&	(r   c                (   / V P                   P                  P                  n        R  pV P                   P	                  ^V4       V P                  V P                   P                  P                  P                  4       V P                   P                  P                  P                  ^ ,          w  r#w  rEV P                  ^V4       V P                  \        P                  V4       V P                  V4       V P                  WP                  4       R# )c                      R # r   r   r   r   r   r   <BaseSelectorEventLoopTests.test_add_writer.<locals>.<lambda>   r   r   N)rG   rl   r   rF   rY   ro   r   r   r   rR   r   r   rp   r   r   s   &     r   test_add_writer*BaseSelectorEventLoopTests.test_add_writer   s    35		##0		Q#		++44;;<99..77AA!D&1B..5![[)r   c                   \         P                  ! 4       p\         P                  ! 4       p^\        P                  ! ^^\        P                  W34      /V P
                  P                  P                  n        R pV P
                  P                  ^V4       V P                  VP                  P                  4       V P                  V P
                  P                  P                  P                  4       V P                  V P
                  P                  P                  P                  4       V P
                  P                  P                  P                   ^ ,          w  rEw  rgV P#                  ^V4       V P#                  \        P$                  \        P                  ,          V4       V P#                  W4       V P#                  W7P&                  4       R# )r   c                      R # r   r   r   r   r   r   EBaseSelectorEventLoopTests.test_add_writer_existing.<locals>.<lambda>  r   r   N)r   r   r   r   r   rG   rl   r   rF   rY   ro   r   r   rm   r   r   r   rR   r   r   r   s   &       r   test_add_writer_existing3BaseSelectorEventLoopTests.test_add_writer_existing  sA   45y7L7Lq)&&(88: 4;		##0		Q#,,-,,55<<=		++2299:99..55??B&1B..1E1EEtL#[[)r   c                d   ^\         P                  ! ^^\         P                  R4      /V P                  P                  P
                  n        V P                  V P                  P                  ^4      4       V P                  V P                  P                  P                  P                  4       R# r   )r   r   r   rG   rl   r   rF   rm   r[   ro   r   r   r   s   &r   test_remove_writer-BaseSelectorEventLoopTests.test_remove_writer  sz    45y7L7Lq)''87 48		##00034		++66==>r   c                   \         P                  ! 4       p\         P                  ! 4       p^\        P                  ! ^^\        P                  \        P
                  ,          W34      /V P                  P                  P                  n	        V P                  V P                  P                  ^4      4       V P                  V P                  P                  P                  P                  4       V P                  ^\        P                  VR33V P                  P                  P                   P"                  ^ ,          4       R# r   )r   r   r   r   r   r   rG   rl   r   rF   ro   r[   rm   r   r   rR   r   r   r   s   &  r   test_remove_writer_read_write8BaseSelectorEventLoopTests.test_remove_writer_read_write  s    45y7L7Lq)&&)>)>>8 4		##0 	II##A&	( 	,,77>>?	$$vtn5II&&003	5r   c                    / V P                   P                  P                  n        V P	                  V P                   P                  ^4      4       R# r   )rG   rl   r   rF   rm   r[   r   s   &r   test_remove_writer_unknown5BaseSelectorEventLoopTests.test_remove_writer_unknown,  r   r   c           	        \         P                  ! 4       pR Vn        \         P                  ! 4       V P                  n        V P                  P                  \        P                  ! ^^\        P                  VR34      \        P                  3.4       V P                  V P                  P                  P                  4       V P                  P                  P                  V4       R# FN)r   r   
_cancelledrG   _add_callback_process_eventsr   r   r   ro   r   rq   r   r   s   & r   test_process_events_read3BaseSelectorEventLoopTests.test_process_events_read1  s    !"&))+				!!##1i**VTN<""$ %	& 			//667		226:r   c           	     v   \         P                  ! 4       pR Vn        \         P                  ! 4       V P                  n        V P                  P                  \        P                  ! ^^\        P                  VR34      \        P                  3.4       V P                  P                  P                  ^4       R# TN)
r   r   	cancelledrG   rk   r   r   r   r   rq   r   s   & r   "test_process_events_read_cancelled=BaseSelectorEventLoopTests.test_process_events_read_cancelled=  s    #'99;		 		!!##1i**VTN<!!# $	% 			  33A6r   c           	     v   \         P                  ! 4       pR Vn        \         P                  ! 4       V P                  n        V P                  P                  \        P                  ! ^^\        P                  RV34      \        P                  3.4       V P                  P                  P                  V4       R# r   )
r   r   r   rG   r   r   r   r   r   rq   r   r   s   & r   test_process_events_write4BaseSelectorEventLoopTests.test_process_events_writeH  s    !"&))+				!!##Aq)*?*?%)6N4##% &	' 			226:r   c           	     v   \         P                  ! 4       pR Vn        \         P                  ! 4       V P                  n        V P                  P                  \        P                  ! ^^\        P                  RV34      \        P                  3.4       V P                  P                  P                  ^4       R# r   )
r   r   r   rG   _remove_writerr   r   r   r   rq   r   s   & r   #test_process_events_write_cancelled>BaseSelectorEventLoopTests.test_process_events_write_cancelledS  s    #'99;		 		!!##Aq)*?*?%)6N4##% &	' 			  33A6r   c                   R EF>  p\         P                  ! 4       p\         P                  ! 4       \         P                  ! 4       3VP                  n        V P	                  V4      ;_uu_ 4        \         P
                  P                  pV! V P                  R4      ;_uu_ 4       pV P                  P                  \         P                  ! 4       W!R7       RRR4       V P                  P                  \        P                  ! ^ 4      4       V P                  VP                  P                  V^,           4       RRR4       EKA  	  R#   + '       g   i     L{; i  + '       g   i     EKj  ; i)r   _accept_connection2backlogN)r   r   )r   r   acceptrF   r   patchobjectrG   _accept_connectionrt   r   sleeprR   rS   )r   r  r   mock_objaccept2_mocks   &    r   test_accept_connection_zero_one:BaseSelectorEventLoopTests.test_accept_connection_zero_one^  s    G99;D(,		TYY['ADKK$g&&::,,dii)>??<II00		T 1 < @ 		,,W]]1-=>  !7!71E '& 
 @? '&&s%   .6E$1EA$EEEE-c                `   \         P                  ! 4       p\         P                  ! 4       \         P                  ! 4       3VP                  n        ^dp\         P                  P
                  pV! V P                  R4      ;_uu_ 4       pV P                  P                  \         P                  ! 4       WR7       RRR4       V P                  P                  \        P                  ! ^ 4      4       V P                  VP                  P                  V^,           4       R#   + '       g   i     Ln; i)d   r  r  N)r   r   r	  rF   r
  r  rG   r  rt   r   r  rR   rS   )r   r   r  r  r  s   &    r   test_accept_connection_multiple:BaseSelectorEventLoopTests.test_accept_connection_multiplej  s    yy{$(IIK#=  ::$$dii!677<II((		T ) 4 8 			$$W]]1%56//1=	 87s   1DD-	c                   a \         P                  ! 4       oV3R  lpVSP                  n        ^dp\         P                  P
                  pV! V P                  R4      ;_uu_ 4       pV P                  P                  \         P                  ! 4       SVR7       RRR4       V P                  P                  \        P                  ! ^ 4      4       V P                  SP                  P                  V^,           4       R#   + '       g   i     Ln; i)c                     < S P                   P                  ^,          ^ 8X  d   \        h\        P                  ! 4       \        P                  ! 4       3# )   )r	  rS   ConnectionAbortedErrorr   r   )r   s   r   mock_sock_acceptgBaseSelectorEventLoopTests.test_accept_connection_skip_connectionabortederror.<locals>.mock_sock_accept~  s9    
 {{%%)Q.,,IIK--r   r  r  N)r   r   r	  r   r
  r  rG   r  rt   r   r  rR   rS   )r   r  r  r  r  r   s   &    @r   2test_accept_connection_skip_connectionabortederrorMBaseSelectorEventLoopTests.test_accept_connection_skip_connectionabortederror{  s    yy{	. #3 ::$$dii!677<II((		T7 ) 4 8
 			$$W]]1%56//1= 87s   %2C==D	)rG   rD   )%r%   r&   r'   r(   rC   rV   r   r
  r_   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r)   r*   __classcell__rJ   r,   s   @@r   r@   r@   9   s     '# 
ZZ-t4	ZZ&-	J . 5	J*LX/7>:
B
 
ZZ$%B &B"
$"$?5(

**"?5(

;	7	;	7
F>"> >r   r@   c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
]P                  ! R	4      R
 4       t]P                  ! R	4      R 4       tR tR tRtVtV ;t# )SelectorTransportTestsi  c                (  < \         SV `  4        V P                  4       V n        \        P
                  ! \        P                  4      V n        \        P                  ! \        P                  4      V n        ^V P                  P                  n        R#    N)rB   rC   new_test_looprG   r   make_test_protocolr   rP   protocolr   r   r   r   rj   rF   rI   s   &r   rC   SelectorTransportTests.setUp  sZ    &&(	"55g6F6FGIIfmm,	()		%r   c                    \        V P                  V P                  V P                  R 4      pV P	                  \
        V4       V# r   )r   rG   r   r'  
addCleanupr>   r   r=   s   & r   create_transport'SelectorTransportTests.create_transport  s5    &tyy$))T]]'+-	3r   c                    V P                  4       pV P                  VP                  V P                  4       V P                  VP                  V P
                  4       V P                  VP                  ^4       R# r#  )r,  assertIs_looprG   r;   r   _sock_fdr   trs   & r   	test_ctor SelectorTransportTests.test_ctor  sN    ""$bhh		*bhh		*bkk1%r   c                    V P                  4       p\        P                  ! 4       Vn        VP	                  4        VP                  P                  R 4       R # r   )r,  r   r   _force_closeabortrq   r2  s   & r   
test_abort!SelectorTransportTests.test_abort  s8    ""$))+


**40r   c                   V P                  4       pVP                  4        V P                  VP                  4       4       V P	                  ^V P
                  P                  ^,          4       V P                  P                  R4       V P	                  VP                  ^4       VP                  4        V P	                  VP                  ^4       V P	                  ^V P
                  P                  ^,          4       R# r   )
r,  r<   ro   
is_closingrR   rG   remove_reader_countr'  connection_lost
_conn_lostr2  s   & r   ry   !SelectorTransportTests.test_close  s    ""$

(DII99!<=%%d+*

*DII99!<=r   c                d   V P                  4       pVP                  P                  R 4       VP                  4        V P	                  V P
                  P                  4       \        P                  ! V P
                  4       V P	                  V P                  P                  P                  4       R#    dataN)r,  _bufferr6   r<   rm   rG   readersr   run_brieflyr'  r>  r   r2  s   & r   test_close_write_buffer.SelectorTransportTests.test_close_write_buffer  ss    ""$


'"

**+tyy)66==>r   c                   V P                  4       pVP                  P                  R 4       V P                  P	                  ^\
        P                  4       V P                  P                  ^\
        P                  4       VP                  R4       V P                  VP                  4       4       V P                  VP                  \        4       4       V P                  V P                  P                  4       V P                  V P                  P                  4       VP                  R4       V P                  V P                  P                  4       V P                  ^V P                  P                   ^,          4       R#    1N)r,  rD  r6   rG   _add_readerr   sentinel_add_writerr7  ro   r<  rR   r9   rm   rE  writersr=  r2  s   & r   test_force_close'SelectorTransportTests.test_force_close  s    ""$


$		a/		a/
(^%56**+**+ 	**+DII99!<=r   zasyncio.log.logger.errorc                    \        4       pV P                  4       p\        P                  ! 4       Vn        VP                  V4       VP                  4        VP                  P                  V4       R # r   )r   r,  r   r   r7  _fatal_errorassert_not_calledrq   )r   m_excexcr3  s   &&  r   test_fatal_error'SelectorTransportTests.test_fatal_error  sN    i""$))+
!
**3/r   c                B    ! R  R\         4      pV! 4       pV P                  4       p\        P                  ! 4       Vn        VP                  V4       VP                  \        P                  ! R4      V\        \        3R7       VP                  P                  V4       R# )c                       ] tR tRtRtR# )ISelectorTransportTests.test_fatal_error_custom_exception.<locals>.MyErrori  r   Nr%   r&   r'   r(   r)   r   r   r   MyErrorr[        r   r]  1Fatal error on transport
protocol:.*
transport:.*exc_infoN)
	Exceptionr,  r   r   r7  rS  rq   r   MockPatternMOCK_ANY)r   rU  r]  rV  r3  s   &&   r   !test_fatal_error_custom_exception8SelectorTransportTests.test_fatal_error_custom_exception  s    	i 	i""$))+
  ""EGx2 	! 	4
 	**3/r   c                   \        4       pV P                  4       pV P                  VP                  4       V P                  VP                  4       VP                  V4       V P                  P                  P                  V4       V P                  P                  P                  4        V P                  VP                  4       V P                  VP                  4       V P                  VP                  4       R # r   )r   r,  assertIsNotNone	_protocolr0  _call_connection_lostr'  r>  rq   r   r<   rp   r;   )r   rV  r3  s   &  r   test_connection_lost+SelectorTransportTests.test_connection_lost  s    i""$R\\*RXX&
  %%%88=		**,"((#",,'"((#r   c                   V P                  4       pVP                  P                  R 4       VP                  ^\        P
                  4       V P                  V P                  P                  4       VP                  R4       V P                  VP                  4       4       V P                  V P                  P                  4       VP                  ^\        P
                  4       V P                  V P                  P                  4       R# rJ  )r,  rD  r6   rL  r   rM  ro   rG   rE  r7  r<  rm   r2  s   & r   test__add_reader'SelectorTransportTests.test__add_reader  s    ""$


$
q$--(		))*
(**+ 	q$--(**+r   rG   r'  r   )r%   r&   r'   r(   rC   r,  r4  r9  ry   rG  rP  r   r
  rW  re  rk  rn  r)   r*   r  r  s   @@r   r!  r!    ss     *&1>?>" 
ZZ*+0 ,0 
ZZ*+0 ,0$, ,r   r!  c                   ,  a a ] tR tRt oV 3R ltR:R ltR tR tR tR t	R t
R	 tR
 tR tR t]P                   ! R4      R 4       t]P                   ! R4      R 4       t]P                   ! R4      R 4       t]P                   ! R4      R 4       tR tR tR tR tR tR tR tR tR tR tR t] PB                  ! ]"PF                  R4      R 4       t$] PB                  ! ]"PF                  R4      R 4       t%R  t&R! t'R" t(] PB                  ! ]"PF                  R4      R# 4       t)] PB                  ! ]"PF                  R4      R$ 4       t*] PB                  ! ]"PF                  R4      R% 4       t+] PB                  ! ]"PF                  R4      R& 4       t,]P                   ! R'4      R( 4       t-R) t.R* t/R+ t0R, t1] Pd                  ! ]3Ph                  Pj                  R-4      R. 4       t6R/ t7R0 t8R1 t9R2 t:R3 t;R4 t<R5 t=]P                   ! R64      R7 4       t>R8 t?R9t@VtAV ;tB# );SelectorSocketTransportTestsi  c                6  < \         SV `  4        V P                  4       V n        \        P
                  ! \        P                  4      V n        \        P                  ! \        P                  4      V n        ^;V n        V P                  P                  n        R# r#  )rB   rC   r%  rG   r   r&  r   rP   r'  r   r   r   r   sock_fdrj   rF   rI   s   &r   rC   "SelectorSocketTransportTests.setUp  sa    &&(	"55g6F6FGIIfmm,	788tyy''4r   c                    \        V P                  V P                  V P                  VR 7      pV'       d   VP                  Vn        MVP                  Vn        V P                  \        V4       V# waiter)	r   rG   r   r'  _write_sendmsg_write_ready_write_sendr*  r>   )r   ry  sendmsgr=   s   &&& r   socket_transport-SelectorSocketTransportTests.socket_transport  sU    ,TYY		-1]]6K	%.%=%=I"%.%:%:I"3r   c                j   V P                   P                  4       pV P                  VR 7      pV P                   P                  V4       V P                   P	                  ^VP
                  4       \        P                  ! V P                   4       V P                  P                  P                  V4       R# rx  NrG   rr   r~  rt   assert_reader_read_readyr   rF  r'  connection_maderq   r   ry  r3  s   &  r   r4  &SelectorSocketTransportTests.test_ctor$  {    ((*""&"1		$$V,		2>>2tyy)%%88<r   c                    V P                   P                  4       pV P                  VR 7       V P                   P                  V4       V P	                  VP                  4       4       R# r  )rG   rr   r~  rt   rp   result)r   ry  s   & r   test_ctor_with_waiter2SelectorSocketTransportTests.test_ctor_with_waiter-  sK    ((*V,		$$V,&--/*r   c                   V P                  4       p\        P                  ! V P                  4       V P	                  VP
                  4       V P                  VP                  4       4       V P                  P                  ^VP                  4       VP                  4        VP                  4        V P                  VP
                  4       V P	                  VP                  4       4       V P                  P                  ^4       VP                  4        VP                  4        V P	                  VP
                  4       V P                  VP                  4       4       V P                  P                  ^VP                  4       VP                  4        V P	                  VP                  4       4       V P                  P                  ^4       R# r#  )r~  r   rF  rG   rm   _pausedro   
is_readingr  r  pause_readingassert_no_readerresume_readingr<   r2  s   & r   test_pause_resume_reading6SelectorSocketTransportTests.test_pause_resume_reading4  s/   ""$tyy)$(		2>>2



#)		""1%

$(		2>>2

)		""1%r   c                X  a V P                  4       oV3R  lV P                  P                  n        \        P
                  ! V P                  4       V P                  SP                  4       4       V P                  P                  ^4       SP                  4        V P                  SP                  4       4       V P                  P                  ^SP                  4       SP                  4        V P                  SP                  4       4       V P                  P                  ^4       R# )c                 $   < SP                  4       # r   )r  )_r3  s   &r   r   QSelectorSocketTransportTests.test_pause_reading_connection_made.<locals>.<lambda>M  s    b>N>N>Pr   N)r~  r'  r  r   r   rF  rG   rm   r  r  r  ro   r  r  r<   r2  s   &@r   "test_pause_reading_connection_made?SelectorSocketTransportTests.test_pause_reading_connection_madeK  s    ""$4P%%1tyy))		""1%
(		2>>2

)		""1%r   c                   V P                  4       p\        P                  ! 4       Vn        \        P                  ! 4       Vn        \        P                  ! 4       V P
                  n        \        4       V P                  P                  n
        R V P                  P                  n        VP                  4        V P                  P                  P                  4        V P!                  VP                  P"                  4       R# r   N)r~  r   r   r<   rS  rG   call_exception_handlerLookupErrorr'  eof_receivedr   r   r   rF   r  rq   ro   r   r+  s   & r   test_read_eof_received_error9SelectorSocketTransportTests.test_read_eof_received_error[  s    ))+	))+	!%	+/99;		(1<"".&)		#""557	..556r   c                   V P                  4       p\        P                  ! 4       Vn        \        P                  ! 4       V P                  n        \        4       V P                  P                  n	        R V P                  P                  n        VP                  4        V P                  VP                  P                  4       V P                  V P                  P                  P                  4       R# rB  )r~  r   r   rS  rG   r  r  r'  data_receivedr   r   r   rF   r  ro   r   r+  s   & r   test_data_received_error5SelectorSocketTransportTests.test_data_received_errorj  s    ))+	!%	+/99;		(2=-##/&-		#	..55633::;r   c                    V P                  4       pR V P                  P                  n        VP	                  4        V P
                  P                  P                  R 4       R# rB  )r~  r   r   rF   r  r'  r  rq   r+  s   & r   test_read_ready,SelectorSocketTransportTests.test_read_readyw  sD    ))+	&-		###66w?r   c                ,   V P                  4       p\        P                  ! 4       Vn        R V P                  P
                  n        VP                  4        V P                  P                  P                  4        VP                  P                  4        R# r  )r~  r   r   r<   r   r   rF   r  r'  r  rq   r+  s   & r   test_read_ready_eof0SelectorSocketTransportTests.test_read_ready_eof  s_    ))+	))+	&)		#""557**,r   c                x   V P                  4       p\        P                  ! 4       Vn        R V P                  P
                  n        RV P                  P                  n        VP                  4        V P                  P                  P                  4        V P                  VP                  P                  4       R# )r   TN)r~  r   r   r<   r   r   rF   r'  r  r  rq   rm   r   r+  s   & r   test_read_ready_eof_keep_open:SelectorSocketTransportTests.test_read_ready_eof_keep_open  sy    ))+	))+	&)		#26""/""557//0r   logging.exceptionc                   \         V P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  4        V P                  VP                  P                  4       R # r   )r   r   r   r   r~  r   r   rS  r  rm   r   r   rU  r=   s   && r   test_read_ready_tryagain5SelectorSocketTransportTests.test_read_ready_tryagain  sT    %4		"))+	!%	//667r   c                   \         V P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  4        V P                  VP                  P                  4       R # r   )InterruptedErrorr   r   r   r~  r   r   rS  r  rm   r   r  s   && r   $test_read_ready_tryagain_interruptedASelectorSocketTransportTests.test_read_ready_tryagain_interrupted  sT    %5		"))+	!%	//667r   c                j   \        4       ;q P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        \        P                  ! 4       ;_uu_ 4        VP                  4        R R R 4       VP                  P                  V4       R #   + '       g   i     L-; ir   )ConnectionResetErrorr   r   r   r~  r   r   r7  r   r   r  rq   r   rU  errr=   s   &&  r   test_read_ready_conn_reset7SelectorSocketTransportTests.test_read_ready_conn_reset  sq    +?+AAiinn())+	!%	&&((!!# )11#6 )(   ,B""B2	c                    \        4       ;q P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  4        VP                  P                  VR 4       R# z$Fatal read error on socket transportN)
r   r   r   r   r~  r   r   rS  r  rq   r  s   &&  r   test_read_ready_err0SelectorSocketTransportTests.test_read_ready_err  sZ    +294iinn())+	!%	11#&#I	Kr   c                    R p\        V4      V P                  P                  n        V P	                  4       pVP                  V4       V P                  P                  P                  V4       R# rB  )lenr   r   rF   r~  writerq   r   datar=   s   &  r   
test_write'SelectorSocketTransportTests.test_write  sK    &)$i		#))+			))$/r   c                &   \        R 4      p\        V4      V P                  P                  n        V P                  4       pVP                  V4       V P                  P                  P                  V4       V P                  V\        R 4      4       R# rB  )		bytearrayr  r   r   rF   r~  r  rq   rR   r  s   &  r   test_write_bytearray1SelectorSocketTransportTests.test_write_bytearray  se    !&)$i		#))+			))$/y12r   c                    \        R 4      p\        V4      V P                  P                  n        V P                  4       pVP                  V4       V P                  P                  P                  V4       R# rB  )r/   r  r   r   rF   r~  r  rq   r  s   &  r   test_write_memoryview2SelectorSocketTransportTests.test_write_memoryview  sP    '"&)$i		#))+			))$/r   c                :   V P                  4       pVP                  P                  \        R 4      4       VP	                  R4       V P                  V P                  P                  P                  4       V P                  \        R .4      VP                  4       R# )rC  r   N)r~  rD  appendr/   r  rm   r   r   r   rR   r9   r+  s   & r   test_write_no_data/SelectorSocketTransportTests.test_write_no_data  sn    ))+	  G!45../	2I4E4EFr   c                *   V P                  4       pVP                  P                  R 4       VP                  R4       V P	                  V P
                  P                  P                  4       V P                  \        R R.4      VP                  4       R#    data1   data2N)
r~  rD  r  r  rm   r   r   r   rR   r9   r+  s   & r   test_write_buffer.SelectorSocketTransportTests.test_write_buffer  so    ))+	  *!../8(<="**	,r   c                   R p^V P                   P                  n        V P                  4       pVP	                  V4       V P
                  P                  ^VP                  4       V P                  \        R.4      VP                  4       R# rC     taN)r   r   rF   r~  r  rG   assert_writerr{  rR   r9   rD  r  s   &  r   test_write_partial/SelectorSocketTransportTests.test_write_partial  sh    &'		#))+			9#9#9:0)2C2CDr   c                b   \        R 4      p^V P                  P                  n        V P	                  4       pVP                  V4       V P                  P                  ^VP                  4       V P                  \        R.4      VP                  4       V P                  V\        R 4      4       R# r  )r  r   r   rF   r~  r  rG   r  r{  rR   r9   rD  r  s   &  r   test_write_partial_bytearray9SelectorSocketTransportTests.test_write_partial_bytearray  s    !&'		#))+			9#9#9:0)2C2CDy12r   c                ,   \        R 4      p^V P                  P                  n        V P	                  4       pVP                  V4       V P                  P                  ^VP                  4       V P                  \        R.4      VP                  4       R# r  )r/   r   r   rF   r~  r  rG   r  r{  rR   r9   rD  r  s   &  r   test_write_partial_memoryview:SelectorSocketTransportTests.test_write_partial_memoryview  sm    '"&'		#))+			9#9#9:0)2C2CDr   c                P   R p^ V P                   P                  n        ^V P                   P                  n        V P	                  4       pVP                  V4       V P                  P                  ^VP                  4       V P                  \        R .4      VP                  4       R# rB  )r   r   rF   rj   r~  r  rG   r  r{  rR   r9   rD  r  s   &  r   test_write_partial_none4SelectorSocketTransportTests.test_write_partial_none  sz    &'		#()		%))+			9#9#9:	2I4E4EFr   c                "   \         V P                  P                  n        R pV P	                  4       pVP                  V4       V P                  P                  ^VP                  4       V P                  \        R .4      VP                  4       R# rB  )r   r   r   r   r~  r  rG   r  r{  rR   r9   rD  r  s   &  r   test_write_tryagain0SelectorSocketTransportTests.test_write_tryagain  sh    %4		"))+			9#9#9:	2I4E4EFr   c                   \         P                  ! 4       V P                  n        ^ V P                  P                  n        V P                  RR7      pVP                  P                  \        R4      4       VP                  R4       V P                  V P                  P                  P                  4       V P                  \        R.4      VP                  4       R# )r   Tr}  rC  r   N)r   r   r   r}  rF   r~  rD  r  r/   r  rm   r   rR   r9   r+  s   & r   test_write_sendmsg_no_data7SelectorSocketTransportTests.test_write_sendmsg_no_data  s     IIK		)*		&))$)7	  G!45**112	2I4E4EFr   z
no sendmsgc                   \        R 4      p\        P                  ! 4       V P                  n        \        V4      V P                  P                  n        V P                  RR7      pVP                  V.4       V P                  V P                  P                  P                  4       V P                  V P                  P                  4       R# rC  Tr  N)r/   r   r   r   r}  r  rF   r~  
writelinesro   r   rm   rG   rO  r  s   &  r   test_writelines_sendmsg_full9SelectorSocketTransportTests.test_writelines_sendmsg_full#  s    '" IIK		),T		&))$)7	dV$		))001**+r   c                   \        R 4      p\        P                  ! 4       V P                  n        ^V P                  P                  n        V P                  RR7      pVP                  V.4       V P                  V P                  P                  P                  4       V P                  V P                  P                  4       R# r  )r/   r   r   r   r}  rF   r~  r  ro   r   rG   rO  r  s   &  r   test_writelines_sendmsg_partial<SelectorSocketTransportTests.test_writelines_sendmsg_partial.  s    '" IIK		)*		&))$)7	dV$		))001		))*r   c                   \        R 4      p\        V4      V P                  P                  n        ^V P                  P                  P
                  n        V P                  4       pVP                  V.4       V P                  V P                  P                  P                  4       V P                  V P                  P                  4       R# rB  )r/   r  r   r   rF   rj   r~  r  ro   r   rm   rG   rO  r  s   &  r   test_writelines_send_full6SelectorSocketTransportTests.test_writelines_send_full9  s    '"&)$i		#-.		*))+	dV$		--.**+r   c                   \        R 4      p^V P                  P                  n        ^V P                  P                  P                  n        V P                  4       pVP                  V.4       V P                  V P                  P                  P                  4       V P                  V P                  P                  4       R# rB  )r/   r   r   rF   rj   r~  r  ro   r   rG   rO  r  s   &  r   test_writelines_send_partial9SelectorSocketTransportTests.test_writelines_send_partialC  s    '"&'		#-.		*))+	dV$		--.		))*r   c                   \        R 4      p^V P                  P                  n        ^V P                  P                  P                  n        V P                  4       p^Vn        VP                  V.4       V P                  V P                  P                  P                  4       V P                  V P                  P                  P                  4       V P                  V P                  P                  4       R# rB  )r/   r   r   rF   rj   r~  _high_waterr  ro   r'  pause_writingr   rG   rO  r  s   &  r   test_writelines_pauses_protocol<SelectorSocketTransportTests.test_writelines_pauses_protocolM  s    '"&'		#-.		*))+	 !	dV$33::;		--.		))*r   c                   \        R 4      p\        P                  ! 4       V P                  n        \        V4      V P                  P                  n        V P                  RR7      pVP                  P                  V4       V P                  P                  ^VP                  4       VP                  4        V P                  V P                  P                  P                  4       V P                  V P                  P                   4       R# r  )r/   r   r   r   r}  r  rF   r~  rD  r  rG   rN  r{  ro   r   rm   rO  r  s   &  r   test_write_sendmsg_full4SelectorSocketTransportTests.test_write_sendmsg_fullY  s    '" IIK		),T		&))$)7	  &		a!7!78 		))001**+r   c                T   \        R 4      p\        P                  ! 4       V P                  n        ^V P                  P                  n        V P                  RR7      pVP                  P                  V4       V P                  P                  ^VP                  4       VP                  4        V P                  V P                  P                  P                  4       V P                  V P                  P                  4       V P                  \!        R.4      VP                  4       R# )rC  Tr  r  N)r/   r   r   r   r}  rF   r~  rD  r  rG   rN  r{  ro   r   rO  rR   r9   r  s   &  r   test_write_sendmsg_partial7SelectorSocketTransportTests.test_write_sendmsg_partialf  s     '" IIK		)*		&))$)7	  &		a!7!78 		))001		))*0)2C2CDr   c                l   \        R 4      \        R4      .p\        P                  ! 4       V P                  n        ^V P                  P                  n        V P                  RR7      pVP                  P                  V4       V P                  P                  ^VP                  4       VP                  4        V P                  V P                  P                  P                  4       V P                  V P                  P                  4       V P                  \!        RR.4      VP                  4       R# )r  r  Tr  s   ta1N)r/   r   r   r   r}  rF   r~  rD  r6   rG   rN  r{  ro   r   rO  rR   r9   r  s   &  r   test_write_sendmsg_half_buffer;SelectorSocketTransportTests.test_write_sendmsg_half_bufferv  s    8$j&:; IIK		)*		&))$)7	  &		a!7!78 		))001		))*(:;Y=N=NOr   c                   \        R 4      p\        P                  ! 4       V P                  n        \        4       ;q P                  P                  n        V P                  RR7      p\        P                  ! 4       Vn        VP                  P                  V4       VP                  4        V P                  V P                  P                  P                  4       V P                  V P                  P                   4       V P#                  \%        . 4      VP                  4       VP                  P'                  VR4       R# )rC  Tr  %Fatal write error on socket transportN)r/   r   r   r   r}  r   r   r~  rS  rD  r6   r{  ro   r   rm   rG   rO  rR   r9   rq   )r   r  r  r=   s   &   r   test_write_sendmsg_OSError7SelectorSocketTransportTests.test_write_sendmsg_OSError  s    '" IIK		.5i7ii+))$)7	!%	  & 		))001**++Y->->?11#&#J	Lr   asyncio.selector_events.loggerc                   \        4       ;q P                  P                  n        R pV P	                  4       p\
        P                  ! 4       Vn        VP                  V4       VP                  P                  VR4       ^Vn
        V P                  P                  4        VP                  V4       V P                  V P                  P                  P                  4       V P                  VP                  ^4       VP                  V4       VP                  V4       VP                  V4       VP                  V4       VP                  P                  R4       R# )rC  r  socket.send() raised exception.N)r   r   r   r   r~  r   r   rS  r  rq   r?  
reset_mockrm   r   rR   warning)r   m_logr  r  r=   s   &&   r   test_write_exception1SelectorSocketTransportTests.test_write_exception  s    +294iinn())+	!%	11#&#J	L  !			../--q1(()JKr   c                h    V P                  4       pV P                  \        VP                  R 4       R# )strN)r~  r\   	TypeErrorr  r+  s   & r   test_write_str+SelectorSocketTransportTests.test_write_str  s&    ))+	)Y__e<r   c                    V P                  4       pVP                  4        V P                  VP                  ^4       VP	                  R4       V P                  VP                  ^4       R# )r   rC  N)r~  r<   rR   r?  r  r+  s   & r   test_write_closing/SelectorSocketTransportTests.test_write_closing  sR    ))+	--q1 --q1r   c                   R p\        V4      V P                  P                  n        V P	                  4       pVP
                  P                  V4       V P                  P                  ^VP                  4       VP                  4        V P                  V P                  P                  P                  4       V P                  V P                  P                  4       R# rB  )r  r   r   rF   r~  rD  r  rG   rN  r{  ro   r   rm   rO  r  s   &  r   test_write_ready-SelectorSocketTransportTests.test_write_ready  s    &)$i		#))+	  &		a!7!78 		--.**+r   c                n   \        R 4      p\        V4      V P                  P                  n        V P                  4       pRVn        VP                  P                  V4       V P                  P                  ^VP                  4       VP                  4        V P                  V P                  P                  P                  4       V P                  V P                  P                  4       V P                  P                   P#                  4        V P$                  P&                  P#                  R4       R# )rC  TN)r/   r  r   r   rF   r~  _closingrD  r  rG   rN  r{  ro   r   rm   rO  r<   rq   r'  r>  r  s   &  r   test_write_ready_closing5SelectorSocketTransportTests.test_write_ready_closing  s    '"&)$i		#))+	!	  &		a!7!78 		--.**+		**,%%88>r   z)Assertions are disabled in optimized modec                f    V P                  4       pV P                  \        VP                  4       R # r   )r~  r\   AssertionErrorr{  r+  s   & r   test_write_ready_no_data5SelectorSocketTransportTests.test_write_ready_no_data  s&    ))+	.)*@*@Ar   c                   \        R 4      p^V P                  P                  n        V P	                  4       pVP
                  P                  V4       V P                  P                  ^VP                  4       VP                  4        V P                  P                  ^VP                  4       V P                  \        R.4      VP
                  4       R# r  )r/   r   r   rF   r~  rD  r  rG   rN  r{  r  rR   r9   r  s   &  r   test_write_ready_partial5SelectorSocketTransportTests.test_write_ready_partial  s    '"&'		#))+	  &		a!7!78 		9#9#9:0)2C2CDr   c                   R p^ V P                   P                  n        V P                  4       pVP                  P                  V4       V P                  P                  ^VP                  4       VP                  4        V P                  P                  ^VP                  4       V P                  \        R .4      VP                  4       R# rB  )r   r   rF   r~  rD  r  rG   rN  r{  r  rR   r9   r  s   &  r   test_write_ready_partial_none:SelectorSocketTransportTests.test_write_ready_partial_none  s    &'		#))+	  &		a!7!78 		9#9#9:	2I4E4EFr   c                x   \         V P                  P                  n        V P	                  4       p\        R R.4      pW!n        V P                  P                  ^VP                  4       VP                  4        V P                  P                  ^VP                  4       V P                  W!P                  4       R# r  )r   r   r   r   r~  r9   rD  rG   rN  r{  r  rR   )r   r=   r8   s   &  r   test_write_ready_tryagain6SelectorSocketTransportTests.test_write_ready_tryagain  s    %4		"))+	8 45"		a!7!78 		9#9#9:!2!23r   c                0   \        4       ;qP                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  P                  R 4       VP                  4        VP                  P                  VR4       R# )rC  r  N)r   r   r   r   r~  r   r   rS  rD  r6   r{  rq   r   r  r=   s   &  r   test_write_ready_exception7SelectorSocketTransportTests.test_write_ready_exception  sn    +294iinn())+	!%	  ) 11#&#J	Lr   c                   V P                  4       pV P                  VP                  4       4       VP                  4        V P                  P
                  P                  \        P                  4       VP                  4        V P                  V P                  P
                  P                  ^4       VP                  4        R# r   )r~  ro   can_write_eof	write_eofr   shutdownrq   r   SHUT_WRrR   rS   r<   r2  s   & r   test_write_eof+SelectorSocketTransportTests.test_write_eof  s|    ""$((*+
		--fnn=
++66:

r   c                   V P                  4       p\        V P                  P                  n        VP                  R 4       VP                  4        V P                  VP                  \        R .4      4       V P                  VP                  4       V P                  V P                  P                  P                  4       R V P                  P                  n        VP                  4        V P                  V P                  P                  P                  4       V P                  P                  P!                  \"        P$                  4       VP'                  4        R# )rC  c                     ^# )   r   )r  s   &r   r   DSelectorSocketTransportTests.test_write_eof_buffer.<locals>.<lambda>  s    qr   N)r~  r   r   r   r   r  r;  rR   rD  r9   ro   _eofrm   r<  r   r{  rq   r   r=  r<   r2  s   & r   test_write_eof_buffer2SelectorSocketTransportTests.test_write_eof_buffer  s    ""$%4		"

^WI%>? ++223%0		"
		--.		--fnn=

r   c                    V P                  4       pVP                  4        V P                  P                  \        P
                  ! ^ 4      4       VP                  4        R# r   N)r~  r<   rG   rt   r   r  r;  r2  s   & r   test_write_eof_after_close7SelectorSocketTransportTests.test_write_eof_after_close  s=    ""$

		$$W]]1%56
r   zasyncio.base_events.loggerc                    \         P                  ! 4       ;q P                  n        V P	                  4       pVP                  4        VP                  V P                  4       R # r   )r   r   rG   r  r~  r<   rq   rt  )r   r  r[   r=   s   &&  r   "test_transport_close_remove_writer?SelectorSocketTransportTests.test_transport_close_remove_writer"  sA    3799;>		0))+	((6r   c                  a a \        R 4      p^S P                  P                  n        ^S P                  P                  P                  n        V V3R lpVS P
                  P                  n        S P                  4       o^Sn	        SP                  V4       S P                  SP                  4       S P                  S P                  P                  P                  4       S P                  P                  ^SP                   4       SP#                  4        S P%                  S P
                  P&                  P                  4       S P                  P(                  ^,          P+                  4        S P-                  SP/                  4       ^4       S P                  P(                  ^,          P+                  4        S P-                  SP/                  4       ^ 4       S P                  S P
                  P&                  P                  4       R# )rC  c                  `   < SP                  R 4       RS P                  P                  n        R# rB  )r  r'  resume_writingr   r+  s   r   _resume_writingSSelectorSocketTransportTests.test_write_buffer_after_close.<locals>._resume_writing8  s!    OOG$7;DMM((4r   N)r/   r   r   rF   rj   r'  rP  r   r~  r   r  ro   _protocol_pausedr   rG   r  r{  r<   rm   r>  rO  _runrR   get_write_buffer_size)r   r  rQ  r=   s   f  @r   test_write_buffer_after_close:SelectorSocketTransportTests.test_write_buffer_after_close*  sg    '"&'		#-.		*	< 4C$$0))+	 !		223		--.		9#9#9: 	66==>		!!!# 	88:A>		!!!#88:A>55<<=r   )rG   r'  r   rt  )NF)Cr%   r&   r'   r(   rC   r~  r4  r  r  r  r  r  r  r  r  r   r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  unittest
skipUnlessr   _HAS_SENDMSGr  r  r  r  r  r  r  r  r  r  r  r  r"  r&  skipIfsysflagsoptimizer*  r-  r0  r3  r7  r>  rE  rI  rL  rV  r)   r*   r  r  s   @@r   rr  rr    s    9=+&.& 7<@-	1 
ZZ#$8 %8 
ZZ#$8 %8 
ZZ#$7 %7 
ZZ#$	K %	K030G,E	3E	GGG 55|D, E, 55|D+ E+,+
+ 55|D
, E
, 55|DE EE 55|DP EP 55|DL EL" 
ZZ01L 2L,=2	,? __SYY'')TUB VB
	E	G
4	L 
ZZ,-7 .7)> )>r   rr  c                   2  a a ] tR tRt oV 3R ltRR ltR tR tR tR t	R t
R	 tR
 tR tR t]P                   ! R4      R 4       t]P                   ! R4      R 4       t]P                   ! R4      R 4       t]P                   ! R4      R 4       tRtVtV ;t# ),SelectorSocketTransportBufferedProtocolTestsiU  c                  <a  \         SS `  4        S P                  4       S n        \        P
                  ! \        P                  4      S n        \        ^4      S n
        V 3R lS P                  P                  n        \        P                  ! \        P                  4      S n        ^;S n        S P                   P$                  n        R# )r   c                    < SP                   # r   )buf)hintr   s   &r   r   DSelectorSocketTransportBufferedProtocolTests.setUp.<locals>.<lambda>]  s	    DHHr   N)rB   rC   r%  rG   r   r&  r   BufferedProtocolr'  r  rc  
get_bufferr   r   r   r   r   rt  rj   rF   rI   s   fr   rC   2SelectorSocketTransportBufferedProtocolTests.setUpW  s~    &&(	"55g6N6NOQ</D  ,IIfmm,	788tyy''4r   c                    \        V P                  V P                  V P                  VR 7      pV P	                  \
        V4       V# rw  )r   rG   r   r'  r*  r>   )r   ry  r=   s   && r   r~  =SelectorSocketTransportBufferedProtocolTests.socket_transportb  s6    ,TYY		-1]]6K	3r   c                j   V P                   P                  4       pV P                  VR 7      pV P                   P                  V4       V P                   P	                  ^VP
                  4       \        P                  ! V P                   4       V P                  P                  P                  V4       R# r  r  r  s   &  r   r4  6SelectorSocketTransportBufferedProtocolTests.test_ctorh  r  r   c                   V P                  4       p\        P                  ! 4       Vn        \        P                  ! 4       V P                  n        \        4       V P                  P                  n	        VP                  4        V P                  VP                  P                  4       V P                  V P                  P                  P                  4       V P                  V P                  P                  P                  4       R # r   )r~  r   r   rS  rG   r  r  r'  rg  r   r  ro   r   rm   buffer_updatedr+  s   & r   test_get_buffer_errorBSelectorSocketTransportBufferedProtocolTests.test_get_buffer_errorq  s    ))+	!%	+/99;		(/:}  ,	..5560077855<<=r   c                    V P                  4       p\        P                  ! 4       Vn        \        P                  ! 4       V P                  n        R  V P                  P                  n        VP                  4        V P                  VP                  P                  4       V P                  V P                  P                  P                  4       V P                  V P                  P                  P                  4       R# )c                     \        ^ 4      # )r   )r  )rd  s   &r   r   XSelectorSocketTransportBufferedProtocolTests.test_get_buffer_zerosized.<locals>.<lambda>  s    IaLr   N)r~  r   r   rS  rG   r  r'  rg  r   r  ro   r   rm   rn  r+  s   & r   test_get_buffer_zerosizedFSelectorSocketTransportBufferedProtocolTests.test_get_buffer_zerosized~  s    ))+	!%	+/99;		(/H  ,	..5560077855<<=r   c                  a \         P                  ! \        P                  4      V n        V P                  4       pR V P                  P                  n        VP                  4        V P                  P                  P                  R 4       \         P                  ! \        P                  4      p\        ^4      oV3R lVP                  n        VP!                  V4       ^
V P                  P"                  n        VP                  4        VP                  P                  R4       VP$                  P                  ^
4       R# )rC  c                    < S# r   r   )rd  rc  s   &r   r   USelectorSocketTransportBufferedProtocolTests.test_proto_type_switch.<locals>.<lambda>  s    r   N)r   r&  r   rP   r'  r~  r   r   rF   r  r  rq   rf  r  rg  r   set_protocol	recv_intorn  )r   r=   	buf_protorc  s   &  @r   test_proto_type_switchCSelectorSocketTransportBufferedProtocolTests.test_proto_type_switch  s    "55g6F6FG))+	&-		###66w? 11'2J2JK	l+;	(y)+-		(//3  33B7r   c                D   V P                  4       p\        P                  ! 4       Vn        \        P                  ! 4       V P                  n        \        4       V P                  P                  n	        ^
V P                  P                  n        VP                  4        V P                  VP                  P                  4       V P                  V P                  P                   P                  4       V P                  V P                  P                  P                  4       R# )
   N)r~  r   r   rS  rG   r  r  r'  rn  r   r   r{  rF   r  ro   r   rg  r+  s   & r   test_buffer_updated_errorFSelectorSocketTransportBufferedProtocolTests.test_buffer_updated_error  s    ))+	!%	+/99;		(3>=$$0+-		(	..5560077844;;<r   c                   V P                  4       p\        P                  ! 4       Vn        \        P                  ! 4       Vn        \        P                  ! 4       V P
                  n        \        4       V P                  P                  n
        ^ V P                  P                  n        VP                  4        V P                  P                  P                  4        V P!                  VP                  P"                  4       R# rH  )r~  r   r   r<   rS  rG   r  r  r'  r  r   r   r{  rF   r  rq   ro   r   r+  s   & r   r  ISelectorSocketTransportBufferedProtocolTests.test_read_eof_received_error  s    ))+	))+	!%	+/99;		(1<"".+,		(""557	..556r   c                   V P                  4       p^
V P                  P                  n        VP	                  4        V P
                  P                  P                  R4       V P
                  P                  P                  ^
4       R# )r  Nry  )	r~  r   r{  rF   r  r'  rg  rq   rn  r+  s   & r   r  <SelectorSocketTransportBufferedProtocolTests.test_read_ready  s^    ))+	+-		(  33B7$$77;r   c                ,   V P                  4       p\        P                  ! 4       Vn        ^ V P                  P
                  n        VP                  4        V P                  P                  P                  4        VP                  P                  4        R# rH  )r~  r   r   r<   r   r{  rF   r  r'  r  rq   r+  s   & r   r  @SelectorSocketTransportBufferedProtocolTests.test_read_ready_eof  sa    ))+	))+	+,		(""557**,r   c                x   V P                  4       p\        P                  ! 4       Vn        ^ V P                  P
                  n        RV P                  P                  n        VP                  4        V P                  P                  P                  4        V P                  VP                  P                  4       R# )r   TN)r~  r   r   r<   r   r{  rF   r'  r  r  rq   rm   r   r+  s   & r   r  JSelectorSocketTransportBufferedProtocolTests.test_read_ready_eof_keep_open  s{    ))+	))+	+,		(26""/""557//0r   r  c                   \         V P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  4        V P                  VP                  P                  4       R # r   )r   r   r{  r   r~  r   r   rS  r  rm   r   r  s   && r   r  ESelectorSocketTransportBufferedProtocolTests.test_read_ready_tryagain  sV    *9		'))+	!%	//667r   c                   \         V P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  4        V P                  VP                  P                  4       R # r   )r  r   r{  r   r~  r   r   rS  r  rm   r   r  s   && r   r  QSelectorSocketTransportBufferedProtocolTests.test_read_ready_tryagain_interrupted  sV    *:		'))+	!%	//667r   c                j   \        4       ;q P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        \        P                  ! 4       ;_uu_ 4        VP                  4        R R R 4       VP                  P                  V4       R #   + '       g   i     L-; ir   )r  r   r{  r   r~  r   r   r7  r   r   r  rq   r  s   &&  r   r  GSelectorSocketTransportBufferedProtocolTests.test_read_ready_conn_reset  ss    0D0FFii!!-))+	!%	&&((!!# )11#6 )(r  c                    \        4       ;q P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  4        VP                  P                  VR 4       R# r  )
r   r   r{  r   r~  r   r   rS  r  rq   r  s   &&  r   r  @SelectorSocketTransportBufferedProtocolTests.test_read_ready_err  s\    07	9ii!!-))+	!%	11#&#I	Kr   )rc  rG   r'  r   rt  r   )r%   r&   r'   r(   rC   r~  r4  ro  rt  r}  r  r  r  r  r  r   r
  r  r  r  r  r)   r*   r  r  s   @@r   r`  r`  U  s     	9=>>8.=7<-	1 
ZZ#$8 %8 
ZZ#$8 %8 
ZZ#$7 %7 
ZZ#$	K %	K 	Kr   r`  c                   h  a a ] tR tRt oV 3R ltR$R ltR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR t]P*                  ! R4      R 4       tR tR tR tR tR tR tR tR tR tR t R t!R t"]P*                  ! R 4      R! 4       t#]P*                  ! R 4      R" 4       t$R#t%Vt&V ;t'# )%SelectorDatagramTransportTestsi  c                *  < \         SV `  4        V P                  4       V n        \        P
                  ! \        P                  4      V n        \        P                  ! \        P                  R 7      V n        ^V P                  P                  n        R# ))spec_setN)rB   rC   r%  rG   r   r&  r   DatagramProtocolr'  r   r   r   r   rj   rF   rI   s   &r   rC   $SelectorDatagramTransportTests.setUp
  sZ    &&(	"55g6N6NOIIv}}5	()		%r   c                    V'       d   R M\         V P                  P                  n        \	        V P
                  V P                  V P                  VR7      pV P                  \        V4       V# )Naddress)	r   r   getpeernamer   r   rG   r'  r*  r>   )r   r  r=   s   && r   datagram_transport1SelectorDatagramTransportTests.datagram_transport  sO    4;D		).tyy$))/3}}7>@	 	3r   c                    V P                  4       pRV P                  P                  n        VP	                  4        V P
                  P                  P                  R R4       R# )rC  N0.0.0.0i  )rC  r  )r  r   recvfromrF   r  r'  datagram_receivedrq   r+  s   & r   r  .SelectorDatagramTransportTests.test_read_ready  sL    ++-	*F		'''::&	(r   c                f    V P                  4       pV P                  V\        P                  4       R # r   )r  rQ   r   DatagramTransportr+  s   & r   test_transport_inheritance9SelectorDatagramTransportTests.test_transport_inheritance"  s&    ++-	i)B)BCr   c                   V P                  4       p\        V P                  P                  n        \
        P                  ! 4       Vn        VP                  4        V P                  VP                  P                  4       R # r   )r  r   r   r  r   r   r   rS  r  rm   r   r+  s   & r   r  7SelectorDatagramTransportTests.test_read_ready_tryagain&  sV    ++-	)8		&!%	//667r   c                    V P                  4       p\        4       ;q P                  P                  n        \
        P                  ! 4       Vn        VP                  4        VP                  P                  VR 4       R# )z&Fatal read error on datagram transportN)
r  r]   r   r  r   r   r   rS  r  rq   r   r=   r  s   &  r   r  2SelectorDatagramTransportTests.test_read_ready_err/  s\    ++-	/;~=ii  ,!%	11#&#K	Mr   c                V   V P                  4       p\        4       ;q P                  P                  n        \
        P                  ! 4       Vn        VP                  4        V P                  VP                  P                  4       V P                  P                  P                  V4       R # r   )r  r   r   r  r   r   r   rS  r  rm   r   r'  error_receivedrq   r  s   &  r   test_read_ready_oserr4SelectorDatagramTransportTests.test_read_ready_oserr:  ss    ++-	/6y8ii  ,!%	//667$$77<r   c                   R pV P                  4       pVP                  VR4       V P                  V P                  P                  P                  4       V P                  V P                  P                  P                  ^ ,          VR34       R# rC  Nr  r  sendtoro   r   r   rR   r   r  s   &  r   test_sendto*SelectorDatagramTransportTests.test_sendtoD  sq    ++-	01		((//0II&&q)D2C+D	Fr   c                0   \        R 4      pV P                  4       pVP                  VR4       V P                  V P                  P                  P
                  4       V P                  V P                  P                  P                  ^ ,          VR34       R# r  )r  r  r  ro   r   r   rR   r   r  s   &  r   test_sendto_bytearray4SelectorDatagramTransportTests.test_sendto_bytearrayL  sv    !++-	01		((//0II&&q)D2C+D	Fr   c                0   \        R 4      pV P                  4       pVP                  VR4       V P                  V P                  P                  P
                  4       V P                  V P                  P                  P                  ^ ,          VR34       R# r  )r/   r  r  ro   r   r   rR   r   r  s   &  r   test_sendto_memoryview5SelectorDatagramTransportTests.test_sendto_memoryviewT  sv    '"++-	01		((//0II&&q)D2C+D	Fr   c                   V P                  4       pVP                  R R4       V P                  V P                  P                  P                  4       V P                  V P                  P                  P                  ^ ,          R4       R# )r   Nr  )r   r  r  r+  s   & r   test_sendto_no_data2SelectorDatagramTransportTests.test_sendto_no_data\  sg    ++-	/0		((//0II&&q)+C	Er   c                ,   V P                  4       pVP                  P                  R4       VP                  RR4       V P	                  V P
                  P                  P                  4       V P                  RR.\        VP                  4      4       R# )r  r  Nr  i90  r  r  r  r  )	r  rD  r  r  rm   r   r   rR   listr+  s   & r   test_sendto_buffer1SelectorDatagramTransportTests.test_sendto_bufferc  s{    ++-	  !?@#56))001++-""#	%r   c                   \        R 4      pV P                  4       pVP                  P                  R4       VP	                  VR4       V P                  V P                  P                  P                  4       V P                  RR.\        VP                  4      4       V P                  VP                  ^,          ^ ,          \        4       R# r  Nr  r  r  )r  r  rD  r  r  rm   r   r   rR   r  rQ   bytesr   data2r=   s   &  r   test_sendto_buffer_bytearray;SelectorDatagramTransportTests.test_sendto_buffer_bytearraym  s    (#++-	  !?@ 23))001++-""#	% 	i//215u=r   c                   \        R 4      pV P                  4       pVP                  P                  R4       VP	                  VR4       V P                  V P                  P                  P                  4       V P                  RR.\        VP                  4      4       V P                  VP                  ^,          ^ ,          \        4       R# r  )r/   r  rD  r  r  rm   r   r   rR   r  rQ   r  r  s   &  r   test_sendto_buffer_memoryview<SelectorDatagramTransportTests.test_sendto_buffer_memoryviewy  s    8$++-	  !?@ 23))001++-""#	% 	i//215u=r   c                   R pV P                  4       pVP                  P                  R4       VP                  VR4       V P	                  V P
                  P                  P                  4       V P                  RR.\        VP                  4      4       V P                  VP                  ^,          ^ ,          \        4       R# )r   Nr  r  )r   r  )r  rD  r  r  rm   r   r   rR   r  rQ   r  r  s   &  r   test_sendto_buffer_nodata8SelectorDatagramTransportTests.test_sendto_buffer_nodata  s    ++-	  !?@ 23))001+&(""#	% 	i//215u=r   c                $   R p\         V P                  P                  n        V P	                  4       pVP                  VR4       V P
                  P                  ^VP                  4       V P                  R.\        VP                  4      4       R# )rC  Nr  )rC  r  )r   r   r  r   r  rG   r  _sendto_readyrR   r  rD  r  s   &  r   test_sendto_tryagain3SelectorDatagramTransportTests.test_sendto_tryagain  st    '6		$++-	12		9#:#:;*+T)2C2C-D	Fr   r  c                H   R p\        4       ;q0P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  VR4       V P                  VP                  P                  4       VP                  P                  VR4       ^Vn        RVn        VP                  V4       VP                  V4       VP                  V4       VP                  V4       VP                  V4       VP                  P                  R4       R# )rC  'Fatal write error on datagram transportr  Nr   )123)r]   r   r  r   r  r   r   rS  ro   r   rq   r?  _addressr  )r   r  r  r  r=   s   &&   r   test_sendto_exception4SelectorDatagramTransportTests.test_sendto_exception  s    -9^;ii*++-	!%	r"	..55611#&#L	N  !	%	(()JKr   c                B   R p\         V P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  VR4       V P                  VP                  ^ 4       V P                  VP                  P                  4       R# )rC  Nr   )ConnectionRefusedErrorr   r  r   r  r   r   rS  rR   r?  rm   r   r  s   &  r   test_sendto_error_received9SelectorDatagramTransportTests.test_sendto_error_received  su    '=		$++-	!%	r"--q1//667r   c                j   R p\         V P                  P                  n        V P	                  RR7      p\
        P                  ! 4       Vn        VP                  V4       V P                  VP                  P                  4       V P                  V P                  P                  P                  4       R# )rC  r  Nr  r   )r  r   r   r   r  r   r   rS  r  rm   r   ro   r'  r  r  s   &  r   $test_sendto_error_received_connectedCSelectorDatagramTransportTests.test_sendto_error_received_connected  s|    %;		"++N+C	!%	//66744;;<r   c                j    V P                  4       pV P                  \        VP                  R R4       R# )r  Nr   )r  r\   r  r  r+  s   & r   test_sendto_str.SelectorDatagramTransportTests.test_sendto_str  s*    ++-	)Y%5%5ubAr   c                n    V P                  RR7      pV P                  \        VP                  RR4       R# )r  r  s   strNr  )r  r  )r  r\   
ValueErrorr  r+  s   & r   test_sendto_connected_addr9SelectorDatagramTransportTests.test_sendto_connected_addr  s3    ++N+C		((&.	Br   c                    V P                  RR7      pVP                  4        V P                  VP                  ^4       VP	                  RR4       V P                  VP                  ^4       R# )r   r  rC  N)r   )r  r<   rR   r?  r  r+  s   & r   test_sendto_closing2SelectorDatagramTransportTests.test_sendto_closing  s[    ++D+9	--q1$'--q1r   c                2   R p\        V4      V P                  P                  n        V P	                  4       pVP
                  P                  VR34       V P                  P                  ^VP                  4       VP                  4        V P                  V P                  P                  P                  4       V P                  V P                  P                  P                  ^ ,          VR34       V P                  V P                  P                  4       R# )rC  Nr  )r  r   r  rF   r  rD  r  rG   rN  r  ro   r   rR   r   rm   rO  r  s   &  r   test_sendto_ready0SelectorDatagramTransportTests.test_sendto_ready  s    (+D			%++-	  $(:!;<		a!8!89!		((//0II&&q)D2D+E	G**+r   c                N   R p\        V4      V P                  P                  n        V P	                  4       pRVn        VP                  P                  VR34       V P                  P                  ^VP                  4       VP                  4        V P                  P                  P                  VR4       V P                  V P                  P                  4       V P                  P                  P                  4        V P                   P"                  P                  R4       R# )rC  TNr   )r  r   r   rF   r  r%  rD  r  rG   rN  r  r  rq   rm   rO  r<   r'  r>  r  s   &  r   test_sendto_ready_closing8SelectorDatagramTransportTests.test_sendto_ready_closing  s    &)$i		#++-	!	  $,		a!8!89!		++D"5**+		**,%%88>r   c                :   V P                  4       pV P                  P                  ^VP                  4       VP                  4        V P	                  V P
                  P                  P                  4       V P	                  V P                  P                  4       R# r#  )	r  rG   rN  r  rm   r   r  r   rO  r+  s   & r   test_sendto_ready_no_data8SelectorDatagramTransportTests.test_sendto_ready_no_data  sl    ++-			a!8!89!))001**+r   c                   \         V P                  P                  n        V P	                  4       pVP
                  P                  RR.4       V P                  P                  ^VP                  4       VP                  4        V P                  P                  ^VP                  4       V P                  RR.\        VP
                  4      4       R# )r  N)r  r   )r  r   )r   r   r  r   r  rD  r6   rG   rN  r  r  rR   r  r+  s   & r   test_sendto_ready_tryagain9SelectorDatagramTransportTests.test_sendto_ready_tryagain  s    '6		$++-	  ..!AB		a!8!89!		9#:#:;^,""#	%r   c                0   \        4       ;qP                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  P                  R4       VP                  4        VP                  P                  VR4       R# )rC  r  NrC  r   )r]   r   r  r   r  r   r   rS  rD  r  r  rq   r6  s   &  r   test_sendto_ready_exception:SelectorDatagramTransportTests.test_sendto_ready_exception  sp    -9^;ii*++-	!%	  /!11#&#L	Nr   c                8   \         V P                  P                  n        V P	                  4       p\
        P                  ! 4       Vn        VP                  P                  R4       VP                  4        V P                  VP                  P                  4       R# )rC  Nr  )r  r   r  r   r  r   r   rS  rD  r  r  rm   r   r+  s   & r    test_sendto_ready_error_received?SelectorDatagramTransportTests.test_sendto_ready_error_received  sj    '=		$++-	!%	  /!//667r   c                   \         V P                  P                  n        V P	                  RR7      p\
        P                  ! 4       Vn        VP                  P                  R4       VP                  4        V P                  VP                  P                  4       V P                  V P                  P                  P                  4       R# )r  r  Nr  r  )r  r   r   r   r  r   r   rS  rD  r  r  rm   r   ro   r'  r  r+  s   & r   +test_sendto_ready_error_received_connectionJSelectorDatagramTransportTests.test_sendto_ready_error_received_connection!  s    %;		"++N+C	!%	  /!//66744;;<r   z asyncio.base_events.logger.errorc                    V P                  RR7      p\        4       pVP                  V4       V P                  V P                  P
                  P                  4       VP                  4        R# )r  r  Nr  )r  r  rS  rm   r'  r  r   rT  )r   rU  r=   r  s   &&  r   test_fatal_error_connected9SelectorDatagramTransportTests.test_fatal_error_connected,  sU    ++N+C	$&s#55<<=!r   c                :    ! R  R\         4      pV P                  RR7      pV! 4       pVP                  V4       V P                  V P                  P
                  P                  4       VP                  \        P                  ! R4      V\        \        3R7       R# )c                       ] tR tRtRtR# )[SelectorDatagramTransportTests.test_fatal_error_connected_custom_error.<locals>.MyExceptioni6  r   Nr\  r   r   r   MyExceptionr  6  r^  r   r  r  r_  r`  Nr  )rb  r  rS  rm   r'  r  r   rq   r   rc  rd  )r   rU  r  r=   r  s   &&   r   'test_fatal_error_connected_custom_errorFSelectorDatagramTransportTests.test_fatal_error_connected_custom_error4  s    	) 	++N+C	ms#55<<=  ""EG!8X6 	! 	8r   rp  r   )(r%   r&   r'   r(   rC   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r)   r*   r  r  s   @@r   r  r    s     *(D8	M=FFFE%
>
>
>
F 
ZZ01L 2L,
8
=BB
2,?,%
N8	= 
ZZ23" 4" 
ZZ23
8 4
8 
8r   r  __main__)r   ) r4   r   r   r\  rX  r   r   r   sslImportErrorasyncio.selector_eventsr   r   r   r   test.test_asyncior	   r   ANYrd  r   r   r9   r>   TestCaser@   r!  rr  r`  r  r%   mainr   r   r   <module>r     s       
  #  9 9 2880 5 Z>!4!4 Z>x
y,Z00 y,xB	>:#6#6 B	>HpK:3F3F pKfw8Z%8%8 w8t	 zMMO k1  
Cs   C# #	C/.C/